在 iOS11 中对细节进行动画处理时,UINavigationController 顶部出现奇怪的填充
Weird padding at top UINavigationController while animating to detail in iOS11
我在这里发帖是因为我完全迷失了这一点。
我在整个网络上进行了搜索,自己尝试了很多东西,并针对这个错误搜索了数周,但我找不到它。
所以自从 iOS 11(在 iOS 10 上不会发生),每次我按下一个按钮激活 "show" 在 UINavigationController
中继续 动画在顶部显示一些奇怪的填充 。
动画结束后,此填充消失。
我把superview的backgroundcolor改成了红色,你看到的space确实是superview本身,所以我猜是由于某种原因,整个 UITableView
被向下移动,尽管我不确定这里的确切原因是什么。
(我正在使用故事板和 AutoLayout 约束)
我注意到的另一件事是,您在 iPhone X 上看到的 spacing/padding 与其他设备 不同(我的猜测是与顶部(非)安全区域的高度相同?同样,不确定。
我认为没有必要在此处提供代码,因为我真的不知道是哪一部分导致了此行为(并且由于某些原因我无法分享很多代码..)。
任何关于如何解决此问题的 suggestions/help 都将不胜感激!
这里有一些例子:
iPhone X 运行 iOS 11.1(也发生在 11.0)
iPhone 8 gif
编辑:我应该补充一些我已经尝试过的事情:
tableView.contentInsetAdjustmentBehavior = .never
- 将标题视图设置为 0
tableView.setContentOffset(0, animated: false)
- 使用
UINavigationBar
的半透明设置
AutomaticallyAdjustContentInsets
设置为 false
因此,正如 Spenser-Arn 所建议的那样,我研究了约束和安全区域,结果证明,安全区域是导致问题的地方。
希望这能像帮助我一样帮助其他人,非常感谢 Spenser-Arn!
我在这里发帖是因为我完全迷失了这一点。 我在整个网络上进行了搜索,自己尝试了很多东西,并针对这个错误搜索了数周,但我找不到它。
所以自从 iOS 11(在 iOS 10 上不会发生),每次我按下一个按钮激活 "show" 在 UINavigationController
中继续 动画在顶部显示一些奇怪的填充 。
动画结束后,此填充消失。
我把superview的backgroundcolor改成了红色,你看到的space确实是superview本身,所以我猜是由于某种原因,整个 UITableView
被向下移动,尽管我不确定这里的确切原因是什么。
(我正在使用故事板和 AutoLayout 约束)
我注意到的另一件事是,您在 iPhone X 上看到的 spacing/padding 与其他设备 不同(我的猜测是与顶部(非)安全区域的高度相同?同样,不确定。
我认为没有必要在此处提供代码,因为我真的不知道是哪一部分导致了此行为(并且由于某些原因我无法分享很多代码..)。 任何关于如何解决此问题的 suggestions/help 都将不胜感激!
这里有一些例子:
iPhone X 运行 iOS 11.1(也发生在 11.0)
iPhone 8 gif
编辑:我应该补充一些我已经尝试过的事情:
tableView.contentInsetAdjustmentBehavior = .never
- 将标题视图设置为 0
tableView.setContentOffset(0, animated: false)
- 使用
UINavigationBar
的半透明设置
AutomaticallyAdjustContentInsets
设置为 false
因此,正如 Spenser-Arn 所建议的那样,我研究了约束和安全区域,结果证明,安全区域是导致问题的地方。
希望这能像帮助我一样帮助其他人,非常感谢 Spenser-Arn!