首页 > 解决方案 > UIImageView 圆形 swift

问题描述

我使用此代码在自定义 UITableViewCell 中制作 UIImageView,但在按下表格单元格之前,圆形不会更新,我尝试了 awakeFromNib() 和 layoutSubviews() 中的代码

  userImage.layer.cornerRadius = userImage.frame.size.width / 2
  userImage.layer.masksToBounds = true
  userImage.layer.borderColor = UIColor.black.cgColor
  userImage.layer.borderWidth = 1

标签: iosswiftuitableviewcustom-cell

解决方案


您只需覆盖layoutSubviews()UITableViewCell 子类的方法,因为它将在绘图更新时调用。

然后根据需要设置 UIImageView 的cornerRadius:

class MyCustomTableViewCell: UITableViewCell {

    private let circularImageView: UIImageView = {
        $0.contentMode = .scaleAspectFill
        $0.layer.masksToBounds = true
        $0.layer.borderColor = UIColor.black.cgColor
        $0.layer.borderWidth = 1
        return $0
    }(UIImageView())

    // ...

    override func layoutSubviews() {
        super.layoutSubviews()
        circularImageView.layer.cornerRadius = circularImageView.frame.size.width/2
    }
}

推荐阅读