我正在尝试在imageviews上实现圆角。尽管它在非plus设备上运行良好,但我无法实现plus屏幕设备的目标。顺便说一句,我认识到,字体大小扩大的设备甚至无法正常工作。我应用了可以在每个主题中找到的以下代码。
mergedImage.image = lastImage
mergedImage.layer.masksToBounds = false
mergedImage.layer.cornerRadius = mergedImage.frame.size.height / 2
mergedImage.clipsToBounds = true
其结果如下图所示。
答案 0 :(得分:3)
看起来黑色形状会改变大小。例如,在使用AutoLayout时可能会发生这种情况。如果是这种情况,则每次框架更改时都需要计算拐角半径。
我认为做到这一点的最佳方法是将UIView子类化以创建“黑色形状视图”,然后覆盖其layoutSubviews
方法:
override func layoutSubviews() {
super.layoutSubviews()
layer.cornerRadius = bounds.height / 2
}
如果没有子类,则可以在UIViewController.viewDidLayoutSubviews
中进行此操作:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
mergedImage.layer.cornerRadius = bounds.height / 2
}