如何自定义UITableView的分隔符视图?

时间:2014-01-24 00:12:18

标签: ios objective-c uitableview

我遇到了UITableViewCell分隔符的实现问题。

从屏幕截图中可以看出,在分隔符之前可以看到白色间隙,我认为这是因为我将单元格的bg颜色设置为浅灰色,并且我将分隔符的插入设置为53. < / p>

我的第一次尝试不是使用分隔符,而是试图在我自己的单元格末尾绘制线条。但是,由于在行的选择上行的内容得到更新,并且关于单元的高度的计算存在很多问题。

所以基本上我很难在单元格的末尾画出精确的像素线。

这使我可以选择访问单元格的分隔符视图,该视图目前不知道任何简单的方法,并使用表格的默认背景颜色填补空白。

我的问题是,如何访问分隔符视图

或者

我还有其他选择来实现我想要的吗?

非常感谢。

enter image description here

3 个答案:

答案 0 :(得分:1)

UITableView不提供API来直接访问或修改单元格分隔符视图。但是,它有改变它的颜色,样式等的方法。但是,大多数时候,自定义分隔符的唯一解决方案是自己绘制它,或者更好,将单元格的backgroundView属性设置为带有一条线的简单视图其中的子视图或图层(子视图虽然有一些开销,但您可以灵活地使用自动调整蒙版或自动布局自动进行自动调整)。

e.g。

UIView *backgroundView = [[UIView alloc] initWithFrame:cell.bounds];
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(backgroundView.bounds) - 1, CGRectGetWidth(backgroundView.bounds), 1.0f];

[lineView setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin)];
[backgroundView addSubview:lineView];

cell.backgroundView = backgroundView;

答案 1 :(得分:1)

使用此解决方法:

将UIImageView放在单元格的底部边缘,您可以根据需要设置图像

第1步:根据图像设置分隔线 Set divider Y postion as per your cell

第2步:将分隔符样式设置为无

Select TableView and from Attribute Inspector

答案 2 :(得分:-1)

从iOS 7开始,您可以使用此

cell.separatorInset = UIEdgeInsetsZero;