这让我烦恼了一下。似乎没有可预测的模式来知道控件的帧属性何时保证有效。具体来说,我试图根据硬件改变UILabel的帧位置。在viewDidLoad
和viewWillAppear
中,frame属性为nil。如果我等到viewDidAppear
进行调整,用户就会看到标签移动,这很糟糕。
在过去的其他视图控制器上,我已经能够在eariler方法中获得标签的框架。是什么赋予了?我有什么办法可以启动布局吗?
我应该提到有问题的UILabel是使用IB和故事板添加的,这通常是我如何做我的风险投资。
- (void)viewDidLoad{
[super viewDidLoad];
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
}
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
}
答案 0 :(得分:0)
您可以尝试viewDidLayoutSubviews - 在viewDidAppear之前调用它。或者,您可以使用约束而不是框架调整位置,您可以在viewDidLoad中执行此操作。