我使用iOS 9目标将应用从iOS 10更新到iOS 11,当涉及导航栏时,会在每个segue动画上发生这种情况。
动画以低于其应有的高度的小偏移开始,然后在视图完成动画时移动到适当的高度。
我没有对导航控制器做任何特别的事情,它发生在应用程序中的每一个。如果我以编程方式隐藏导航栏,则转换会正常进行动画处理。
答案 0 :(得分:5)
在UINavigationController中将tableView.contentInsetAdjustmentBehavior
设置为.never
可以解决问题。
编辑:实际上,更好的解决方案是激活TableViewController的 Under Opaque Bars 选项。
否则垂直滚动条将在横向模式下位于iPhone X缺口后面。这对我有用,因为我使用不透明的条纹。我不知道如果你使用半透明条会发生什么。
Prince在Apple Developer Forums:
上描述了原始解决方案经过一些研究......我发现在iOS 11中不推荐
automaticallyAdjustsScrollViewInsets
,现在我们要在UIScrollView类型视图中使用contentInsetAdjustmentBehavior
。将contentInsetAdjustmentBehavior
设置为.never
并且如果UINavigationBar是透明的,那么视图在条形图下面就不会发生'UINavigationController翻译上滑问题'。 (因此,执行automaticAdjustsScrollViewInsets`的新方法)这对于Storyboard用户来说并不好,因为这必须在代码中完成。
答案 1 :(得分:0)
在iOS11中不推荐使用顶部/底部布局指南,我认为您的问题与此相关。所以你可以改变我认为的约束。
了解更多here。