OC: 在 xib 和 storyboard中为 View 添加边框颜色

  • 在xib中 identity inspector —> User Defined Runtime Attributes —> 添加Key Path以及Value
  • 设置圆角:layer.cornerRadius 对应ValueTypeNumber或者String。如果Value值为正方形width的一半,则为圆形。
  • 设置边框宽度:layer.borderWidth 对应ValueTypeNumber或者String
  • 设置边框颜色:layer.borderColor 对应ValueTypeColor

这样设置后,圆角,宽度都生效了,可是边框的颜色是黑色,也就是设置边框颜色没有生效。

原因

QuartzCore.framework中找到CALayer.h这个头文件,搜索borderColor这个属性 @property(nullable) CGColorRef borderColor; 到这里 我们就可以找到原因了。在User Defined Runtime Attributes 中设置layer.borderColorValueTypeColor,这里的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
        }   
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容