在使用了 navigationController
后,将包含三个tableView
的视图贴到push
出来的是视图上,出现tableView
上移问题,效果如下:
遇到这种情况,解决方案有以下几种:
方案一:关闭tableView
的自动适配布局,手动设置其位置
self.automaticallyAdjustsScrollViewInsets = NO;// 默认是YES
方案二:改变edgesForExtendedLayout
在iOS 7中,引入了关于edgesForExtendedLayout
的新属性,默认值为UIRectEdgeAll(四周边缘均延伸)
self.edgesForExtendedLayout = UIRectEdgeNone;// 推荐使用
//还可以设置其为UIRectEdgeLeft /UIRectEdgeRight
这时会发现导航栏变灰了
可以将导航栏的半透明的属性关闭掉
self.navigationController.navigationBar.translucent = NO;
或者给window
设置背景色
[UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor whiteColor];
方案三:导航栏半透明属性设置为NO
在iOS 7之前translucent
默认就是NO
,在iOS 7就默认是YES
了。将导航栏的半透明属性关闭掉,布局也是从导航栏下面开始了。
self.navigationController.navigationBar.translucent = NO;
参考
IOS开发-当遇到tableView整体上移时的解决方案
edgesForExtendedLayout iOS7新特性