代码之家  ›  专栏  ›  技术社区  ›  yinkou

分隔符是UITableViewCell的一部分吗?

  •  2
  • yinkou  · 技术社区  · 12 年前

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

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

    事实上,我想摆脱他们,但我不知道怎么做。

    有人对此有经验吗?或者这是制作具有 UITableView单元格 ?

    这是一张截图:
    enter image description here

    2 回复  |  直到 11 年前
        1
  •  1
  •   yinkou    12 年前

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

    我的第一个问题的答案很简单: 是的 ,分离器为 的一部分 UITableView单元格

    但它是由 UITableView 如果它不是由TableView填充的,则为空。


    现在看上图中的线条:

    这些是 分离器。他们看起来就是那样,真是巧合。

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

    由于“过精确”帧,Gl试图插值到整数帧,或者只是没有正确舍入。

    因此,就像上面的图片一样,可能会发生第一条线被拉伸或y坐标错误一个像素的情况。

    这种情况也可能发生在 UI表格视图 如果您返回单元格高度的“过精确”值。

        2
  •  0
  •   Valeriy Van    12 年前

    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为nil,那个么cell应用相同的默认值,并使用默认分隔符绘制自己。

    在这种情况下,你能做些什么来去除分离器?若你们不能按照设计的方式使用UITableView,那个就用某种方式作弊。尝试为单元格提供一些包含所需属性的哑表视图。