提问人:nirav 提问时间:9/15/2017 最后编辑:Vadim Kotovnirav 更新时间:10/3/2017 访问量:1144
运行时 BorderColor 在 Xcode 9 中不起作用
Runtime BorderColor is not working in Xcode 9
问:
我为边框颜色制作了 CALayer 的扩展作为运行时属性,但它不起作用。
它仅显示默认的黑色。
extension CALayer {
var borderUIColor: UIColor {
set {
self.borderColor = newValue.cgColor
}
get {
return UIColor(cgColor: self.borderColor!)
}
}
}
答:
0赞
Judit
9/15/2017
#1
试试这个:
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)
希望这有帮助!
1赞
clemens
9/15/2017
#2
应谨慎处理值,并可以创建一个扩展,将属性声明为: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 }
}
}
这使得在属性检查器中设置边框颜色变得更加容易。
编辑:您的示例也适用于Xcode 9.0和8.3.3。可能是测试版中的错误。
评论
1赞
Bryan Bryce
9/27/2017
这并不能回答为什么他们的解决方案不起作用的问题。
0赞
clemens
10/3/2017
@BryanBryce:对不起,上周我无法给出更详细的原因。我认为这是 Xcode 测试版中的一个问题。nirav 的扩展按预期工作。
评论
borderColor