2012-03-02 41 views
0

我在我的應用程序中使用蘋果的scrollview示例代碼PhotoScroller,它使用UIScrollView中的衆多圖像(並通過回收邏輯) 。我在我的應用程序中實現了它,它工作正常。UIScrollView(PhotoScroller)中的網格狀排列

現在我工作的應用程序類似於上面,但與 區別,加載圖像像網格視圖。當我碰巧使用 相同的示例代碼時,除了回收邏輯之外,每件事情都很好。

我認爲我的框架集有一些問題,它不告訴 xcode,可見區域。 請問一下如何設置網格的可見集查看 結構的scrollview?我使用的代碼是,

CGRect visibleBounds = _scrollView.bounds; // CGRect gridElementvisibleBounds = CGRectMake(0,0,212,200); int firstNeededPageIndex = floorf(CGRectGetMinX(visibleBounds) - CGRectGetWidth(visibleBounds)); int lastNeededPageIndex = floorf(((CGRectGetMaxX(visibleBounds)-1) - CGRectGetWidth(visibleBounds)); firstNeededPageIndex = MAX(firstNeededPageIndex,0); lastNeededPageIndex = MIN(lastNeededPageIndex,[self imageCount] - 1);

其中_scrollView是,我使用的UIScrollView實例和 gridElement,我使用是幀大小(0,0,212,200)的。佔用scrollView邊界的網格元素的數量爲 3 x 3(9)。

我不想使用類似tableViews(AQGridView等)的網格,因爲我要加載500多個圖像。 請有人幫我找出我應該糾正的問題 上面的代碼。

回答

0

我幾乎通過使用contentOffset來獲得可見區域來解決問題。 這是一段代碼,說明我做了什麼使它工作。

int firstNeededPageIndex = ((int)_scrollView.contentOffset.y/960) * 9; 
int lastNeededPageIndex = ((int)_scrollView.contentOffset.y/960) * 9 + 17; 

,我通過獲取contentOffset.y/960中的可視區域,並得到了firstNeededPageIndex上面給出。 當滾動視圖滾動時,隱藏頁面的組件包含9個元素,並且逐漸可見的連續頁面(由lastNeededPageIndex獲取)不包含任何組件。 因此,我通過在滾動時將18個對象製作爲可見區域來使其可見。 因此,滾動時可見的對象成爲第17個對象的第0個對象。

結果是每當滾動視圖滾動時,可見區域(通過contentOffSet得到)中的18個組件(0到17)被回收。