UITableView+UITableViewStyleGrouped 處理section之間間隙

[[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStyleGrouped]

這樣初始化的tableview的樣式是這樣的:以下:code

style設置爲UITableViewStyleGrouped時header和footer不會懸浮在視圖上,設置爲UITableViewStylePlain就會懸浮。orm

而後我設置了每一個section的高:string

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section==0){
//讓第一個不顯示
        return 0.1;}
    return 30;
}

-(UIView* )tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
    if (section==0) {
        return nil;
    }
    UILabel *lb=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 30)];
    lb.text=[NSString stringWithFormat:@"%ld",section];
    lb.backgroundColor=[UIColor greenColor];
    return lb;
}


紅框的區域是多出來的,我把header的高設置爲30,header上的View高也是30;it

可是會多出來,那片就是footer的區域,把他的高設置爲0.1就好了(設置爲0不行)io

//header的高
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section==0){
        return 0.1;}
    return 30;
}
//footer的高 必須在這設置footer的高否則tableview的尾部會多出一塊
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
    if (section==9) {
        return 0.1;
    }
    return 0.1;
}
//header的View
-(UIView* )tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
    if (section==0) {
        return nil;
    }
    UILabel *lb=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 30)];
    lb.text=[NSString stringWithFormat:@"%ld",section];
    lb.backgroundColor=[UIColor greenColor];
    return lb;
}

或者在初始化tableview時加一句table

//高設置爲0.1能夠;設置爲0不行
self.tableview.tableFooterView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 0, 0.1)];
相關文章
相關標籤/搜索