在開發中經常遇到cell分割線顯示不全或者想自定義線的寬高等; 最近總結了一下,希望幫到大家:
1.不想劃線怎麼辦?
TableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; // 設置系統默認線的樣式
-(void)viewDidLayoutSubviews {
if ([TableView respondsToSelector:@selector(setSeparatorInset:)]) {
[TableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([TableView respondsToSelector:@selector(setLayoutMargins:)]) {
[TableView setLayoutMargins:UIEdgeInsetsZero];
}
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPat{
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setSeparatorInset:)]){
[cell setSeparatorInset:UIEdgeInsetsZero];
}
}
TableView.separatorStyle = UITableViewCellSeparatorStyleNone; // 丟掉系統的線,畫自定義的線
#define SINGLE_LINE_HEIGHT (1/[UIScreen mainScreen].scale) // 線的高度
#define COLOR_LINE_GRAY [UIColor colorWithRed:224/255.0f green:224/255.0f blue:224/255.0f alpha:1] //分割線顏色 #e0e0e0
在自定義cell裡寫入:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
CGContextFillRect(context, rect);
//下分割線
CGContextSetStrokeColorWithColor(context, COLOR_LINE_GRAY.CGColor); // COLOR_LINE_GRAY 為線的顏色
CGContextStrokeRect(context, CGRectMake(0, rect.size.height, rect.size.width, SINGLE_LINE_HEIGHT)); //SINGLE_LINE_HEIGHT 為線的高度
}