Configurar el radio de la esquina de un elemento en un UITableViewCell personalizado.

Mi código está casi funcionando, pero hay un problema.

Tan pronto como se carga la tabla, las imágenes son las siguientes:

Tan pronto como se carga la tabla, las imágenes son las siguientes

Pero cuando me desploop a la table, todo está bien:

Pero cuando me desplazo a la mesa todo está bien

¿Qué falta aquí?

class ShopTableViewCell: UITableViewCell { let disposeBag = DisposeBag() @IBOutlet weak var shopImageView: UIImageView! @IBOutlet weak var imagesCollectionView: UICollectionView! @IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var likeButton: UIButton! @IBOutlet weak var imageContainer: UIView! override func layoutSubviews() { super.layoutSubviews() imageContainer.clipsToBounds = true imageContainer.layer.cornerRadius = imageContainer.frame.size.width / 2 imageContainer.layer.borderWidth = 1 imageContainer.layer.borderColor = UIColor(hex: "#BDBDBD").CGColor 

Es porque la propiedad de marco de tu image no se actualiza todavía.

Puede crear una subclass de UIImageView y hacer ese trabajo allí, como:

Rápido

 class CircleImageView: UIImageView { override func layoutSubviews() { super.layoutSubviews() self.layer.borderWidth = 1 / UIScreen.mainScreen().scale self.layer.borderColor = UIColor(hex: "#BDBDBD").CGColor self.layer.cornerRadius = self.bounds.size.width/2 self.layer.masksToBounds = true } } 

C objective

 @implementation CircleImageView - (void)layoutSubviews { [super layoutSubviews]; self.layer.borderWidth = 1 / [UIScreen mainScreen].scale; self.layer.borderColor = [UIColor whiteColor].CGColor; self.layer.cornerRadius = self.bounds.size.width/2; self.layer.masksToBounds = YES; } @end