所以我遵循将图像变成圆形的正常方法:
image.layer.cornerRadius = image.frame.size.width/2.0f;
image.layer.borderColor = [UIColor blackColor].CGColor;
image.layer.borderWidth = 2;
image.clipsToBounds = YES ;
然而,当我在细胞中使用它时,它第一次显示在Simi完美的圆圈中,但是当我滚动显示新细胞时,所有细胞都将呈现完美的圆形。
所以我的问题是:为什么第一个可见细胞出现在Simi-cirlce形状中?
这是第一次看起来的样子,但如果我刷新或重新加载页面,一切都很好
答案 0 :(得分:3)
尝试使用这种方式
就像自定义单元格类
一样class ProfilePicCell: UITableViewCell {
@IBOutlet weak var image: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
image.layer.cornerRadius = image.frame.width / 2
image.layer.masksToBounds = true
}
}
目标C 中的在自定义单元格类
中添加此方法- (void)awakeFromNib
{
super.awakeFromNib()
image.layer.cornerRadius = image.frame.width / 2
}
答案 1 :(得分:3)
覆盖单元格中的layoutSubviews
,并在调用super.layoutSubviews
后更新image.layer.cornerRadius
。然后,当单元格可见后更新单元格的布局时,角点半径将相应更新。
因此,在快速实施中,您可以执行以下操作:
override func layoutSubviews() {
super.layoutSubviews()
// now the frames were recalculated, and we can update cornerRadius
image.layer.cornerRadius = image.bounds.size.width / 2.0
}