2012-10-04 43 views
2

我写了一个自定义GridView(UIScrollView子类),并决定使用标准UITableViewCells作为单元格,因为它们具有我需要的所有功能。是UITableViewCell的分隔符部分吗?

一切工作正常,但我注意到,有时我有一个单元格顶部的细灰线。
我其实认为UITableView处理单元格的分隔符,他们实际上不属于UITableViewCell,但似乎是我错了。

事实上,我想摆脱他们,但我不知道如何。

有没有人有这方面的经验,或者是唯一的方法来使自定义单元类与UITableViewCell的功能?

以下是截图:
enter image description here

回答

1

经过一番实验,尝试&错误和子视图迭代/检查我可以告诉分隔符肯定是UITableViewCell的一部分。感谢@Valeriy Van。

回答我的第一个问题简单说就是:,分隔符是一个UITableViewCell的 一部分。

但它严格由UITableView处理,如果不是由TableView填充,它是空的。


现在上述图像中的线:

这些分隔符。他们看起来就像那样,真是巧合。

当图形尝试在子像素精确坐标处绘制某些东西时,会发生这种情况。
当可见对象(视图的图层)的坐标和/或大小(框架)位于两个整数值之间并且GL试图正确呈现它时,会发生这种情况。

由于“过度精确”的框架,G1试图插值到整数帧或只是不适当的圆。

因此,就像上图所示,第一行被拉伸或y坐标错误一个像素。

如果您返回单元高度的“过度精确”值,则也会发生在UITableView中。

+1

这让我疯狂。很好的发现。 – Sid

0

tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

编辑:

下面是UITableView.h
线 @property(nonatomic) UITableViewCellSeparatorStyle separatorStyle; // default is UITableViewCellSeparatorStyleSingleLine

的UITableViewCell,UITableView中,德的UITableViewController签署一起工作。而你的问题是你试图单独使用UITableViewCell。从逻辑上讲,单元格分隔符不是单元格的特征,它是表格的特征。这就是为什么separatorStyle是UITableView的属性,而不是UITableViewCell。那么,不同的方法是可能的,苹果选择了这个。查看UITableView.h多少次'separator'子串出现在那里。看看UITableViewCell.h:UITableViewCell引用了UITableView。和UITableViewCell编码足够准确,不会崩溃如果_tableView是零。我认为,如果_tableView是零,单元格应用相同的默认值,并使用默认分隔符绘制自己。

你能做些什么来摆脱你的情况下的分隔符?如果您无法使用UITableView进行设计,则会以某种方式进行欺骗。尝试用你需要的属性来给单元格添加一些愚蠢的tableview。

+0

看着我的眼睛,并诚实地告诉我,你已阅读我的问题。 – yinkou

+0

我相信这是对你的问题的有效答案,那就是你如何摆脱分隔符......这就是你所问的。 – Matt

+0

不是。我明确指出,我没有使用UITableView。 – yinkou