iOS开发笔记之四十四——UITableView的UITableViewStyleGrouped风格顶部空白的设置

时间:2022-11-18 00:08:27

1、问题背景

 刚在一个界面上搭建一个tableview,但是无论怎么设置,tableview的顶部都会有一个空白,初始化代码如下:

    self.reviewTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.width, self.view.bounds.size.height - 233) style:UITableViewStyleGrouped];
self.reviewTableView.dataSource = self;
self.reviewTableView.delegate = self;
self.reviewTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
self.reviewTableView.scrollEnabled = YES;
self.reviewTableView.separatorColor = [UIColor clearColor];
self.reviewTableView.showsVerticalScrollIndicator = YES;
[self.backgroudViewFirst addSubview:self.reviewTableView];
[self.reviewTableView setSeperatorMargin:0];

结果出来的tableview就多出一个“表头”,如下:

iOS开发笔记之四十四——UITableView的UITableViewStyleGrouped风格顶部空白的设置
开始以为是标头设置了高度或者标头视图,尝试如下:

- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
return nil;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 0.0;
}


结果没有任何作用,经过查阅,可以尝试如下方法进行设置:

(1)设置headsection高度为0.00001而不是0.0,如下:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 0.00001;
}


(2) 我们知道UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped。后者按分组样式显示,前者按照普通样式显示而已。所以,如果不需要这个标头可以直接改为普通风格即可:

self.reviewTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.width, self.view.bounds.size.height - 233) style:UITableViewStylePlain];

2、参考资料:

http://www.cnblogs.com/kenshincui/p/3931948.html