iOS UITableView 让cell分割线(Separator)从左边0的位置开始

96
傅hc
2016.08.04 23:27 字数 263

在做APP的个人中心或者其它页面的时候会要求页面cell的分割线是从左边0开始的,但是系统默认是间隔了15像素的距离的,如下图1-1


图1-1

可能大家都会说自定义cell就搞定了啊,没错,但是有没有更加好一点的方法呢?毕竟自定义cell费时间啊(其实是懒),其实办法还是有的,而且也简单,在iOS7中可以通过设置setSeparatorInset:UIEdgeInsetsZero,在iOS8改成setLayoutMargins:方法了,为了兼容iOS7,所以要加个判断,具体代码在tableView页面添加下面的方法即可:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
        [cell setLayoutMargins:UIEdgeInsetsZero];
    }
    if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
        [cell setSeparatorInset:UIEdgeInsetsZero];
    }
}

- (void)viewDidLayoutSubviews
{
    if ([_tableView respondsToSelector:@selector(setSeparatorInset:)]) {
        [_tableView setSeparatorInset:UIEdgeInsetsZero];
    }
    if ([_tableView respondsToSelector:@selector(setLayoutMargins:)]) {
        [_tableView setLayoutMargins:UIEdgeInsetsZero];
    }
}

完成之后效果如图1-2,是不是很省事?:


图1-2
iOS日常问题总结