遇到UIViewcontroller的view被下移的问题

同样一个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];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容