Cómo cambiar el tamaño de un UIImageView (swift)

Soy un principiante con swift y yo no puedo conseguir que el cambio de tamaño de un UIImageView de trabajo.

Aquí está mi diseño actual :

Cómo cambiar el tamaño de un UIImageView (swift)

Lo que yo quiero es cambiar el tamaño de las imágenes que ocupan la mitad de la anchura de la pantalla (2 imágenes por fila).

Aquí está mi storyboard :

Cómo cambiar el tamaño de un UIImageView (swift)

Aquí es la función de dibujo de la vista de colección dentro de mi controlador :

func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {
        var cell : MenuInspirationCellView = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as MenuInspirationCellView

        cell.imageView.layer.borderWidth = 2
        cell.imageView.layer.borderColor = UIColor.yellowColor().CGColor

        //This is my first approach trying to modify the frame :
        cell.imageView.frame = CGRectMake(0,0, self.view.bounds.width / 2,v120)
        var cellImage : UIImage = UIImage(data: NSData(contentsOfURL: NSURL(string:              images[indexPath.row]))) 
        cell.imageView.image = cellImage;

        //This is my second approach (based on http://www.snip2code.com/Snippet/89236/Resize-Image-in-iOS-Swift) :


        //to resize an image to dimension 52x52
        //var newSize:CGSize = CGSize(width: 52,height: 52)
        //let rect = CGRectMake(0,0, newSize.width, newSize.height)
        //UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)
        //image is a variable of type UIImage
        //cellImage.drawInRect(rect)
        //let newImage = UIGraphicsGetImageFromCurrentImageContext()
        //UIGraphicsEndImageContext()
        //resized image is stored in constant newImage
        //cell.imageView.image = newImage;


        //This is my thrid approach (based on https://gist.github.com/hcatlin/180e81cd961573e3c54d, of course i added his functions but I don't show them here for the sake of readability) :
         //cell.imageView.image = self.RBSquareImageTo(cellImage, size: CGSize(width: 80, height: 80))

        return cell
    }

Cualquier conduce a resolver esto ?

3 Kommentare

  1. 3

    El tamaño de las células se decidió por su UICollectionViewLayout objeto, que es un UICollectionViewFlowLayout en su caso. Si usted desea que todas sus células para ser del mismo tamaño, puede configurar las propiedades en el diseño de la misma; itemSize y minimumInterimSpacing hará el truco. Alternativamente, si desea que sus células para ser de diferentes tamaños, decir que dependiendo de la imagen que cada una contiene o lo que sea, usted necesita tu colección delegado para implementar el UICollectionViewDelegateFlowLayout método:

    optional func collectionView(collectionView: UICollectionView!, layout collectionViewLayout: UICollectionViewLayout!, sizeForItemAtIndexPath indexPath: NSIndexPath!) -> CGSize

    devolver el tamaño que desea para cada celda.

    • Gracias ! Ahora soy capaz de cambiar el tamaño de mis células. Pero, ¿cómo puedo cambiar el tamaño de la imagen dentro de cada célula ?
    • No hay problema, @AlexandreNucera. La imagen en el interior de cada celda se puede cambiar el tamaño mediante el ajuste de varios autodiseño limitaciones en su xib o en el código, configuración de la UIImageView‘s autoresizingMask de la propiedad, o manualmente haciendo el diseño en MenuInspirationCellView‘s layoutSubviews función.
    • Gracias esto es exactamente lo que yo necesitaba. Tengo este trabajo mediante la modificación de mis limitaciones (he quitado el fijo de 120 de ancho y altura).
  2. 3

    SWIFT:

    func imageResize(imageObj:UIImage, sizeChange:CGSize)-> UIImage {
    
        let hasAlpha = false
        let scale: CGFloat = 0.0 //Automatically use scale factor of main screen
    
        UIGraphicsBeginImageContextWithOptions(sizeChange, !hasAlpha, scale)
        imageObj.drawInRect(CGRect(origin: CGPointZero, size: sizeChange))
    
        let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext() //!!!
        return scaledImage
    }
  3. 0

    Después de esta tutoriales puede cambiar el tamaño de UIImage, En el tutorial se describe completamente .. ajuste de tamaño de Imagen en swift ios8

        func imageResize (imageObj:UIImage, sizeChange:CGSize)-> UIImage{
    
         let hasAlpha = false
        let scale: CGFloat = 0.0 //Automatically use scale factor of main screen
    
        UIGraphicsBeginImageContextWithOptions(sizeChange, !hasAlpha, scale)
        imageObj.drawInRect(CGRect(origin: CGPointZero, size: sizeChange))
    
        let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
        return scaledImage
    }

    Aquí también se puede ver muchos tutoriales acerca de Swift idioma Visita Aquí iPhone & iPad de Desarrollo de Aplicaciones de Ayuda del Mundo

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea