swift - 当样式类制作圆形图像时图像消失

标签 swift uiimageview uiimage

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/

相关文章:

ios - Swift:如何抑制特殊字符的解释并提供字符串文字

快速不一致的通用协议(protocol)限制

ios - 在 iOS 应用程序中显示 10000x8000 像素的图像

ios - swift UIActivityView stopAnimating() 不工作

ios - UIImageView 在设备上的启动屏幕中缺少图像

swift - 通过减少 Swift 中的每像素位数来压缩 UIImage

ios - UIImageView 设置为 ASpectFill 时出现内容模式问题

ios - 如何在 1 天后快速重置特定变量值

ios - 在 Swift 中使用 WKWebView 进行身份验证

ios - 在 swift 中创建 UIImageView 的缩放