我试了一段时间找到了这个问题,但是找不到这个问题的答案。
我的问题是我有一个UICollectionView
,滚动方向是Horizontal
和Paging Enabled
。我的问题是我想保持用户当前页面编号的固定性,因此我创建了一个int
变量,现在想在用户每次向右或向左滑动时将其加减1。我尝试使用scrollView
的委托(delegate)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
但是当用户向右或向左滑动时,它被调用的次数与
UICollectionView
中页面的列数一样多,并且它不会让我知道用户是转到下一页还是上一页。 最佳答案
使用 :
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
CGFloat pageWidth = collectionView.frame.size.width;
float currentPage = collectionView.contentOffset.x / pageWidth;
if (0.0f != fmodf(currentPage, 1.0f))
{
pageControl.currentPage = currentPage + 1;
}
else
{
pageControl.currentPage = currentPage;
}
NSLog(@"Page Number : %ld", (long)pageControl.currentPage);
}
而且,如果您不使用任何pageControl,则
ceil(currentPage)
将是您当前的页码。关于ios - 在UICollectionView中检测页面更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29507675/