UITableView的UITableViewStyleGrouped风格顶部空白问题

时间:2022-11-15 20:30:09

在使用UITableView的UITableViewStyleGrouped的属性时,会遇到每组的顶部空白如图1;

处理方法:设置UITableView的两个代理就可以解决:

// 解决方法:1(设置headView在代理方法中操作能避免空白) -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
   
 return nil;
} -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
   
 return 0.001;
}
//ps:项目需要headView的话就在上边代理中操作即可,如下

-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
{
   
switch (section) {
       
case 0:
           
return _SectionOne;
           
break;
       
case 1:
           
return _SectionTwo;
           
break;
       
case 2:
           
return _SectionThree;
           
break;
           
       
default:
           
break;
    }
   
return [UIViewnew];
}

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

_SectionOne= [[UIImageViewalloc]init];
_SectionOne.frame= CGRectMake(0,0,kScreenWidth,200);
_SectionOne.backgroundColor= [UIColorgrayColor];


// 解决方法:2

_tableView= [[UITableViewalloc]initWithFrame:CGRectMake(0,0,kScreenWidth,kScreenHeight-64)style:UITableViewStyleGrouped];
 _tableView.delegate= self;
 _tableView.dataSource= self;
 _tableView.sectionFooterHeight= 0.0;//如果分组处理每组的foot还会有35像素的距离,加上此属性即可.
 _tableView.sectionHeaderHeight= 0.0;//方法2:处理方法设置headView的高度为0即可。
[
self.viewaddSubview:_tableView];