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];
}
}