如何使自定义舍入UIImageView子类?

Vla*_*hev 6 storyboard uikit uiimageview swift

我想制作我的自定义轮UIImageView并在故事板中显示它.

我接下来做了:

@IBDesignable
class RoundedImageView: UIImageView {
    override init(image: UIImage?) {
        super.init(image: image)
        super.layer.cornerRadius = super.frame.size.height / 2
        self.layer.cornerRadius = self.frame.size.height / 2    
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        super.layer.cornerRadius = super.frame.size.height / 2
        self.layer.cornerRadius = self.frame.size.height / 2
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        super.layer.cornerRadius = super.frame.size.height / 2
        self.layer.cornerRadius = self.frame.size.height / 2
    }
} 
Run Code Online (Sandbox Code Playgroud)

而我在storyboard中的imageView是选中的RoundedImageView类.但在故事板中,它仍然显示为矩形.我怎么才能意识到这一点?当我运行代码时它是圆形的.谢谢

ank*_*kit 16

layouts应用后应设置半径.

@IBDesignable
class RoundedImageView: UIImageView {
    override init(image: UIImage?) {
        super.init(image: image)
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
    }

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

    override func layoutSubviews() {
        super.layoutSubviews()
        self.layer.cornerRadius = self.frame.size.height / 2
        self.clipsToBounds = true
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 除了原始的初始化器覆盖之外,是否有其他原因吗? (2认同)