我试了一段时间找到了这个问题,但是找不到这个问题的答案。
我的问题是我有一个UICollectionView,滚动方向是HorizontalPaging 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/

10-09 08:06