我是 XCode 新手,因此需要您的帮助。 我使用 UIPageControl 来显示我的 Collection View 中的哪个单元格现在可见。
问题是获取可见单元格:
我认为在这个方法中
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
我应该更新当前页面。但如何获取当前页面呢?
感谢您的帮助! :-)
最佳答案
页面可以定义为偏移量与大小之间的比率。
- (NSInteger)horizontalPageNumber:(UIScrollView *)scrollView {
CGPoint contentOffset = scrollView.contentOffset;
CGSize viewSize = scrollView.bounds.size;
NSInteger horizontalPage = MAX(0.0, contentOffset.x / viewSize.width);
// Here's how vertical would work...
//NSInteger verticalPage = MAX(0.0, contentOffset.y / viewSize.height);
return horizontalPage;
}
有几种方法可以触发此操作。您可以在每个scrollViewDidScroll 上完成该工作,但这有点过多。更好的方法是在拖动完成并且不再减速时运行它,或者在减速结束时运行它,如下所示:
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
self.page.currentPage = [self horizontalPageNumber:scrollView];
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (!decelerate) self.page.currentPage = [self horizontalPageNumber:scrollView];
}
关于iphone - UIPageControl setCurrentPage - UICollectionView iOS6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15764144/