Kla*_*aas 47 uikit uiappearance swift
Apple文档说明:
要参与外观代理API,请使用UI_APPEARANCE_SELECTOR在标头中标记外观属性选择器.
在Objective-C中,可以使用以下方法注释属性UI_APPEARANCE_SELECTOR
:
@property (nonatomic, strong) UIColor *foregroundColor UI_APPEARANCE_SELECTOR;
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Swift中做同样的事情?
Yoi*_*aya 48
将您的自定义视图属性标记为dynamic
.
例如:
class YourCustomView: UIView {
@objc dynamic var subviewColor: UIColor? {
get { return self.yourSubview.backgroundColor }
set { self.yourSubview.backgroundColor = newValue }
}
...
}
Run Code Online (Sandbox Code Playgroud)
然后:
YourCustomView.appearance().subviewColor = UIColor.greenColor()
Run Code Online (Sandbox Code Playgroud)
我没有找到解决方案,而是找到了解决方法。我没有将属性注释为类变量。
private struct StarFillColor { static var _color = UIColor.blackColor() }
internal class var starFillColor: UIColor {
get { return StarFillColor._color }
set { StarFillColor._color = newValue }
}
Run Code Online (Sandbox Code Playgroud)
在我设置所有外观的文件中:
MyClass.starFillColor = UIColor.r(181, g: 60, b: 109)
Run Code Online (Sandbox Code Playgroud)
我希望它能帮助别人!
归档时间: |
|
查看次数: |
7090 次 |
最近记录: |