我将CALayer的边框颜色扩展为运行时属性,但它不起作用。
仅显示默认的黑色。
extension CALayer {
var borderUIColor: UIColor {
set {
self.borderColor = newValue.cgColor
}
get {
return UIColor(cgColor: self.borderColor!)
}
}
}
答案 0 :(得分:1)
您应谨慎处理nil
值,并可以为UIView
创建一个扩展名,将该属性声明为@IBInspectabe
:
import UIKit
extension UIView {
@IBInspectable var borderColor: UIColor? {
get {
if let color = layer.borderColor {
return UIColor(cgColor: color)
}
else {
return nil
}
}
set { layer.borderColor = newValue?.cgColor }
}
}
这使得在Attribute Inspector中设置边框颜色变得更加容易。
编辑:您的示例也适用于Xcode 9.0和8.3.3。可能这是测试版中的一个错误。
答案 1 :(得分:0)
试试这个:
extension UILabel{
func setBorderColor(width:CGFloat,color:UIColor) -> Void
{
self.layer.borderColor = color.cgColor
self.layer.borderWidth = width
}
}
并在任何地方实现此功能,例如
label.setBorderColor(width: 2.0, color: UIColor.brown)
希望这有帮助!