0

这让我有点放弃了。似乎没有可预测的模式来知道控件的框架属性何时保证有效。具体来说,我正在尝试根据硬件更改 UILabel 的框架位置。在两者viewDidLoadviewWillAppear,frame 属性为 nil。如果我等到viewDidAppear调整它,用户会看到它的标签移动,这很糟糕。

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

我应该提到,有问题的 UILabel 是使用 IB 和故事板添加的,这通常是我做 VC 的方式。

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

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

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

1 回答 1

0

You could try viewDidLayoutSubviews -- that's called before viewDidAppear. Alternately, you could adjust the position with constraints rather than frames, which you can do in viewDidLoad.

于 2013-07-18T23:09:31.310 回答