2015-10-14 65 views
2

我想隐藏特定的分隔符UITableViewCell,并使用cell.separatorInset = UIEdgeInsetsMake(0.0, CGFLOAT_MAX, 0.0, 0.0);。这会在旧设备上造成非常奇怪的问题,并在新设备上完美工作。例如,在iPhone 5上,它会导致单元闪烁并模糊。将CGFLOAT_MAX更改为像5000.0这样的固定号码会使所有问题消失。任何想法为什么发生这种情况使用CGFLOAT_MAX来隐藏UITableViewCell分隔符

+0

你有问题吗? – dan

+0

任何想法为什么会发生这种情况或想法?对不起,如果你不能推断这个问题... – jherg

+0

那么iPhone 5是32位和新设备是不是所以如果我不得不猜测,我会假设有一个问题,使用CGFLOAT_MAX作为一个帧值在32-位设备。 – dan

回答

0

在iOS 9.1上运行时,iPad上出现类似问题。在我的情况下,屏幕在启动时闪烁黑色(我的手机在初始屏幕上)。或者每当我在iPad Air 2上使用拆分视图;调整我的应用程序时导致闪烁,当我的应用程序呈现。

我有bug报告给苹果公司,因为我认为我们应该可以使用CGFLOAT_MAX而不是神奇的高数字来达到同样的效果。事实上,我甚至建议,也许我们应该有一个API来隐藏分隔符;在我自己要求这个之前,我确信很多。

rdar:// 23768136(只要我收到任何消息,我会在这里更新)。与此同时,只需使用一个愚蠢的大数字,肯定会隐藏分隔符 - 类似5000.

0

该方法听起来不明智。您可能最好关闭表格的默认分隔符,并让您的单元格(减去隐藏的单元格)自己绘制它们,或者在其-drawRect:中,或者在每个单元格的顶部或底部添加一个薄视图。

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