将navigationcontroller栏设置为不透明移动细节滚动视图向下

时间:2014-04-08 02:26:26

标签: ios iphone objective-c uitableview mobile

我在MasterController中使用搜索栏和控制器来获取UITableview。当视图显示时,MasterController中的导航栏是黑色的,直到视图完全加载(不确定为什么?)。为了解决这个问题,我设置了self.navigationController.navigationBar.translucent = false;这解决了我最初导航栏为黑色的问题,但现在看起来好像当我点击MasterController的uitableview中的一个单元格时,DetailView中的内容加载向下移动大约相当于搜索栏的大小,但它只是移动内容上方的空白区域...当我删除MasterController中的半透明属性时,DetailView中的内容很好而且没有移位... < / p>

我的问题是,是什么让这些内容发生了变化?如何阻止内容被移动并拥有不透明的导航栏......

1 个答案:

答案 0 :(得分:6)

在iOS 7中,默认情况下,视图控制器的视图在包含在UINavigationController中时在半透明导航栏下扩展,但不包含在不透明导航栏中。如果您希望它在不透明的导航条下扩展,您可以设置视图控制器的extendedLayoutIncludesOpaqueBars属性。

当您说您的滚动视图在您的详细视图控制器上移动时,可能是因为它的y原点未设置为零以便在半透明导航栏下延伸视图,但是因为您的导航栏现在是不透明的并且您的视图在它下面没有延伸,现在可以看到空间。

更多视图控制器实际上会自动在它们包含的滚动视图上添加插入内容,以便在视图控制器视图在导航栏下方扩展时,它们的内容不会被遮挡。它由automaticAdjustsScrollViewInsets属性设置,默认情况下设置为YES。