我正在尝试解决从iOS 9开始出现的视图放置错误。我正在从xib文件实例化一个视图控制器(非自动布局),然后将其推送到我的UINavigationController
上。
问题是,当调用视图控制器的viewWillAppear
方法时,它的框架还没有调整到导航控制器的大小,仍然是xib文件中设置的大小。直到viewDidAppear
,它才能正确设置。
这完全把我的代码搞砸了。有没有人确切地知道是什么改变了导致这种情况的原因,以及处理它的最好方法是什么?我不想等到viewDidAppear
,因为这看起来很糟糕,用户体验也很差。
发布于 2015-09-19 12:04:49
我也在寻找最好的修复方法。
我的临时方法是在"viewDidLayoutSubviews“中调用"viewDidAppear”中的代码。这样,一旦设置了帧,我的代码就会被调用。
但是,一定要添加一个布尔值或其他值,这样代码就不会在每次调用viewDidLayoutSubviews时都被调用
-(void)viewDidLayoutSubviews{
if (didLayoutSubviews == NO){
didLayoutSubviews = YES;
// perform code that was in viewWillAppear
}
}
发布于 2015-10-06 14:05:45
我也遇到过这个问题,
尝试从情节提要中取消选中“从NIB调整视图大小”选项
发布于 2015-10-07 14:49:46
尝试将布局代码从viewWillAppear
移动到viewWillLayoutSubviews
。
https://stackoverflow.com/questions/32662851
复制相似问题