美文网首页iOS实战
UITableView 间隔线显示问题

UITableView 间隔线显示问题

作者: bense100 | 来源:发表于2018-09-12 11:07 被阅读0次

    1、间隔线的样式

    1.1、间隔线设置方法
    _mTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
    
    1.2、三种系统间隔线样式:
    UITableViewCellSeparatorStyleNone //没有分割线
    UITableViewCellSeparatorStyleSingleLine //单线(默认)(左边不到屏幕)
    UITableViewCellSeparatorStyleSingleLineEtched //内嵌线 (左边到屏幕)
    
    1.3、分割线从边界开始方法
    - (void)viewDidLoad {
        [super viewDidLoad];
        // 调整view边距(或者在cell中设置preservesSuperviewLayoutMargins,二者等效)
        if ([_mTableView respondsToSelector:@selector(setLayoutMargins:)]) {
            _mTableView.layoutMargins = UIEdgeInsetsZero;
        }
    }
    
    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
            [cell setLayoutMargins:UIEdgeInsetsZero];
        }
    }
    

    2、去掉间隔线

    2.1、 去掉整个tableView的间隔线
    _mTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    
    2.2、 去掉单个cell的分割线
    [cell setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, MAXFLOAT)];
    
    2.3、 去掉多余的间隔线
    self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
    

    3、线条不显示问题

    3.1、 cell重写- (void)layoutSubviews 方法时如果不调用 super方法,间隔线不会显示
    - (void)layoutSubviews
    {
        // 必须写super方法才会显示线条
        [super layoutSubviews];
    }
    

    相关文章

      网友评论

        本文标题:UITableView 间隔线显示问题

        本文链接:https://www.haomeiwen.com/subject/irgmgftx.html