class RoundImage: UIImageView {
override func awakeFromNib() {
super.awakeFromNib()
setupView()
}
...
func setupView() {
self.layer.borderWidth = borderWidth
self.layer.borderColor = borderColor
self.clipsToBounds = clip
self.layer.cornerRadius = self.frame.size.width / 2
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
setupView()
}
}
我正在使用以下类来设置 UIImageView 的样式。我想让它们变成圆形。当我添加以下代码行 self.layer.cornerRadius = self.frame.size.width/2
来实现此目的时,我的整个图像消失了。
当我使用像 50 这样的硬编码值(因为我的图像的宽度是 100)时,它就可以工作。但是当我想以这种方式使其动态时,它似乎失败了。
我在这里缺少什么?
最佳答案
几天前我遇到了这个问题。
您应该在图层修改之前添加 layoutIfNeeded()
。
就您而言:
func setupView() {
self.layoutIfNeeded()
self.layer.borderWidth = borderWidth
self.layer.borderColor = borderColor
self.clipsToBounds = clip
self.layer.cornerRadius = self.frame.size.width / 2
}
关于swift - 当样式类制作圆形图像时图像消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39663150/