[英]How to set backgroundColor in loadView?
我想覆蓋我的自定義視圖控制器的loadView
方法,以自定義正在顯示的視圖。 對於該自定義視圖,我想應用在情節提要編輯器中設置的背景色。
例如,如果我這樣實現loadView:
-(void)loadView{
self.view = [[MyCustomView alloc] init];
//Do some initialisation work for the custom view
//...
}
然后,結果視圖具有黑色背景。 但是,如果我僅調用默認實現:
-(void)loadView{
[super loadView];
}
然后,將橙色背景色(請參見屏幕截圖)應用於視圖。 如何獲得故事板編輯器中設置的顏色? 我想做這樣的事情(偽代碼):
-(void)loadView{
self.view = [[MyCustomView alloc] init];
self.view.backgroundColor = [self colorThatWasSelectedInStoryboardEditor];
//Do some initialisation work for the custom view
//...
}
蘋果如何在loadView
的默認實現中實現這一目標?
由於您顯然確實想在這里使用“ loadView
”而不是“ viewDidLoad
”, 並且 Apple的loadView
文檔說不要調用“ super
” ,因此您將需要“隱藏”自定義顏色。 例如,在ViewController中使用其他視圖(例如,隱藏的視圖?),將其連接到IBOutlet,並可以通過視圖的“ .backgroundColor
”屬性將其提取。
或者,您將需要通過良好的UIColor
方法(例如“ colorWithRed:green:blue:alpha:
”)來設置“ .backgroundColor
”屬性。
情節提要中所有視圖的布局都在viewWillAppear:
之前布置,這意味着在viewDidLoad
您還沒有這些視圖。 試試你的代碼移動到viewWillAppear:
,甚至更好, viewWill/DidLayoutSubviews
比self.view.backgroundColor
會給你你在IB設置的一個。
要回答您評論中的問題,請轉到IB,選擇視圖,轉到“實用程序”(右)窗格下的“身份檢查器”選項卡,然后將自定義類設置為MyCustomView
。 無需實現loadView
即可。
例如UIView
,我已經聲明為自定義視圖類AGBlurView
:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.