滚动时,UICollectionView在单元格之间闪烁细长的“透视”线条

时间:2015-02-12 23:45:17

标签: ios objective-c interface-builder

我有一个UICollectionView,其中的单元格中填充了背景图像。集合视图的行间距= 0。

这在iOS 6.1上运行得非常好,但是当在带有iOS 8.1.3的iPhone 6上进行测试时,我看到在收集视图加载的单元格之间自发出现的“透视”细线,然后它们在滚动时跳转

那么,我该如何摆脱这些界限?

4 个答案:

答案 0 :(得分:4)

我找到了一个解决方案:确保所有单元格都有"剪辑子视图"未选中即可。我想这肯定是一个错误,因为解决方案没有意义,但它解决了问题。

答案 1 :(得分:1)

编辑* - 这实际上是由应用的部署目标设置为iOS7引起的。当我切换到ios8时,问题就消失了。

听起来您需要更新应用以正确支持iPhone 6/6 +屏幕尺寸。我的一个应用程序遇到了这个问题。

您需要转到项目设置并设置启动屏幕文件,以便它知道在iphone 6/6 +上以实际尺寸显示您的应用程序;否则,它只会显示人们在iPhone 5s上看到的内容的缩放视图。

我假设发生这种情况是因为从iphone5到6/6 +的缩放不完全是1:1像素比。例如,由于缩放不完美,y:50处的线可能是1像素高,但是y:51处可能是2像素高,滚动时会产生明显的闪烁。

答案 2 :(得分:1)

我遇到了同样的问题,但它也发生在带有iOS7的iPhone 4上(不仅仅是iPhone 6和iOS8.1)。 "透视"在我的节标题和单元格之间出现了一些行,其中一些是永久的,其他的只是在我滚动视图时闪烁或消失。

我可以解决它扩展我的节标题和单元格的背景两个像素(在底部)并设置两个视图不剪辑其子视图,正如Lukas Kalinski建议的那样。单独禁用剪辑并不起作用。

这对我有用,但它有点像黑客。不确定为什么iOS会出现这种行为。我觉得我们仍然缺少一些东西。

我没有尝试建议的答案,因为我需要支持iOS6 +而且我无法停止使用iPhone 6缩放模式。

答案 3 :(得分:0)

检查集合视图的宽度和高度是否是单元格宽度和高度的精确倍数。