2012-07-09 20 views
2

我正在實現一個UIScrollView,其行爲大部分類似於一個UITableView,稍微高級一點..但大多數使用的API是相同的簽名.. cellForRowAtIndexPath ..等人之前開始攻擊爲什麼不使用UITableView,讓我說我不能。原因相當複雜,但這是一個決定。在UIScrollView上滾動時調用重載數據

的問題是,現在我實現無限滾動,基本上當我向下滾動,我在全或contentHeight的65%,我做一個異步請求傳遞給後臺獲取更多的數據,並將其添加到數據源和然後調用reloadData。問題是如果我在用戶滾動時調用reloadData,它不會提供非常流暢的滾動體驗。那麼解決這個問題的最好方法是什麼?另外我注意到,reloadData基本上刷新整個表視圖(在這種情況下,我的滾動視圖)。在我的表格視圖單元格中,我將UIImage動畫化爲淡入。因此,當reloadData被調用時,已經呈現的圖像再次被淡入,這有點煩人。 我如何避免這樣的事情?

任何提示和技巧?

+0

爲什麼你會重複Apple在設計自己的'UITableView'方面的努力? 'UITableView'類繼承自'UIScrollView',所以無論你如何處理滾動視圖,你都可以使用'UITableView'。 – dasblinkenlight 2012-07-09 15:50:39

+0

我正在做類似於iOS 6中的UICollectionView的smtg,並且我支持iOS 5,因此我無法使用UITableView。這是我現在可以提出的最短的答案爲什麼我不使用UITableView – xonegirlz 2012-07-09 18:46:53

回答

0

如果不知道爲什麼需要創建類似於tableview的自定義視圖,則很難回答。如果您有開發者帳戶,則可能需要根據tableview檢查新的iOS 6視圖。不知道我是否可以更多地談論它,因爲它是在NDA下。

對於UIImage衰落,如何顯示每個UIImage的標記,然後在重新加載數據或調用淡化語句時進行檢查。只褪色未標記爲已經呈現的圖像?

+0

我也想到了,但這似乎有點hacky – xonegirlz 2012-07-09 18:46:17

+0

哈克?無論如何,你還是要重新創建一個tableview;) – jarryd 2012-07-09 22:00:32

0

在新的iOS 6.0中,有新的控制器調用UIContainer視圖,它與UITableview類似,但我們也可以使用它來設置多個列。

該控制器的委託方法與UITableview中的委託方法幾乎相同,如果您有類似需求,則可以使用該控制器。

+0

iOS 6仍然處於NDA之下。 – jarryd 2012-07-09 22:01:40

3

如果您仍在處理此問題,請查看PSTCollectionView。它的工作方式與UICollection視圖完全相同,但支持iOS 4.3的倒退。

相關問題