2

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

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

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

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

这是一个屏幕截图:
在此处输入图像描述

4

2 回答 2

1

经过一些实验,尝试错误和子视图迭代/检查我可以看出分隔符绝对是UITableViewCell. 感谢@Valeriy Van。

我的第一个问题的答案很简单:的,分隔符是 a 的一部分UITableViewCell

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


现在到上图中的行:

这些不是分隔符。他们看起来就是这样,真是太巧合了。

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

由于“过度精确”的帧,Gl 尝试插入整数帧或只是不正确地舍入。

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

UITableView如果您返回单元格高度的“过度精确”值,这也可能发生。

于 2012-10-05T16:47:01.390 回答
0

tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

编辑:

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

UITableViewCell、UITableView、UITableViewController 旨在协同工作。而您的问题是您尝试单独使用 UITableViewCell 。从逻辑上讲,单元格分隔符不是单元格的特征,而是表格的特征。这就是为什么 separatorStyle 是 UITableView 的属性,而不是 UITableViewCell 的原因。嗯,不同的方法是可能的,苹果选择了这个。查看 UITableView.h 中“分隔符”子字符串出现的次数。查看 UITableViewCell.h:UITableViewCell 引用了 UITableView。如果 _tableView 为 nil,UITableViewCell 的编码足够准确,不会崩溃。我认为,如果 _tableView 为 nil,则单元格应用相同的默认值并使用默认分隔符绘制自身。

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

于 2012-10-04T21:05:54.453 回答