同样一个detailController,被不同的父控制器push出来,controller的view会被下移64,另一种就正常显示。跟self.automaticallyAdjustsScrollViewInsets没什么关系。
1.试了
- (void)viewWillLayoutSubviews
{
self.view.frame = CGRectMake(0, 0, 50, 50);
}
可以解决问题,但是会有一个view上移的动画效果,不希望看到移动。
2.试了self.extendedLayoutIncludesOpaqueBars = YES;
让view延伸到边界,居然解决了。
这个属性在状态栏不透明的状态下才生效。也就是说,一般使用这个属性应该这样使用:
// 状态栏不透明(必须设置,并且为NO)
self.navigationController.navigationBar.translucent = NO;
// 视图延伸不考虑透明的Bars(这里包含导航栏和状态栏)
// 意思就是延伸到边界
self.extendedLayoutIncludesOpaqueBars = YES;
// 意思就是空出导航栏位置
// self.extendedLayoutIncludesOpaqueBars = NO;
暂时是这么解决的,如果有朋友也遇到过,知道怎么解决请赐教!
另,又遇到push到一个隐藏导航栏的页面返回之后view下移的问题。
在隐藏导航栏时用方法就解决了:
[self.navigationController setNavigationBarHidden:YES animated:YES];