我编写了一个自定义GridView(UIScrollView子类)并决定使用标准UITableViewCells
作为Cells,因为它们具有我需要的所有功能。
一切正常但我注意到有时候细胞顶部有一条细灰线
我实际上认为UITableView
处理单元格的分隔符,它们实际上不属于UITableViewCell
,但似乎我错了。
事实上我想摆脱它们,但我不知道如何。
有没有人有这方面的经验,或者是制作具有UITableViewCell
功能的自定义单元类的唯一方法?
这是截图:
答案 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,请以某种方式作弊。尝试使用您需要的属性来为细胞提供一些愚蠢的桌面视图。