我想制作我的自定义回合 UIImageView 并在 Storyboard 中显示它。

接下来我做了:

@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 
    } 
}  

而我在 Storyboard中的 imageView 是选择了 RoundedImageView 类。 但在 Storyboard 中它仍然显示为矩形。我怎样才能意识到呢? 当我运行代码时,它是四舍五入的。 谢谢

请您参考如下方法:

您应该在应用布局之后设置半径。

@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 
    } 
} 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

ios之两个 UIBezierPaths 交集作为一个 UIBezierPath