TableView和iPhone X上的主页指示器

我在一个项目中使用UITableViewControllerUITableView

UITableView中的UITableViewController覆盖了iPhone X上的home指示符,但是UIViewController中的UITableView不会覆盖iPhone X上的home指示符。我应该使用它吗? 当我考虑安全区域时,哪一个是正确的?

的UITableViewController

UIViewController上的UITableView

你可以继续在标准的UIViewController上使用UITableView 。 只需设置自动布局,以便tableview的底部与superview的底部齐平(而不是边距)。 然后将tableview的insetsContentViewsToSafeArea属性设置为true

迅速:

 if #available(iOS 11.0, *) { tableView.insetsContentViewsToSafeArea = true; } 

Objective-C的:

 if (@available(iOS 11.0, *)) { [tableView setInsetsContentViewsToSafeArea:YES]; } 

这是因为UITableViewController中的表视图是根视图。 它将延伸到全屏。 但是你可以在UIViewController中对表格视图的底部布局指南进行约束。 所以你可以使用UIViewController。 或者你可以在UITableViewController中设置内容插入。