安全区域布局指南不适用于故事板中的UITableViewController

Sac*_*hin 10 uitableview ios uistoryboard safearealayoutguide iphone-x

似乎UITableViewController没有安全区域布局指南将表视图顶部和底部边距设置为与iPhone X中底部布局的碰撞,所有视图控制器都能正常工作,故事板中的安全区域布局指南用于上下边距.除UITableView控制器外,请帮助解决此问题.

作为参考,我附上了iPhoneX的截图.在那里你可以看到字符串"小麦"不适合在底部安全区域内.

在此输入图像描述

gio*_*shc 12

我相信这是因为视图控制器的视图(总是占用整个屏幕大小)是tableview.

使用a UIViewController并在其下添加一个表视图view(并添加约束以尊重底部安全区域)

要么

使用以下内容设置表视图内容插入:

tableView.contentInset = UIEdgeInsetsMake(0, 0, UIApplication.shared.keyWindow!.safeAreaInsets.bottom, 0.0);
Run Code Online (Sandbox Code Playgroud)

如果您使用后者并且目标iOS版本低于11,请确保您使用以下内容进行验证:

     var safeAreaBottom: CGFloat = 0.0 
     if #available(iOS 11.0, *) {
         safeAreaBottom = UIApplication.shared.keyWindow!.safeAreaInsets.bottom
     }

     tableView.contentInset = UIEdgeInsetsMake(0, 0, safeAreaBottom, 0.0);
Run Code Online (Sandbox Code Playgroud)

我也注意到tableviewiOS 11中的这个属性(但没有描述:/):insetsContentViewsToSafeArea

我还没试过,但你可以尝试一下.也许这就是你需要的开箱即用

  • 你确定这在 iOS 12.2 中仍然有效吗?我不能让它工作。将 `insetsContentViewsToSafeArea` 设置为 `false` 时,它也不起作用。 (2认同)