首页 > 解决方案 > Image View 不是一个完美的圆圈

问题描述

我有一个UITableViewCell包含一个UIImageView.

图像视图应该是一个圆形,所以我让cornerRadius 等于其高度的一半。问题是如果图像不够大(图像视图的宽度/高度约束,而不是图像本身),则无法正确舍入。如果我增加约束,一切都会正常工作。

图像是正方形,图像视图也有 1:1 的比例约束。知道问题是什么吗?

我称之为awakeFromNib

private func setUpCellDesign() {
    profileImageView.layer.cornerRadius = profileImageView.frame.height / 2
    profileImageView.clipsToBounds = true
    mainView.layer.cornerRadius = 15

}

我注意到即使我在单元格中添加其他元素并尝试以相同的方式圆角(例如带有圆角的按钮),它也不能按预期工作。

标签: iosswiftautolayout

解决方案


似乎您对单元格的布局子视图有问题 - 您需要更多的自动布局机制循环

您可以通过覆盖layoutSubViews并将您编写的代码片段放在那里来解决它。

仅当子视图的自动调整大小和基于约束的行为不提供您想要的行为时,您才应该覆盖此方法。您可以使用您的实现直接设置子视图的框架矩形。


推荐阅读