在TabBarController中使用时,CollectionView奇怪的滚动

时间:2016-02-24 20:16:43

标签: ios objective-c swift uicollectionview

我在一个TabBarController中使用了一个集合视图,但是使用了smoth-interrupruption的垂直滚动。 我正在为这个项目使用nib文件。

仅当我在TabBarController中使用collectionView时才会发生这种情况。

1 个答案:

答案 0 :(得分:0)

你应该为你的问题提供更多的上下文,但是我发现一个改善collectionview性能的好方法是栅格化单元格,这基本上是将它们缓存为位图图像,这样它们就不会不断渲染。用户正在滚动。您可以使用以下代码执行此操作:

cell.layer.shouldRasterize = YES;
cell.layer.rasterizationScale = [UIScreen mainScreen].scale;

如果这没有帮助,我会检查标签栏中的其他视图控制器是否正在执行以及阻止主线程的任务。如果是,你应该在他们的" viewDidDisappear"中停止这些任务。方法

您可以通过将以下代码放在不同的位置来检查主线程上运行的进程。

NSLog(@"thread: %@", [NSThread currentThread]);

如果你的输出看起来像这样:

thread: <NSThread: 0x15d608a20>{number = 1, name = main}

然后代码在主线程上运行。通常,您希望为与更新UI直接相关的代码保留主线程。您应该将此日志语句放在其他视图控制器中,并在尝试滚动集合视图时查看哪些正在触发,然后这就是导致性能不稳定的原因。