UITableView设置cell的separator 分割线
1、去除UITableView空白的多余的分割线
self.myTableview.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
2、设置分割线的位置
方法一:
在willDisplayCell上增加如下代码
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ cell.separatorInset = UIEdgeInsetsMake(0, 50, 0, 0); //UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) //缩进50pt }
如果要去了最后一行cell的分割线需要这样
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPath.row==dataSourceArray.count-1) { cell.separatorInset = UIEdgeInsetsMake(0, 320 , 0, 0); } }
方法二:
-(void)viewDidLayoutSubviews { if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) { [self.tableView setSeparatorInset:UIEdgeInsetsMake(0,50,0,0)]; } if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) { [self.tableView setLayoutMargins:UIEdgeInsetsMake(0,50,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]; } }
效果图如下: