您的位置:首页 > 产品设计 > UI/UE

如何有效去掉分割线(UITableViewCellSeparatorView),并或控制单条分割线

2016-03-09 13:31 519 查看

起因:

新项目中,有的cell要分割线,有的cell不要分隔线,又有的cell分割线拒里前端15pix。搞得我也真是醉了,如果用自定义分割线的话也不好处理。然后我看了一下UITableviewCell中view的分级,如下图:



在UITableviewCell中,
UITableViewCellContentView
_UITableViewCellSeparatorView
这两种视图作为子视图存在,并且
_UITableViewCellSeparatorView
作为私有变量。

期间的解决方案:

我曾经尝试在view加载完成,设置视图数据的时候,for循环拿到分割线(_UITableViewCellSeparatorView),但是结果并不理想,要么是只能拿到一条,要么是一条也拿不到。

下面正题来了:

我后来突发奇想,能不能再view加载之前做处理,至少UITableviewCell的-[addSubView:]的方法我们还是可以重载的。然后结果如下(嘿嘿嘿):

- (void)addSubview:(UIView *)view
{
if (![view isKindOfClass:[NSClassFromString(@"_UITableViewCellSeparatorView") class]] && view)
[super addSubview:view];
}




怎么样,看没看到终端里
view
的类型,就是之前说的分割线的视图。

总结

像上面的代码,我们的要求是要求某个cell不要分割线,所以在加载的时候,系统给UITableViewCell添加subview的时候,直接屏蔽掉分隔线即可。其他情况还可以另行操作,比如说修改某条分割线的颜色或是修改某条分割线的左侧距离(别跟我说系统的,系统的改一条全部都会变)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uitableviewcell