2013-07-18 55 views
0

這讓我感到退縮了一下。似乎沒有可預測的模式來知道控件的框架屬性何時保證有效。具體而言,我試圖根據硬件更改UILabel的幀位置。在viewDidLoadviewWillAppear中,幀屬性均爲零。如果我等到viewDidAppear來調整它,用戶會看到標籤移動,這是蹩腳的。UIControl.frame屬性的生命週期和有效性

在過去的其他視圖控制器中,我已經能夠在標註方法中獲得標籤的框架。是什麼賦予了?我能做些什麼來啓動佈局?

我應該提到,UILabel問題是使用IB和故事板添加的,這通常是我如何做我的風投。

- (void)viewDidLoad{ 
    [super viewDidLoad]; 
} 

-(void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 
} 

-(void)viewDidAppear:(BOOL)animated{ 
    [super viewDidAppear:animated]; 
} 

回答

0

你可以嘗試viewDidLayoutSubviews - 在viewDidAppear之前調用。或者,您可以使用約束而不是幀調整位置,您可以在viewDidLoad中進行調整。