最近cell显示的时候左边一直有15个像素的偏移,查了下面的方法
//1. 不管用
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
// 2.效果不明显,并不能完全从第一个像素显示分割线
1 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 2 if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) 3 { 4 [self.tableView setSeparatorInset:UIEdgeInsetsZero]; 5 } 6 if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) 7 { 8 [self.tableView setLayoutMargins:UIEdgeInsetsZero]; 9 } 10 }
// 3.重写drawRect方法,有效果,颜色设置方便,但是操作cell,会增加手机负担
1 - (void)drawRect:(CGRect)rect { 2 CGContextRef context = UIGraphicsGetCurrentContext(); 3 CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); 4 CGContextFillRect(context, rect); 5 6 //上分割线 7 CGContextSetStrokeColorWithColor(context,[UIColor whiteColor].CGColor); 8 CGContextStrokeRect(context,CGRectMake(0,0,rect.size.width,1)); 9 10 //下分割线 11 CGContextSetStrokeColorWithColor(context,[UIColor whiteColor].CGColor); 12 CGContextStrokeRect(context,CGRectMake(0,rect.size.height-1,rect.size.width,1)); 13 }
// 4.自定义cell,隐藏cell的separator的颜色,然后在cell的separator位置上添加一个只有1像素的view,设置view的颜色,即把view当做一条分割线使用,显示效果完美