2010-12-08 124 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