2013-07-18 23 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中进行调整。