2012-11-27 23 views
4

我在我的視圖控制器中使用自動佈局,以對齊uiview,就像它是一個導航欄(對齊到頂部,拉伸到拖尾和前導側和44高度)。幀的視圖似乎沒有設置在awakeFromNib

我已將此視圖分類,並且在awakeFromNib期間我想爲其添加子視圖。

但是,當我添加這些子視圖(也與父視圖的約束)它不起作用。

起初我還以爲約束不當被編程,但是,記錄的看法,像這樣的框架後:

- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 

    NSLog(@"%@", NSStringFromCGRect(self.frame)); 
} 

我得到以下輸出:

2012-11-27 03:25:25.976 myApp[8262:c07] {{0, 0}, {0, 0}} 

然而,當我登錄,例如,touchesBegan:withEvent:它記錄了正確的幀大小。

有誰知道可能會導致什麼呢?

我也試過在涉及的所有視圖上設置setTranslatesAutoresizingMaskIntoConstraints:NO。但似乎沒有任何工作。

在此先感謝!

回答

0

當調用awakeFromNib時,視圖尚未創建。在此方法中從視圖中獲取任何屬性的最佳方法是在嘗試訪問屬性之前調用[self view]

+0

嗨,卡特,你能寫更多的細節嗎?以及如何更改'awakeFromNib'的子視圖框架'view'? – aircraft

+1

反思時,最好的子類方法是'viewDidLayoutSubviews' –

相關問題