如果使用storyboard加载vc,在ViewDidLoad中,视图(包括vc的view)都是storyboard中的尺寸,在vc调用viewDidLayoutSubviews之后,才会重新渲染成正确的尺寸
测试一下
//在viewDidLoad中
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad%@----%@-----%@",NSStringFromCGRect(self.view.frame),NSStringFromCGRect(self.tableView.bounds),NSStringFromCGRect(self.tableView.frame));
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"dispatch_after%@----%@-----%@",NSStringFromCGRect(self.view.frame),NSStringFromCGRect(self.tableView.bounds),NSStringFromCGRect(self.tableView.frame));
});
}
//在awakeFromNib中
- (void)awakeFromNib
{
[super awakeFromNib];
NSLog(@"awakeFromNib%@----%@-----%@",NSStringFromCGRect(self.view.frame),NSStringFromCGRect(self.tableView.bounds),NSStringFromCGRect(self.tableView.frame));
}
//在viewWillAppear中
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"viewWillAppear%@----%@-----%@",NSStringFromCGRect(self.view.frame),NSStringFromCGRect(self.tableView.bounds),NSStringFromCGRect(self.tableView.frame));
}
//在viewDidAppear中
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSLog(@"viewDidAppear%@----%@-----%@",NSStringFromCGRect(self.view.frame),NSStringFromCGRect(self.tableView.bounds),NSStringFromCGRect(self.tableView.frame));
}
//在viewDidLayoutSubviews中
-(void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
NSLog(@"viewDidLayoutSubviews%@----%@-----%@",NSStringFromCGRect(self.view.frame),NSStringFromCGRect(self.tableView.bounds),NSStringFromCGRect(self.tableView.frame));
}
最后的输出结果
[15:24:15] -[TNoticeListVC viewDidLoad] [第36行] viewDidLoad{{0, 0}, {414, 736}}----{{0, 0}, {375, 667}}-----{{0, 0}, {375, 667}}
[15:24:15] -[TNoticeListVC awakeFromNib] [第56行] awakeFromNib{{0, 0}, {414, 736}}----{{0, 0}, {375, 667}}-----{{0, 0}, {375, 667}}
[15:24:15] -[TNoticeListVC viewWillAppear:] [第62行] viewWillAppear{{0, 0}, {414, 736}}----{{0, 0}, {375, 667}}-----{{0, 0}, {375, 667}}
[15:24:15] -[TNoticeListVC viewDidLayoutSubviews] [第74行] viewDidLayoutSubviews{{0, 0}, {414, 736}}----{{0, -64}, {414, 736}}-----{{0, 0}, {414, 736}}
[15:24:15] -[TNoticeListVC viewDidAppear:] [第68行] viewDidAppear{{0, 0}, {414, 736}}----{{0, -64}, {414, 736}}-----{{0, 0}, {414, 736}}
[15:24:15] -[TNoticeListVC viewDidLayoutSubviews] [第74行] viewDidLayoutSubviews{{0, 0}, {414, 736}}----{{0, -64}, {414, 736}}-----{{0, 0}, {414, 736}}
[15:24:15] -[TNoticeListVC viewDidLoad]_block_invoke [第49行] dispatch_after{{0, 0}, {414, 736}}----{{0, -64}, {414, 736}}-----{{0, 0}, {414, 736}}
网友评论