我最近升级到 Xcode 9-beta 和 iOS 11。当我在我的项目上推送播放时,我的所有视图都被状态栏向下推了大约 20 像素,而不是状态栏直接在我的视图顶部。我有 iOS 10 的伙伴没有这个问题。我附上了截图供您参考。
任何人都可以提供一些建议吗?任何帮助将非常感激。提前非常感谢。
快速回答
您可能希望将contentInsetAdjustmentBehavior
您的tableView
或scrollView
对象设置为.never
.
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
或者
if #available(iOS 11.0, *) {
scrollView.contentInsetAdjustmentBehavior = .never
}
我遇到了同样的问题,经过几个小时的搜索,我终于找到了问题。
Xcode 9 有一个新的安全区域概念,默认情况下,故事板现在在所有视图的顶部添加一个安全区域。
如果您选择 ViewController 的根视图并选择 Size Inspector,您将看到一个复选框,如图 所示
取消选中它,这个顶部填充将消失。
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
如果使用UITableViewStyle.grouped
- 即使您添加,35px 的间隙仍然存在tableView.contentInsetAdjustmentBehavior = .never
。尝试更改UITableViewStyle
为plain
. 这为我解决了一个问题。