圆角的UIImageView继承

时间:2017-11-01 20:07:43

标签: ios swift uiimageview

我有很多地方使用带圆角的轮廓图像。而不是每次写作

 profileImageView.layer.cornerRadius = profileImageView.frame.size.width / 2;

我决定创建自己的继承UIImageView的类。 并在init函数中添加角落

class UISlProfileImageView: UIImageView {
    override init(image: UIImage?){
        super.init(image:image)
        roundCorner()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
}

extension UISlProfileImageView{
    func roundCorner(){
        self.layer.cornerRadius = self.frame.size.width / 8;
        self.clipsToBounds = true
    }
}

问题是,在我将故事板中的相应图片更改为UISlProfileImageView之后,圆形核心人员显示出来了。你能告诉我,我做错了什么。我在新课程的初始阶段设置了一个断点,奇怪的是它并没有止步于此。

2 个答案:

答案 0 :(得分:4)

您应该覆盖方法layoutSubviews()并在该方法中调用roundCorner()。如

override func layoutSubviews() {
    super.layoutSubviews()

    roundCorner()
}

答案 1 :(得分:0)

如果您希望舍入每个5,可以将这段代码复制到您的项目中,而不必忘记选中UIImageView并将其值设置为clip to bounds

true

storyboard screenshot