什么时候可以知道 aUIViewController
视图的确切大小?
问题
我有一个多行UILabel
,其框架取决于其文本和父视图的宽度。鉴于我需要将其他视图放置在下方UILabel
,重要的是使其框架完全覆盖文本的空间。
我目前计算这样的大小viewDidLoad
:
labelSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(self.view.frame.size.width, MAX_HEIGHT)];
UIViewController
问题是当用作模式表单或弹出框时,父视图的宽度会发生变化。如果我使用autoresizingMask
UILabel 的框架进行了相应的调整,但它不再完全适合文本。
UILabel
知道视图的确切大小,我在哪里可以计算这个框架UIViewController's
?
调试工作
这是将 self.view.frame 显示UIViewController
为模态表单 ( UIModalPresentationFormSheet
) 时打印的结果。
viewDidLoad: (0.000000;0.000000;320.000000;480.000000)
viewWillAppear: (0.000000;0.000000;768.000000;960.000000)
afterDelay: (0.000000;0.000000;540.000000;576.000000)
产生上述输出的代码:
- (void)viewDidLoad {
[super viewDidLoad];
[Utils logFrame:self.view.frame tag:@"viewDidLoad"];
}
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[Utils logFrame:self.view.frame tag:@"viewWillAppear"];
[self performSelector:@selector(afterDelay) withObject:nil afterDelay:0.1];
}
- (void) afterDelay {
[Utils logFrame:self.view.frame tag:@"afterDelay"];
}