美文网首页
cell分割线的取消或者自定义

cell分割线的取消或者自定义

作者: Jabber_YQ | 来源:发表于2016-07-08 09:10 被阅读574次

    1.取消分割线

    有些时候,tableview不需要cell分割线,那么需要改变tableview的separatorStyle属性。

    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

    2.自定义分割线

    当tableview需要cell分割线但是和自带的的cell又有颜色frame之类的区别时,就可以在cell上添加一个view来“冒充”分割线。

    UIView *line = [UIView new];

    line.frame = CGRectMake(20, 43, SCREEN_WIDTH, 1);

    line.backgroundColor = rgb(245, 245, 245);

    [cell.contentView addSubview:line];

    3.重写cell的frame

    下面这个方法可以重新改变分割线的frame而不需要自定义

    在ios8上 [TableViewsetSeparatorInset:UIEdgeInsetsMake(0,0,0,0)];不起作用

    -(void)viewDidLayoutSubviews

    {

        if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {

        [self.tableView setSeparatorInset:UIEdgeInsetsMake(0,0,0,0)];

    }

        if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {

            [self.tableView setLayoutMargins:UIEdgeInsetsMake(0,0,0,0)];

        }

    }

    -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

    {

        if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {

            [cell setSeparatorInset:UIEdgeInsetsZero];

        }

        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {

            [cell setLayoutMargins:UIEdgeInsetsZero];

        }

    }

    相关文章

      网友评论

          本文标题:cell分割线的取消或者自定义

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