¿Cómo agregar vista de image personalizada en la celda tableview en Swift?

Lo que tengo que hacer es agregar una image del círculo a la celda en uitableview. ¿Cómo puedo hacer eso?

He intentado algún código, pero no funciona, aquí está mi código:

let imageName = "person.png" let image = UIImage(named: imageName) var imageView = UIImageView(image: image!) imageView = UIImageView(frame: CGRectMake(0, 0, 100, 100)) imageView.layer.borderWidth=1.0 imageView.layer.masksToBounds = false imageView.layer.borderColor = UIColor.whiteColor().CGColor imageView.layer.cornerRadius = 13; imageView.clipsToBounds = true cell.imageView!.image = imageView 

Tengo este error:

No se puede asignar un valor del tipo 'UIImageView' a un valor del tipo 'UIImage?'

No puede asignar la Imagen de esa manera. Pero U puede hacerlo de esta manera.

Primero agregue la function que cambiará el tamaño de su image:

 func resizeImage(image:UIImage, toTheSize size:CGSize)->UIImage{ var scale = CGFloat(max(size.width/image.size.width, size.height/image.size.height)) var width:CGFloat = image.size.width * scale var height:CGFloat = image.size.height * scale; var rr:CGRect = CGRectMake( 0, 0, width, height); UIGraphicsBeginImageContextWithOptions(size, false, 0); image.drawInRect(rr) let newImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext(); return newImage } 

Después de eso puedes asignar la image:

 let imageName = "11749-simple.jpg" let image = UIImage(named: imageName) let newImage = resizeImage(image!, toTheSize: CGSizeMake(70, 70)) var cellImageLayer: CALayer? = cell.cellImage.layer cellImageLayer!.cornerRadius = cellImageLayer!.frame.size.width / 2 cellImageLayer!.masksToBounds = true cell.cellImage.image = newImage 

Y el resultado será:

introduzca la descripción de la imagen aquí

O puede probar esta extensión:

 extension UIImage { var circleMask: UIImage { let square = size.width < size.height ? CGSize(width: size.width, height: size.width) : CGSize(width: size.height, height: size.height) let imageView = UIImageView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: square)) imageView.contentMode = UIViewContentMode.ScaleAspectFill imageView.image = self imageView.layer.cornerRadius = square.width/2 imageView.layer.borderColor = UIColor.whiteColor().CGColor imageView.layer.borderWidth = 5 imageView.layer.masksToBounds = true UIGraphicsBeginImageContext(imageView.bounds.size) imageView.layer.renderInContext(UIGraphicsGetCurrentContext()) let result = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return result } } 

y puedes asignar una image:

 let imageName = "11749-simple.jpg" let image = UIImage(named: imageName) cell.cellImage.image = image?.circleMask 

Créditos de extensión a ESTA respuesta.

Haz una class de Cell que quieras cargar en tu TableView .

Clase CellComment :

 class CellComment: UITableViewCell { @IBOutlet weak var imageV_profile: UIImageView! override func awakeFromNib() { super.awakeFromNib() imageV_profile.layer.cornerRadius = 25 imageV_profile.layer.masksToBounds = true } } 

Ahora cargue esta celda en su vista de tabla como se muestra a continuación.

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell:CellPost! = tableView.dequeueReusableCellWithIdentifier("CellPost") as? CellPost if (cell == nil) { let nib:Array = NSBundle.mainBundle().loadNibNamed("CellPost", owner: self, options: nil) cell = nib[0] as? CellPost } cell.imageV_profile.image = UIImage(named: "Your image name") return cell } 
  can you just replace imageView to image let imageName = "person.png" let image = UIImage(named: imageName) var imageView = UIImageView(image: image!) imageView = UIImageView(frame: CGRectMake(0, 0, 100, 100)) imageView.layer.borderWidth=1.0 imageView.layer.masksToBounds = false imageView.layer.borderColor = UIColor.whiteColor().CGColor imageView.layer.cornerRadius = 13; imageView.clipsToBounds = true cell.imageView!.image = image 

Prueba este codigo Esto da exactamente lo que quieres …

 let imageName = "person.png" let image1 = UIImage(named: imageName) var imageView = UIImageView(frame: CGRectMake(5, 5, 100, 100)) imageView.layer.borderWidth=1.0 imageView.layer.masksToBounds = true imageView.layer.borderColor = UIColor.whiteColor().CGColor imageView.layer.cornerRadius = 50;// Corner radius should be half of the height and width. imageView.image = image1 cell.addSubview(imageView) 

imageView.layer.cornerRadius = imageView.frame.width / 2