2012-03-02 24 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)被回收。