2010-12-08 109 views
1

我有一堆“幻灯片”,我试图在iPad上显示,一次一个,使用UIScrollView。 “幻灯片”是UIViewController类的各种子类。帮助实现“Horizo​​ntal UITableViewController”?

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

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

我有两个问题。

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

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

回答

1

我写了一个回答关于循环的UIScrollView这里:

How to implement a cyclic UIScrollView?

如果你使用这种方法,那么你只有真正需要随时加载3次。

如果您的视图不是全部相同的类型,那么您只需要尽可能多地实现UIView子类的通用性,并在显示之前执行必要的定制(设置图像等)。应该可以只创建其中的三个。您正在滚动朝向一个开始被显示时,你正在滚动从被修改,因为它滚动到视图中显示所述一...

ABC

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

如果您向右滚动某个B,则某些C可见。 A可重复使用,在逻辑上移动以跟随ç所以你必须

BCA

请向右滚动,改变B和A

CAB后,使其在逻辑上

如果您在滚动其他方式相同的想法,但做反向。

+0

好的答案,它实际上让我思考如何实现我的幻灯片,而不是我应该如何...... – Moshe 2010-12-08 04:44:48