小编Joh*_*ham的帖子

UIViewController:extendedLayoutIncludesOpaqueBars和滚动视图偏移

我的应用程序的视图层次结构非常简单:a UINavigationController包含一个UITableViewController。导航控制器的导航栏是不透明的,这会导致导航转换期间表视图的某些奇怪的插入行为,如下所示:

导航插图问题

为了解决这个问题,我设置extendedLayoutIncludesOpaqueBarstrueUITableViewController。这样做可以正确地将视图扩展到导航栏下方,但会以contentOffset我不太了解的方式更改表视图的行为。将此属性设置为时,true表格视图的Y值contentOffset报告其偏移量应比导航栏当前高度高(即,滚动表格视图1pt,它报告其y偏移量为-63pts )。

这使我认为导航控制器contentInset像半透明条一样自动管理滚动视图的。但是我看不到任何证据表明滚动视图中已设置了内容插图scrollViewDidScroll()。即使在表视图控制器上将其automaticallyAdjustsScrollViewInsets设置为false,内容偏移也不正确,因此似乎与插图无关。

Apple的文档extendedLayoutIncludesOpaqueBars未提及对滚动视图的内容偏移量的行为有任何影响。contentInset不幸的是,更改表视图的不能解决此问题。

我尝试更改表视图控制器的edgesForExtendedLayout属性,以强制其扩展而不影响滚动视图,但是对于不透明的条形来说,此属性似乎无能为力。

是否存在一些隐藏的行为,extendedLayoutIncludesOpaqueBars从而使滚动视图的内容偏移增加了?还是这可能是一个错误?

uitableview uiviewcontroller uikit uinavigationcontroller ios

5
推荐指数
1
解决办法
1747
查看次数