我在一个项目中同时使用UITableViewController
和UITableView
。
{1}中的UITableView
覆盖iPhone X上的主页指示符。
但UITableViewController
中的UITableView
并未覆盖iPhone X上的家庭指示器。
我应该适合吗?
当我考虑安全区域时,哪一个是正确的?
e.x。
答案 0 :(得分:3)
您可以继续在标准UITableView
上使用UIViewController
。只需设置自动布局,以便tableview的底部与superview的底部齐平(而不是边距)。然后将tableview的insetsContentViewsToSafeArea
属性设置为true
<强>夫特:强>
if #available(iOS 11.0, *) {
tableView.insetsContentViewsToSafeArea = true;
}
<强>目标-C:强>
if (@available(iOS 11.0, *)) {
[tableView setInsetsContentViewsToSafeArea:YES];
}
答案 1 :(得分:2)
这是在 iOS 12 中对我有用的内容:
我尝试设置insetsContentViewsToSafeArea
,但这没有用,尽管它使我走上了正确的道路。对我来说,解决此问题的方法是将笔尖/故事板中的“内容插入”设置为“从不”(在代码中,该属性为contentInsetAdjustmentBehavior
)。
说明:似乎,对于iPhoneX及更高版本,系统会自动为表格视图添加一些底部填充,以使内容超出起始位置指示器。
答案 2 :(得分:0)
这是因为UITableViewController中的表视图是根视图。它将扩展到全屏。但是你可以在UIViewController中对表视图的底部布局指南进行约束。所以你可以使用UIViewController。或者您可以在UITableViewController中设置内容插入。