tableview 上拉时 标题行出现在顶部不动效果

类似这种效果:

其实很简单,利用tableview 的plain属性,然后使用section,其实滑上去不动的是  section的headView.

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 3;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    if (section==1||section==2) {
        return 15;
    }else{
        return 5;
    }
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (cell==nil) {
        cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }
    [cell.textLabel setText:[NSString stringWithFormat:@"%ld-%ld",(long)indexPath.section,(long)indexPath.row]];
    return cell;
}


-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
    if (section==1||section==2) {
        UIView *view=[[UIView alloc]initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 50)];
        if (section==1) {
            [view setBackgroundColor:[UIColor redColor]];
        }else{
            [view setBackgroundColor:[UIColor greenColor]];
        }
        [view setUserInteractionEnabled:YES];
        return view;
    }
    return nil;
}

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    if (section==0) {
        return 0.1;
    }else{
        return 50;
    }
}

注:tableview 一定不能设置成group,一定是plain!

原文地址:https://www.cnblogs.com/niit-soft-518/p/4923191.html