UITableViewCell的分隔符是否是一部分?

时间:2012-10-04 20:44:29

标签: ios uitableview

我编写了一个自定义GridView(UIScrollView子类)并决定使用标准UITableViewCells作为Cells,因为它们具有我需要的所有功能。

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

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

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

这是截图:
enter image description here

2 个答案:

答案 0 :(得分:1)

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

  

我的第一个问题的答案只是:,分隔符是   UITableViewCell的一部分。

但它由UITableView严格处理,如果没有由TableView填充,则为空。


现在到上图中的行:

这些不是分隔符。他们看起来就是这样,这是一个该死的巧合。

当Graphics尝试以亚像素精确坐标绘制某些东西时,就会发生这种情况 当可见对象(视图层)的坐标和/或大小(帧)在两个整数值之间并且GL尝试正确渲染它时,会发生这种情况。

由于“过度精确”帧,G1尝试插入整数帧或者不正确地舍入。

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

如果您为单元格高度返回“过度精确”值,也会在UITableView中发生这种情况。

答案 1 :(得分:0)

tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

<强>编辑:

以下是UITableView.h的一行 @property(nonatomic) UITableViewCellSeparatorStyle separatorStyle; // default is UITableViewCellSeparatorStyleSingleLine

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

在你的情况下你能做些什么来摆脱分隔符?如果您不能以设计的方式使用UITableView,请以某种方式作弊。尝试使用您需要的属性来为细胞提供一些愚蠢的桌面视图。