在 iOS11 中动画细节时顶部 UINavigationController 的奇怪填充
Posted
技术标签:
【中文标题】在 iOS11 中动画细节时顶部 UINavigationController 的奇怪填充【英文标题】:Weird padding at top UINavigationController while animating to detail in iOS11 【发布时间】:2017-10-09 21:34:24 【问题描述】:我在这里发帖是因为我完全迷失了这个。 我已经在整个网络上进行了搜索,我自己也尝试了很多东西,并且在这个错误上搜索了数周,但我找不到它。
所以自从 iOS 11(在 ios 10 上不会发生),每次我按下一个按钮来激活 UINavigationController
中的“显示”segue 时,动画都会显示一些奇怪的东西顶部填充。
动画结束后,该填充消失。
我已经把superview的backgroundcolor改成了红色,你可以看到的空间确实是superview本身,所以我猜是整个UITableView
被下移了出于某种原因,虽然我不确定这里到底是什么原因。
(我正在使用情节提要和 AutoLayout 约束)
我注意到的另一件事是,与其他设备相比,您在 iPhone X 上看到的 间距/填充不同(我的猜测是它与顶部?再次,不确定。
我认为这里没有必要提供代码,因为我真的不知道是哪一部分导致了这种行为(而且有很多代码我不能分享原因......)。 任何有关如何解决此问题的建议/帮助将不胜感激!
以下是一些示例:
运行 iOS 11.1 的 iPhone X(也发生在 11.0 上)
iPhone 8 gif
编辑:我应该补充一下,我已经尝试过的一些事情:
tableView.contentInsetAdjustmentBehavior = .never
将标题视图设置为 0
tableView.setContentOffset(0, animated: false)
使用UINavigationBar
的半透明设置
AutomaticallyAdjustContentInsets
设置为 false
【问题讨论】:
您是否尝试过查看情节提要中的“安全空间”。由于 iOS 11 的更新,您的限制可能与这些限制有关。它发生在我的几个视图中,我不得不进入并调整它们。 @SpenserArn 是的,我正在使用情节提要中的安全区域,我尝试使用它们,但到目前为止没有成功。你有同样的问题吗?明天我会再次研究它,但我怀疑它(如果它有效,那就太好了) @SpenserArn 所以,在再次与他们玩耍之后,确实是安全区域导致了问题!非常感谢您的建议,我的一天已经完成!愚蠢的是我没有尝试更多。 【参考方案1】:所以,正如Spenser-Arn 所建议的那样,我玩弄了约束和安全区域,结果证明是问题原因所在的安全区域。
希望这能像它帮助我一样帮助其他人,非常感谢 Spenser-Arn!
【讨论】:
以上是关于在 iOS11 中动画细节时顶部 UINavigationController 的奇怪填充的主要内容,如果未能解决你的问题,请参考以下文章