iOS实战

UITableView 间隔线显示问题

2018-09-12  本文已影响0人  bense100

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];
}
上一篇下一篇

猜你喜欢

热点阅读