当我将navigationBar切换为半透明时,我的UISearchDisplayController发疯了。
灰度区域被64px错位,对于结果表中的第一行也是如此。 我知道如何修复resultTableView的错位,但是我找不到修复灰色区域框架的方法。
奇怪的是,当半透明设置为YES时,我发现我的主视图位于origin.y = 64.0f。 它发生在viewDidLoad,viewDidAppear之间。如果我更改它可以工作,但导航控制器中的视图之间的转换会被破坏。
=============
问题解决:extendedLayoutIncludesOpaqueBars
答案 0 :(得分:1)
检查搜索栏的AutoLayout / AutoResizingMask设置。
同时确保您不会手动修改条形框架,因为系统会尝试将条形图设置为沿着灰色视图的位置,并且结果为'表格视图。
当您将translucent
属性和automaticallyAdjustsScrollViewInsets
设置为YES
时(默认):a)视图在导航栏下拉伸,b)顶部contentInset
为添加到基础UIScrollView
(表视图是子类)。
我的猜测是,由于某种原因,只有b)发生在你的案件中。您可以尝试通过以下方式解决它:
automaticallyAdjustsScrollViewInsets
。contentInset
。extendedLayoutIncludesOpaqueBars
。