我的应用程序的视图层次结构非常简单:a UINavigationController包含一个UITableViewController。导航控制器的导航栏是不透明的,这会导致导航转换期间表视图的某些奇怪的插入行为,如下所示:
为了解决这个问题,我设置extendedLayoutIncludesOpaqueBars到true上UITableViewController。这样做可以正确地将视图扩展到导航栏下方,但会以contentOffset我不太了解的方式更改表视图的行为。将此属性设置为时,true表格视图的Y值contentOffset报告其偏移量应比导航栏当前高度高(即,滚动表格视图1pt,它报告其y偏移量为-63pts )。
这使我认为导航控制器contentInset像半透明条一样自动管理滚动视图的。但是我看不到任何证据表明滚动视图中已设置了内容插图scrollViewDidScroll()。即使在表视图控制器上将其automaticallyAdjustsScrollViewInsets设置为false,内容偏移也不正确,因此似乎与插图无关。
Apple的文档extendedLayoutIncludesOpaqueBars未提及对滚动视图的内容偏移量的行为有任何影响。contentInset不幸的是,更改表视图的不能解决此问题。
我尝试更改表视图控制器的edgesForExtendedLayout属性,以强制其扩展而不影响滚动视图,但是对于不透明的条形来说,此属性似乎无能为力。
是否存在一些隐藏的行为,extendedLayoutIncludesOpaqueBars从而使滚动视图的内容偏移增加了?还是这可能是一个错误?
uitableview uiviewcontroller uikit uinavigationcontroller ios