在UINavigationController顶部进行奇怪的填充,同时在iOS11中制作动画细节

时间:2017-10-09 21:34:24

标签: ios uitableview autolayout uikit ios11

我在这里发帖是因为我完全失去了这个。 我已经在网上搜索过,自己尝试了很多东西,并在这个问题上搜索了几周,但我找不到它。

从那以后 iOS 11 (在iOS 10上没有发生),每当我按下一个按钮激活" show" segue in UINavigationController 动画在顶部显示一些奇怪的填充。 动画结束后,此填充消失。

我已将超视图的背景颜色更改为红色,您可以看到的空间确实来自超级视图本身,所以我的猜测是整个UITableView由于某种原因正在被降下来,虽然我不确定这里到底是什么原因。 (我使用的是storyboard和AutoLayout约束)

我注意到的另一件事是,你看到的间距/填充在iPhone X上与其他设备相比不同(我的猜测是它的高度与(非)相同)顶部的安全区域?再次,不确定。

我不认为这里需要提供代码,因为我不知道哪个部分会导致这种行为(并且我可以分享很多代码)原因..)。 任何有关如何解决此问题的建议/帮助都将深表感谢!

以下是一些示例:

运行iOS 11.1的iPhone X(也发生在11.0上)
iPhone X

iPhone 8 gif
iPhone 8

编辑:我应该添加一些我已尝试过的内容:

  • tableView.contentInsetAdjustmentBehavior = .never
  • 将标题视图设置为0
  • tableView.setContentOffset(0, animated: false)
  • 使用UINavigationBar
  • 的半透明设置
  • AutomaticallyAdjustContentInsets设置为false

1 个答案:

答案 0 :(得分:0)

所以,正如Spenser-Arn所建议的那样,我讨论了约束和安全区域,结果是问题原因的安全区域。

希望这能帮助其他人,就像它对我有所帮助一样,对Spenser-Arn来说也是一个很大的帮助!