- 大概是从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];
}
}