作者:手机用户2502935197 | 来源:互联网 | 2023-01-23 16:21
我正在使用此CALayer
扩展程序:
var borderUIColor: UIColor {
set {
self.borderColor = newValue.cgColor
}
get {
return UIColor(cgColor: self.borderColor!)
}
}
我想也许是因为这个扩展我borderColor
从页面底部的提交按钮不会变为白色(我想要它):
但不,我联系了一个IBOutlet
并尝试直接设置这样的颜色:
submitButton.layer.borderColor = UIColor.white.cgColor
它是否存在viewDidLoad
,viewWillAppear
并且viewDidAppear
因为我知道在最后的大更新(iOS 10)中,帧渲染从根本上改变了(1000x1000帧的东西),现在可能还有一些类似的改动.但是没有运气.
我在iOS 9,10和11中测试过.它不是关于操作系统,而是关于环境.我正在使用Xcode 9 Beta 5.任何想法如何解决?
1> 小智..:
尝试用@objc
这样的方式装饰你的var声明:
@objc var borderUIColor: UIColor {
...
}
这应该可以解决你的问题
2> Paul Razvan ..:
清项目,删除所得到的数据和代码的工作,现在,在任一viewDidLoad
,viewWillAppear
或viewDidAppear
。
问题显然与用户定义的运行时属性有关。Xcode 9在这里不再接受扩展名vars。或者至少是Beta 5版本。
编辑:的确,添加@objc
解决了这个问题。