UITableView完美分割线

  • 大概是从iOS7开始,系统默认的tableView分割线左边是有一定间距的,很多时候我们开发需求是不需要它留有这部分间距,所以我们要想办法取消掉
  • 目前方法有很多种,有用一个高度为1的UIView操作的,有用重写cell的setFrame方法操作的,不过可能是自己使用习惯了,最钟意的还是以下的代码,从根本上去处理的
  • 而且最爽的是我给代码仓库里面添加了这部分代码,使用的时候只要敲一个快捷语就可以自动写入这部分代码
//设置tableview的分割线没有开头的间距

//view布局完子控件的时候调用
- (void)viewDidLayoutSubviews
{
//iOS7只需要设置SeparatorInset(iOS7开始有的)就可以了,但是iOS8的话单单只设置这个是不行的,还需要设置LayoutMargins(iOS8开始有的)
   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)];
   }
}
//cell即将展示的时候调用
- (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];
   }
}


截图1.png
截图2.png

推荐阅读更多精彩内容