如何确定UIScrollView在分页时是否轻弹到下一页

cha*_*yWu 0 cocoa-touch objective-c uiscrollview ios

我使用UIScrollView来显示大量图像.对于内存问题,我一次只加载三个图像.当用户轻弹到下一个(或前一个)时,我将移动两个图像并加载一个新图像.

首先,我使用scrollViewDidEndDecelerating方法来确定UIScrollView是否更改为下一页,上一页或仍然是当前.但是当你快速连续地轻弹时,scrollViewDidEndDecelerating methord将不会收到任何消息,这意味着不会被调用,而scrollViewDidEndDragging:willDecelerate仍然会收到消息.因为拖动很快,以前的减速被忽略.

因此,我想知道在快速浏览时,我在哪里可以知道视图是否会发生变化以及如何判断变化?在scrollViewDidEndDragging中:willDecelerate methord还是其他一些方法?

tig*_*ero 7

我不会依赖这个scrollViewDidEndDecelerating方法,但是scrollViewDidScroll当前一个/下一个页面的50%以上可见时,它将实现 协议并更新页面:

CGFloat pageWidth = self.scrollView.bounds.size.width;
int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1; 
self.pageControl.currentPage = page;
Run Code Online (Sandbox Code Playgroud)

编辑

网页控制与滚动视图结合起来,这是很好的解释啧啧