cell分割线的取消或者自定义(链接)

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

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分割线的取消或者自定义(链接))