我已经搜索了几周找这个解决方案,今天终于让它运作起来了。解决方案非常简单,我简直不能相信早些时候没有找到它。
我使用了一个普通的UIViewController和UITableView。我的布局约束是将UITableView与底部和顶部布局指南全部固定为0,如下所示:
一旦我改变了这个并将UITableView固定到Superview的所有边缘都为0,它神奇地开始工作了:
我甚至不需要设置其他任何东西。我真心希望这也能为你解决问题,因为它实在太烦人了...
如果上述方法无效,则还需要进行以下设置
self.extendedLayoutIncludesOpaqueBars = YES;
或者在Storyboard中勾选"Extend Edges / Under Opaque Bar"
尝试一下
self.extendedLayoutIncludesOpaqueBars = YES;
如果你的导航栏是不透明的话,这个方法对我有用,它可以修复这个问题。
尝试使用这段代码片段:
self.navigationController?.navigationBar.prefersLargeTitles = false
self.navigationController?.navigationBar.prefersLargeTitles = true;