我使用apple的scrollview示例代码PhotoScroller为我的应用程序使用大量图像(并通过回收逻辑) 在UIScrollView中。我在我的应用程序中实现了它,它工作正常。
现在我正在使用类似于上面的应用程序,但是使用了 区别,在网格中加载图像视图。当我碰巧使用的时候 相同的示例代码,除了回收逻辑外,每件事都可以正常工作。
我认为我的框架设置有一些问题,但是没有说明 xcode,可见区域。 请一些temme如何设置网格视图的可见集 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 :(得分: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个对象渲染到可见区域来使其可见。 因此,滚动时可见的对象成为第0个对象到第17个对象。
结果是每当滚动视图滚动时,可见区域中的18个组件(0到17)(通过contentOffSet)被回收。