防止UINavigationController在iOS 11中使用偏移量向上过渡动画?

Kev*_*art 2 uinavigationcontroller ios ios11

我正在使用iOS 9目标将应用程序从iOS 10更新到iOS 11,当涉及导航栏时,这会发生在每个segue动画上.

动画以小于它应该处于的高度的小偏移开始,然后在视图完成动画时移动到适当的高度.

我没有对导航控制器做任何特别的事情,它发生在应用程序中的每一个.如果我以编程方式隐藏导航栏,则转换正常进行动画处理.

ale*_*ner 5

在UINavigationController中设置tableView.contentInsetAdjustmentBehaviorto可以.never解决问题.

编辑:实际上更好的解决方案是激活TableViewController 的Under Opaque Bars选项.

否则垂直滚动条将以横向模式位于iPhone X缺口后面.这对我有用,因为我使用不透明的条纹.我不知道如果你使用半透明条会发生什么.

在此输入图像描述


Prince在Apple开发者论坛上描述了最初的解决方案:

经过一些研究......我发现automaticallyAdjustsScrollViewInsets在iOS 11中已弃用,现在我们将contentInsetAdjustmentBehavior在UIScrollView类型视图中使用.设置contentInsetAdjustmentBehavior.never工作,也是"UINavigationController的翻译向上滑动问题"如果UINavigationBar的是transulcent其中的观点是扎下不会发生.(因此,执行automaticAdjustsScrollViewInsets`的新方法)

这对于Storyboard用户来说并不好,因为这必须在代码中完成.