OStack程序员社区-中国程序员成长平台

标题: objective-c - 具有数百个数据点的 UIScrollView 最佳实践 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 18:05
标题: objective-c - 具有数百个数据点的 UIScrollView 最佳实践

Microsoft Outlook 曾经拥有(也许现在仍然如此)Outlook 中发生的所有事件的滚动时间线 View 。我想在我的应用程序中重新创建类似的东西。

我研究了 UIScrollView 的文档,并且知道如何让它按我想要的方式工作。当内容 View 可能很大时,我的问题更适合在 UIScrollView 中呈现数百个项目的最有效方式。

我可以:

我想知道的是:

  1. 从内存和时间的角度来看,呈现所有这些数据点的最有效方式是什么?每个都将作为标签或按钮出现在时间轴上。
  2. 哪种方法更自然地支持捏合和缩放?
  3. 是提前初始化整个内容 View 更好(可能会花费大量时间),还是只在“ View 窗口”附近初始化 View ,然后添加细节作为用户滚动?

谢谢!



Best Answer-推荐答案


您肯定知道的唯一方法是进行一些实验。我意识到这不是一个过于有用的答案,但我至少可以给你一些提示:

众所周知,使用 UIScrollView 有效地显示一屏以上的内容非常困难。在某些情况下,我已经为此苦苦挣扎了好几个星期。这在旧硬件(iPhone 3G/2nd gen iPod 或更早版本)上要糟糕得多,但如果你弄错了,你仍然可以轻松地让现代 iOS 设备爬行。您通常会遇到两个性能问题:

您可能会发现这与缩放非常不匹配:您不知道一屏到底有多少!

如果您最终遇到shouldRasterize 问题,您可能需要直接在CALayer 级别工作。如果这些都没有帮助,大锤方法是使用 CATiledLayer 就像 MKMapView 和其他人一样。这需要您自己完成所有渲染和触摸事件处理,并且通常还会导致您在 map 和 Safari 应用程序中滚动时出现(有点难看的)淡入。

一些额外的提示:

我希望这可以帮助您入门。祝你好运!

关于objective-c - 具有数百个数据点的 UIScrollView 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8012255/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4