我有一個自定義按鈕,這僅僅是一個標準的UIButton,但有CAGradientLayer中添加麻煩UIAppearance和UIButton的子類
在我的自定義按鈕,我已經定義了兩個屬性:
@property (nonatomic, strong) UIColor* topColor UI_APPEARANCE_SELECTOR;
@property (nonatomic, strong) UIColor* bottomColor UI_APPEARANCE_SELECTOR;
如果這兩個值被設置,我的按鈕繪製一個很好的線性漸變。很棒。
我也喜歡儘可能多的使用InterfaceBuilder。因此,在這些按鈕中的某些按鈕上,在IB的「身份檢查器」中,我爲這些屬性添加了「用戶定義的運行時屬性」。再次,工作很好。
接下來,我想我會嘗試使用UIAppearance代理。我的大多數自定義漸變按鈕都具有相同的顏色。但有一些是不同的。所以,我想我會做的是使用外觀代理的東西來設置這個類的默認顏色,然後對於不同的按鈕,我可以在IntefaceBuilder中設置它們的值。這失敗了。
顯然,發生的事情是它首先從故事板文件中讀取運行時屬性,但之後這些值將被外觀代理覆蓋。我不希望這樣做,但它確實如此。
有關如何完成此任務的任何提示?或者我應該放棄運行時屬性的東西?
請顯示一些代碼! –
iT - 這裏真的沒有代碼顯示。在我的應用程序中:didFinishLaunchingWithOptions:launchOptions例程,我打電話給我的外觀代理的「setTopColor」和「setBottomColor」例程,以建立漸變中使用的默認頂部/底部顏色。我遇到的問題是,它正在從故事板中讀取屬性,設置它們,然後調用外觀代理調用,從故事板中覆蓋我的值。 –