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];***
*** }***
}
作者获得授权,并标注“简书作者”。