UIControl.frame属性的生命周期和有效性

时间:2013-07-18 22:22:54

标签: iphone ios ipad uiviewcontroller uilabel

这让我烦恼了一下。似乎没有可预测的模式来知道控件的帧属性何时保证有效。具体来说,我试图根据硬件改变UILabel的帧位置。在viewDidLoadviewWillAppear中,frame属性为nil。如果我等到viewDidAppear进行调整,用户就会看到标签移动,这很糟糕。

在过去的其他视图控制器上,我已经能够在eariler方法中获得标签的框架。是什么赋予了?我有什么办法可以启动布局吗?

我应该提到有问题的UILabel是使用IB和故事板添加的,这通常是我如何做我的风险投资。

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

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

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

1 个答案:

答案 0 :(得分:0)

您可以尝试viewDidLayoutSubviews - 在viewDidAppear之前调用它。或者,您可以使用约束而不是框架调整位置,您可以在viewDidLoad中执行此操作。