UITableView消除空白和分割线

1.表的样式尾UITableViewStyleGrouped时,怎样去掉头部和中间间隔(表尾)

    _tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, CGFLOAT_MIN)];
    _tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, CGFLOAT_MIN)];//设置一个最小值,但是不能为0

2.表的样式为UITableViewStylePlain时,怎样消除最后一个单元格的底部分割线

//解决方式为:添加一个tableFooterView
tableView.tableFooterView = [[UIView alloc]initWithFrame:];  
tableView.tableFooterView.backgroundColor = MainBackGroundColor;  

//不过添加后最底下会存在一条分割线,去除方法为:在

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
中判断是否为最后一个cell,然后设置
cell.separatorInset = UIEdgeInsetsMake(0, 0, 0,   
[UIScreen mainScreen].bounds.size.width  
); 
 }

3.表的样式为UITableViewStylePlain时,怎样取消自带的效果
1.有多段时 段头停留(自带效果)
2.没有中间的间距和头部间距(要想有的重写UITableViewCell \UITableViewHeaderFooterView里面的setFrame方法)
扩展:让段头不停留(取消粘性效果)

  • (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat sectionHeaderHeight = 30;
    if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
    scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
    } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
    scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
    }
    }

你可能感兴趣的:(UITableView消除空白和分割线)