gpt4 book ai didi

iphone - UIPageControl setCurrentPage - UICollectionView iOS6

转载 作者:行者123 更新时间:2023-12-03 19:05:19 26 4
gpt4 key购买 nike

我是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com