使用CGFLOAT_MAX隐藏UITableViewCell分隔符

时间:2015-10-14 20:23:07

标签: ios objective-c uitableview

我正在尝试隐藏特定UITableViewCell的分隔符并使用cell.separatorInset = UIEdgeInsetsMake(0.0, CGFLOAT_MAX, 0.0, 0.0);。这会在旧设备上引起非常奇怪的问题,并且在新设备上完美运行。例如,在iPhone 5上,它会使单元格闪烁并变得模糊。将CGFLOAT_MAX更改为5000.0这样的固定数字会使所有问题都消失。知道为什么会这样吗?

2 个答案:

答案 0 :(得分:0)

在iOS 9.1上运行,我在iPad上看到了类似的问题。

在我的情况下,只要屏幕启动(我的手机在初始屏幕上),屏幕就会闪烁;或者我在iPad Air 2上使用Split View时;调整应用程序大小时,调整应用程序大小会导致闪烁。

我有错误报告给Apple,因为我认为我们应该能够使用CGFLOAT_MAX代替神奇的高数来达到同样的效果。事实上,我甚至建议我们应该有一个API来隐藏分隔符;在我自己要求这个之前,我确信很多。

rdar:// 23768136(每当我得到任何消息时,我都会在这里更新)。与此同时,只需使用一个愚蠢的大数字,以确保隐藏分隔符 - 就像5000一样。

答案 1 :(得分:0)

这种做法听起来不明智。你可能最好只是禁用表格的默认分隔符,让你的单元格(减去你想要隐藏的单元格)绘制自己的单元格,或者在-drawRect:或者在顶部或底部添加一个薄视图。每个细胞。

还有解决方案here - 将水平插入设置为单元格宽度的一半,因此分隔符的宽度最终为0pt,但考虑到该文章中列出的更改历史记录,您可以预期最终也会破裂。