【问题标题】:Help implementing "Horizontal UITableViewController"?帮助实现“水平 UITableViewController”?
【发布时间】:2011-05-21 23:46:39
【问题描述】:

我有一堆“幻灯片”,我试图在 iPad 上显示,一次一个,使用 UIScrollView。 “幻灯片”是 UIViewController 类的各种子类。

我将幻灯片存储在NSUserDefaults 中,由 NSDictionaries 表示。在启动时,我加载 NSDictionaries 的 NSArray 并循环遍历它们,将视图传递给 UIScrollView。

目前这是低效的,因为所有幻灯片都保存在内存中,即使它们离开屏幕也是如此。我怀疑我应该让它的行为更像 UITableViewController,就重用幻灯片和在它们离开屏幕时释放幻灯片并在它们出现在屏幕上时重新创建它们而言。

我有两个问题。

  • 首先,UITableViewController 如何处理单元格交换?在哪里可以找到一些示例代码或算法?

  • 第二,如果幻灯片不是同一类型,我该如何重复使用?

【问题讨论】:

    标签: iphone memory-management uitableview tableviewcell


    【解决方案1】:

    我在这里写了一个关于循环 UIScrollview 的答案:

    How to implement a cyclic UIScrollView?

    如果您使用这种方法,那么您实际上只需要在任何时候加载 3 个视图。

    如果您的视图类型不同,那么您只需在 UIView 子类中实现尽可能多的通用性,并在显示之前执行必要的自定义(设置图像等)。应该可以只创建其中的三个。您正在滚动的那个开始显示,您正在滚动离开的那个被修改以在滚动到视图时显示...

    A B C

    三个视图 - A 和 C 不可见,B 可见。

    如果您将 B 的某些部分向右滚动,则 C 的某些部分是可见的。 A 可以被重用并在逻辑上移动到 C 之后,所以你有

    B C A

    继续向右滚动,改变B并使其在A之后合乎逻辑

    C A B

    如果您以其他方式滚动相同的想法但反向执行。

    【讨论】:

    • 好答案,它实际上让我思考我现在如何实现我的幻灯片与我应该如何......
    猜你喜欢
    • 2020-11-11
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多