分隔符是 UITableViewCell 的一部分吗?
Posted
技术标签:
【中文标题】分隔符是 UITableViewCell 的一部分吗?【英文标题】:Is the separator part of a UITableViewCell? 【发布时间】:2012-10-04 20:44:29 【问题描述】:我编写了一个自定义 GridView(UIScrollView 子类)并决定使用标准的UITableViewCells
作为单元格,因为它们具有我需要的所有功能。
一切正常,但我注意到有时我在单元格顶部有一条细灰线。
我实际上认为UITableView
处理单元格的分隔符,它们实际上不属于UITableViewCell
,但似乎我错了。
其实我想摆脱它们,但我不知道怎么做。
有没有人有这方面的经验或者是制作具有UITableViewCell
功能的自定义单元类的唯一方法?
截图如下:
【问题讨论】:
【参考方案1】:经过一些实验,尝试错误和子视图迭代/检查我可以看出分隔符绝对是UITableViewCell
的一部分。感谢@Valeriy Van。
我的第一个问题的答案很简单:YES,分隔符是
UITableViewCell
的一部分。
但由UITableView
严格处理,如果不被TableView填充则为空。
现在到上图中的行:
这些是不是分隔符。他们看起来就是这样,真是太巧合了。
当图形试图在亚像素精确坐标处绘制某些东西时会发生这种情况。 当可见对象(视图层)的坐标和/或大小(框架)在两个整数值之间并且 GL 试图正确渲染它时,就会发生这种情况。
由于“过度精确”的帧,Gl 尝试插入整数帧或只是不正确地舍入。
因此可能会发生,如上图所示,第一行被拉伸或 y 坐标错误一个像素。
如果您返回单元格高度的“过度精确”值,UITableView
也可能发生这种情况。
【讨论】:
这让我发疯了。很好的发现。【参考方案2】: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,请以某种方式作弊。尝试用一些你需要的属性为单元格提供一些愚蠢的 tableview。
【讨论】:
看着我的眼睛,诚实地告诉我你已经阅读了我的问题。 我相信这是对您问题的有效答案,这就是您摆脱分隔符的方式...这就是您要问的。 不是。我明确表示,我没有使用 UITableView。 @yinkou,尽管你不太礼貌,但我会回答你的问题。 UITableViewCell、UITableView、UITableViewController 旨在协同工作。而您的问题是您尝试单独使用 UITableViewCell 。从逻辑上讲,单元格分隔符不是单元格的特性,而是表格的特性。这就是为什么 separatorStyle 是 UITable 视图的属性。查看 UITableView.h 以了解那里出现了多少个 tymes 'separator' 子字符串。查看 UITableViewCell.h:UITableViewCell 引用了 UITableView。如果 _tableView 为 nil,UITableViewCell 的编码足够准确,不会崩溃。 对不起 Valeriy,我不想无礼。但在我看来,你是一个不礼貌的人。因为在我看来,您甚至在阅读并理解实际问题之前就已尝试回答该问题。但没关系。以上是关于分隔符是 UITableViewCell 的一部分吗?的主要内容,如果未能解决你的问题,请参考以下文章