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]; } }
效果圖如下:

