UICollectionView iOS 9 性能

Posted

技术标签:

【中文标题】UICollectionView iOS 9 性能【英文标题】:UICollectionView iOS 9 Performance 【发布时间】:2015-09-23 08:47:59 【问题描述】:

我开发了一个应用程序,它使用 UICollectionView 来显示帖子的提要。该应用程序支持ios7+。我目前正在使用带有 iOS7 的 iPod Touch (2G) 和带有 iOS9 的 iPhone 6 测试该应用程序。我正在使用在 iPhone 6 和 iPod 上滚动收藏视图的相同视图来测试应用程序。我已经看到 iPhone 6 (iOS9) 的 FPS 大幅下降。 iPod 运行完美,滚动也比 iPhone 6 流畅得多。它们之间唯一不同的是 iOS 版本,当然还有硬件。

你怎么了?为了在 iOS 9 上获得更好的性能,我需要做些什么吗?

【问题讨论】:

iPod 2G 是否支持后台应用程序? 【参考方案1】:

请在此处查看我的回答,看看是否对您有帮助:iOS 9 CollectionView slowing down

我认为 >= 或

【讨论】:

我已经更新了应用约束,现在滚动流畅了。我不明白为什么这种约束在 iOS 9 上表现如此糟糕,而在 iOS 7 和 8 上工作得很好......谢谢!!! 约束与滚动速度有什么关系?请按原样和现在一样发布约束代码。我只是必须看到这个。【参考方案2】:

这绝对是你正在做的事情,我敢打赌这是由于你对设计模式的理解失败。为了使用任何 Apple 框架,您必须能够根据您如何将其功能集成到您自己的应用程序中,对它的设计方式做出有根据的猜测。

UIKit 要求开发人员不仅要具备识别他人工作中给定设计模式的能力,还要能够以有意义的方式扩展或集成他们的工作。 UIKit 的开发者是有远见的思想家;他们不仅采用了最好的方法来实现他们的目标,而且还为你做同样的事情。

UIKit 产品不会因版本而减少。您打算以任何方式构建它,如果不是通过增强您的知识,您可以通过简单地复制您想要使用或扩展的 UIKit 部分。它是一个简单的框架——如此基本以至于我很惊讶它不是开源的,除了它为 UI 动画使用专有的“物理”计算这一事实。

这是一个视频,展示了一个集合视图,该集合视图一次生成一个视频中的每一帧,不仅在播放器窗口中,而且在集合视图中,并且用户可以尽可能快地滚动视图:

Using a UICollectionView as a UIControl [Video Skimmer]

<iframe width="853" height="480" src="https://www.youtube.com/embed/eeS8InSe_ag?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>

示例代码可供您免费使用,并且易于遵循。提供它是为了一劳永逸地向每个与 UICollectionView 相关的提问者和他们的回答者证明这是一个教育问题,而不是任何 UIKit 的质量控制。

更具体地说,它显示了一个用作浏览器控件的集合视图。在此演示中,编写了一个示例应用程序,该应用程序在用户的 iPhone 上加载最新的视频,然后通过简单地滑动帧缩略图的集合视图来允许逐帧浏览。

为确保完美平滑滚动,对 CPU 和内存使用影响很小或没有影响(与纯文本集合视图单元格相比),在后台播放的视频和每个单元格中的帧都在 GPU 上呈现。

【讨论】:

以上是关于UICollectionView iOS 9 性能的主要内容,如果未能解决你的问题,请参考以下文章

OC-UICollectionView实现瀑布流

iOS 程序性能优化

UICollectionView 部分标题闪烁问题

提高模糊性能 iOS7/8

UICollectionView 性能 - _updateVisibleCellsNow

UICollectionView 滚动性能不佳