gpt4 book ai didi

ios - UICollectionView 性能 - _updateVisibleCellsNow

转载 作者:IT老高 更新时间:2023-10-28 11:33:11 25 4
gpt4 key购买 nike

我正在开发一个自定义 UICollectionViewLayout,它显示按天/周/月组织的单元格。

滚动不流畅,看起来延迟是由于在每个渲染循环上调用 [UICollectionView _updateVisibleCellsNow] 造成的。

< 30 个项目的性能还可以,但大约 100 个或更多,它非常慢。这是 UICollectionView 和自定义布局的限制,还是我没有为 View 提供足够的信息来正确执行?

来源:https://github.com/oskarhagberg/calendarcollection

布局:https://github.com/oskarhagberg/calendarcollection/blob/master/CalendarHeatMap/OHCalendarWeekLayout.m

数据源和委托(delegate):https://github.com/oskarhagberg/calendarcollection/blob/master/CalendarHeatMap/OHCalendarView.m

时间简介: Time profile - Custom layout

更新

也许它是徒劳的?使用简单的 UICollectionViewControllerUICollectionViewFlowLayout 进行一些测试,并给出大致相同数量的单元格/屏幕会产生相似的时间配置文件。

Time profile - Standard flow layout

我觉得它应该能够一次处理约 100 个简单的不透明单元而不会出现抖动。我错了吗?

最佳答案

也不要忘记尝试栅格化单元格的图层:

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

没有它我有 10 fps,有 55 fps !我对 GPU 和合成模型不是很熟悉,所以它到底做了什么我并不完全清楚,但基本上它只在一个位图(而不是每个 subview 一个位图?)中扁平化所有 subview 的渲染。无论如何我不知道它是否有一些缺点,但它的速度要快得多!

关于ios - UICollectionView 性能 - _updateVisibleCellsNow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16336772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com