UITableViewCell裏面separator的設置

最近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當作一條分割線使用,顯示效果完美
相關文章
相關標籤/搜索