gpt4 book ai didi

ios - 手动滚动到包含许多 subview 的页面时,带有 UIPageViewControllerTransitionStyleScroll 的 UIPageViewController 滞后

转载 作者:行者123 更新时间:2023-11-29 12:37:38 25 4
gpt4 key购买 nike

我正在使用 UIPageViewController 在一系列页面上显示与日历相关的内容。对于月历和年历页面,我使用的是 UICollectionViews,其单元格包含带有日期编号的 UILabel。年页面使用 UILabel 表示一年中的每一天,因此有 365+ 个 subview 。

我发现当我手动从其他页面滚动到月页面时,性能是可以接受的,但是滚动到年页面在用户开始滚动到它之间有很大的滞后(这是当 viewControllerBeforeViewController: 是调用),以及页面实际显示的时间。该页面在滚动时也不稳定,并且几乎不像其他页面(通常包含表格 View )那样响应。

我的问题是我无法为 UIPageViewController 提供用于缓存的顺序 View Controller 数组,因为我经常需要以编程方式从一个页面跳转到另一个页面(这意味着我只是使用单个 View 设置 UIPageViewController Controller 在任何给定时间,使用此答案中的解决方案:https://stackoverflow.com/a/17330606/1370967)。因此,我依靠 viewControllerBeforeViewController 和 viewControllerBeforeViewController 在用户手动滚动时加载页面。 (如果我的理解不正确,请告诉我)。

所以,我想知道如何提高月和年页面的加载和滚动性能。

最佳答案

尝试为您的 UIPageViewController 的内容 View 打印 View 层次结构。当您通过 viewControllerBeforeViewControllerviewControllerAfterViewController 为它提供 View Controller 时,它基本上会有一个包含三页内容的 ScrollView (一页用于上一页,一页用于下一页,一页用于当前页)。

如果您的 View 层次结构包含超过 200 个 View (根据您的描述,我认为您的 subview 总数将在 500-600 左右),我强烈建议以不同的方式重新设计它。使用这种树您将无法获得可接受的性能。

如果您需要适应设备旋转,除了在页面之间滚动之外,您也会遇到类似的问题。基本上对如此大量的 subview 进行布局是一项复杂的任务,需要时间。

关于ios - 手动滚动到包含许多 subview 的页面时,带有 UIPageViewControllerTransitionStyleScroll 的 UIPageViewController 滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859596/

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