- 在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
borderColor.png
Swift
extension CALayer {
var borderColorFromUIColor: UIColor {
get
{
return UIColor(cgColor: self.borderColor!)
}
set
{
self.borderColor = newValue.cgColor
}
}
}













网友评论