1.取消分割線
有些時(shí)候里烦,tableview不需要cell分割線凿蒜,那么需要改變tableview的separatorStyle屬性。
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
2.自定義分割線
當(dāng)tableview需要cell分割線但是和自帶的的cell又有顏色frame之類(lèi)的區(qū)別時(shí)胁黑,就可以在cell上添加一個(gè)view來(lái)“冒充”分割線废封。
UIView *line = [UIView new];
line.frame = CGRectMake(20, 43, SCREEN_WIDTH, 1);
line.backgroundColor = rgb(245, 245, 245);
[cell.contentView addSubview:line];
3.重寫(xiě)cell的frame
下面這個(gè)方法可以重新改變分割線的frame而不需要自定義
在ios8上 [TableViewsetSeparatorInset:UIEdgeInsetsMake(0,0,0,0)];不起作用
-(void)viewDidLayoutSubviews
{
??? if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
??? [self.tableView setSeparatorInset:UIEdgeInsetsMake(0,0,0,0)];
}
??? if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
??????? [self.tableView setLayoutMargins:UIEdgeInsetsMake(0,0,0,0)];
??? }
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
??? if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
??????? [cell setSeparatorInset:UIEdgeInsetsZero];
??? }
??? if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
??????? [cell setLayoutMargins:UIEdgeInsetsZero];
??? }
}