1

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

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

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

我有两个问题。

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

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

4

1 回答 1

1

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

如何实现一个循环的 UIScrollView?

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

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

美国广播公司

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

如果向右滚动一些 B,则可以看到一些 C。A 可以被重用并在逻辑上移动到 C 之后,所以你有

BCA

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

出租车

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

于 2010-12-08T03:12:28.847 回答