UITableView 去掉分割线
2017-03-14 本文已影响2157人
b470b9fc7145
前言
最近项目中有很多地方要去除 cell 的分割线,在这里总结下:
- 关于分割线最好方式是不要设置分割线,然后在自定义cell 里面控制分割线的显示隐藏.
- 用系统的分割线,然后将设置
separatorInset
,让其超出屏幕,达到隐藏的效果.
代码
- 方法一: 设置一开始就将分割线设置为
clearColor
,然后根据需要加分割线
- 在
viewDidLoad
设置为clearColor或UITableViewCellSeparatorStyleNone
类型
self.tableView.separatorColor = [UIColor clearColor];
//或者
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
- 在
cellForRowAtIndexPath
中
if(indexPath.row != self.newCarArray.count-1){
UIImageView *line = [[UIImageView alloc] initWithFrame:CGRectMake(0, 44, 320, 2)];
line.backgroundColor = [UIColor redColor];
[cell addSubview:line];
}
- 方法二:
- ios7.0多了
separatorInset
这个属性,我们可以根据这个属性让分割线超出屏幕,达到隐藏的效果.
cell.separatorInset = UIEdgeInsetsMake(0.f, cell.bounds.size.width, 0.f, 0.f);
- 对于section 的分割线,貌似
separatorInset
不起作用;通过视图查看,发现 cell 的分割线名字叫_UITableViewCellSeparatorView
,所有 view 应该有addSubView
方法,我们来重写addSubView
来阻止分割线添加到 cell 中
- (void)addSubview:(UIView *)view
{
//如果是_UITableViewCellSeparatorView就不让添加
if (![view isKindOfClass:[NSClassFromString(@"_UITableViewCellSeparatorView") class]] && view)
{
[super addSubview:view];
}
}
分割线的类名
去除cell分割线对比图
参考文档