在開發中經常遇到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 為線的高度 }