我有一个有趣的问题,但我不知道如何解决它。我正在尝试使用@IBInspectable 扩展 UIView。但是,使用这种方法,拐角半径似乎是从 nib 文件默认设置的,而不是视图的实际大小。
因此,当我在 IB 中将“视图为”设置为 iPhoneSE 并为 iPhoneSE 构建时,视图是一个圆圈。但是,如果我为 iPhone7 构建,角落不会完全圆成圆形。相反,如果我将“查看为”设置为 iPhone7 并为 iPhone7 构建,则视图是一个圆形,但是,如果我为 iPhoneSE 构建,则角会过度圆润。
图片和代码如下:
扩大
extension UIView {
@IBInspectable var cornerRadius:Double {
get {
return Double(layer.cornerRadius)
}
set {
layer.cornerRadius = CGFloat(newValue)
layer.masksToBounds = newValue > 0
}
}
@IBInspectable var circleView:Bool {
get {
return layer.cornerRadius == min(self.frame.width, self.frame.height) / CGFloat(2.0) ? true : false
}
set {
if newValue {
layer.cornerRadius = min(self.frame.width, self.frame.height) / CGFloat(2.0)
layer.masksToBounds = true
}
else{
layer.cornerRadius = 0.0
layer.masksToBounds = false
}
}
}
}
“查看为”在 IB 中设置为 iPhoneSE
专为 iPhoneSE 打造
为 iPhone 7 构建
“查看为”设置为iPhone7
为 iPhone SE 构建
为 iPhone 7 构建