蘋果文檔狀態:Swift中的外觀代理/ UI_APPEARANCE_SELECTOR?
參加的外觀代理API,與UI_APPEARANCE_SELECTOR你的頭標記你的外表 屬性選擇。
在Objective-C可以與UI_APPEARANCE_SELECTOR
這樣的註釋屬性:
@property (nonatomic, strong) UIColor *foregroundColor UI_APPEARANCE_SELECTOR;
我怎麼可以這樣做的雨燕?
蘋果文檔狀態:Swift中的外觀代理/ UI_APPEARANCE_SELECTOR?
參加的外觀代理API,與UI_APPEARANCE_SELECTOR你的頭標記你的外表 屬性選擇。
在Objective-C可以與UI_APPEARANCE_SELECTOR
這樣的註釋屬性:
@property (nonatomic, strong) UIColor *foregroundColor UI_APPEARANCE_SELECTOR;
我怎麼可以這樣做的雨燕?
我沒有找到解決方案,而是一種解決方法。 而不是註釋我作爲一個類變量的屬性。
private struct StarFillColor { static var _color = UIColor.blackColor() }
internal class var starFillColor: UIColor {
get { return StarFillColor._color }
set { StarFillColor._color = newValue }
}
和文件在我安裝我所有的出場:
MyClass.starFillColor = UIColor.r(181, g: 60, b: 109)
我希望這會幫助別人!
在Swift中,您不需要(實際上不能)用UI_APPEARANCE_SELECTOR
註釋屬性。
只要確保你的外觀屬性訪問方法是這樣的形式:
func propertyForAxis1(axis1: IntegerType, axis2: IntegerType, axisN: IntegerType) -> PropertyType
func setProperty(property: PropertyType, forAxis1 axis1: IntegerType, axis2: IntegerType)
例如:
func setStarViewColor(color: UIColor) {
self.backgroundColor = color
}
然後你可以設置你的外觀屬性是這樣的:
MyView.appearance().setStarViewColor(someColor)
我目前在我的Swift項目中使用這個解決方案,它的工作原理,希望對你有所幫助OO。
將您的自定義視圖屬性標記爲dynamic
。
例如:
class YourCustomView: UIView {
dynamic var subviewColor: UIColor? {
get { return self.yourSubview.backgroundColor }
set { self.yourSubview.backgroundColor = newValue }
}
...
}
然後:
YourCustomView.appearance().subviewColor = UIColor.greenColor()
我需要嘗試一下。它是否記錄在某處? – Mazyod 2015-02-26 16:08:37
這是完美的,就像一個魅力。 – Mazyod 2015-02-26 16:33:22
據我所知,這是沒有記錄,但我試過,它的工作。基本上,從Objective-C框架動態訪問的Swift屬性應該被標記爲動態的。UI_APPEARANCE_SELECTOR只是代碼完成的編譯器註釋,它對運行時沒有影響。檢查/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAppeara nce.h – 2015-02-27 12:41:42
嗨,你在請通過它,你可以發表你的課!我似乎無法正確地調用我的setter,當試圖調用它時,我得到一個'BAD_ACCESS'。我想知道如果我正確地聲明瞭我的類,它的一個'UIButton'子類,並且符合'UIAppearanceContainer'就像它在文檔中所說的!乾杯! – Rich 2014-12-02 22:14:04
@仔細檢查我的[gist](https://gist.github.com/guojiubo/adff619fdba8f8ba698c),包括整個班級,希望它有所幫助。 – guojiubo 2014-12-04 02:27:23
不幸的是,這不允許我改變特定實例的顏色。任何想法如何實現?謝謝! – Reinhold 2015-10-13 14:25:03