【发布时间】:2020-07-22 13:45:37
【问题描述】:
所以我做了几次,效果很好,但我不知道这次我错过了什么。问题是图像视图内的图像没有被裁剪到边界。
在模拟器中显示如下:
在表格视图单元格类中,在我的awakeFromNib() 方法中,我有以下代码:
override func awakeFromNib()
{
super.awakeFromNib()
profileImageView.layer.masksToBounds = true
profileImageView.clipsToBounds = true
profileImageView.layer.cornerRadius = profileImageView.frame.size.width / 2
profileImageView.layer.borderWidth = 2
profileImageView.layer.borderColor = UIColor.black.cgColor
}
但仍然如您在图像中看到的那样,图像视图内的图像超出了边界,而圆形边框已正确应用。
我尝试将此代码放在 tableViewCell 类的 layoutSubviews() 方法中,并且我还尝试将此cornerRadius 应用到表格视图的 cellForRowAt 方法中。
此外,我还尝试将图像视图的属性更改为 Aspect Fit 和 Scale To Fit 从情节提要。
没有任何效果,图像仍然显示在圆形边界之外!为什么?
编辑:我的故事板的屏幕截图,其中我有一个原型单元格,其中包含图像视图
【问题讨论】:
-
您确定要设置
profileImageView的.image属性吗?从您的屏幕截图来看,它看起来就像您有两个图像视图。这是来自故事板单元原型吗?还是您通过代码配置单元格(添加标签/图像视图作为子视图)? -
我在表格视图的 cellForRowAt 方法中设置 profileImageView 的 .image 属性。我在 storyboard 中使用了 Prototype Cell,它有一个单一的图像视图,我还附上了它的屏幕截图,请检查!
-
添加了DonMag截图,看我只有一个图像视图,即profileImageView,其.image设置在
cellForRowAt,cornerRadius应用在awakeFromNib(),如前所述,我使用了几种方法但没有结果! -
“占位符”图像看起来偏离中心,这就是为什么我说它似乎是另一个图像视图。您可以使用完整的单元格类和
cellForRowAt函数更新您的帖子吗? (以及任何其他影响单元格的代码?) -
DonMag 非常感谢您的关注,我已经解决了这个问题。实际上我犯了一个错误,我没有设置 profileImageView 的 .image 属性,而是将其设置为 cell.imageView?.image 并且它显示为单独的图像。如果你愿意,你可以回答你的第一条评论作为答案,这样我就可以将其标记为正确:)