<pre name="code" class="objc">-(void)viewDidLayoutSubviews
{
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
}
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
//不显示多余的cell分割线
self.tableView.tableFooterView = [[UIView alloc] init];
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
还有另一种万金油方法就是去掉系统的线 自定义view来代替系统cell的线
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
self.tableView.separatorStyle =UITableViewCellSeparatorStyleNone;
UIColor * color = [UIColor colorWithRed:204/255.0 green:204/255.0 blue:204/255.0 alpha:0.3];
if (indexPath.row ==0) {
UIView * topLineView = [[UIView alloc]init];
topLineView.backgroundColor = color;
topLineView.frame=CGRectMake(0,0, [UIScreen mainScreen].bounds.size.width,1);
UIView * bottomLineView = [[UIView alloc]init];
bottomLineView.backgroundColor = color;
bottomLineView.frame=CGRectMake(0, cell.frame.size.height - 1, [UIScreen mainScreen].bounds.size.width,1);
cell.backgroundView = [[UIView alloc] init] ;
[cell.backgroundView addSubview:topLineView];
[cell.backgroundView addSubview:bottomLineView];
}else{
UIView *bottomLineView = [[UIView alloc]init];
bottomLineView.backgroundColor = color;
bottomLineView.frame=CGRectMake(0, cell.frame.size.height - 1, [UIScreen mainScreen].bounds.size.width,1);
cell.backgroundView = [[UIView alloc] init] ;
[cell.backgroundView addSubview:bottomLineView];
}
}