帮助实现“Horizo​​ntal UITableViewController”?

时间:2010-12-08 02:52:15

标签: iphone memory-management uitableview tableviewcell

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

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

现在这效率很低,因为所有幻灯片都被保存在内存中,即使它们在屏幕外也是如此。我怀疑我应该让它的行为更像UITableViewController,重新使用幻灯片并在屏幕外释放幻灯片,并在屏幕上重新创建幻灯片。

我有两个问题。

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

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

1 个答案:

答案 0 :(得分: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

如果您以相反的方式滚动,但反过来。