- 在xib中
identity inspector
—>User Defined Runtime Attributes
—> 添加Key Path
以及Value
。 - 设置圆角:
layer.cornerRadius
对应ValueType
为Number
或者String
。如果Value
值为正方形width
的一半,则为圆形。 - 设置边框宽度:
layer.borderWidth
对应ValueType
为Number
或者String
。 - 设置边框颜色:
layer.borderColor
对应ValueType
为Color
。
这样设置后,圆角,宽度都生效了,可是边框的颜色是黑色,也就是设置边框颜色没有生效。
原因
到QuartzCore.framework
中找到CALayer.h
这个头文件,搜索borderColor
这个属性 @property(nullable) CGColorRef borderColor;
到这里 我们就可以找到原因了。在User Defined Runtime Attributes
中设置layer.borderColor
的ValueType
为Color
,这里的Color
对应的是UIColor
,而设置layer.borderColor
需要是CGColor
类型,因此没有生效。
关于 UIColor CGColor CIColor的区别联系。
建立一个CALayer
的分类Category
OC: CALayer+MaxMethod
Swift
extension CALayer {
var borderColorFromUIColor: UIColor {
get
{
return UIColor(cgColor: self.borderColor!)
}
set
{
self.borderColor = newValue.cgColor
}
}
}
网友评论