项目中许多需求要求全屏幕展示(包括安全域),如何实现UITableView全屏展示?
一、取消UIScrollView内容内边距,代码如下:
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
//iOS11系统及以上,
} else {
self.automaticallyAdjustsScrollViewInsets = NO;
// Fallback on earlier versions
}
如果有导航栏,还需要设置导航栏不透明,否则导航栏遮挡显示内容。代码设置如下:
self.navigationController.navigationBar.translucent = NO;
self.extendedLayoutIncludesOpaqueBars = NO;//默认是NO,可以不设置
二、如果UITableView的style为UITableViewStylePlain,则已经满足全屏展示。如果style为UITableViewStyleGrouped,则还需设置tableFooterView和tableHeaderView。代码如下:
_tableView.tableFooterView = [[UITableViewHeaderFooterView alloc] initWithFrame:CGRectMake(0, 0, 0, CGFLOAT_MIN)];
_tableView.tableHeaderView = [[UITableViewHeaderFooterView alloc] initWithFrame:CGRectMake(0, 0, 0, CGFLOAT_MIN)];
注意:header和footer高度不能设置为0。