水平在collectionView

时间:2016-06-08 09:27:07

标签: ios objective-c iphone

我需要在水平滚动的同时滚动一个collectionviewitem。而在我的情况下,当我尝试快速滑动,多个索引滚动。当我滚动正常或慢速它工作正常。但是当试图快速滚动它会产生问题。

我不想添加NSTimer以延迟它。如果有人对此有任何疑问,请提出任何答案,但NSTimer除外。

我在scrollViewWillEndDragging中使用的代码

float pageWidth = (self.view.frame.size.width-20)/3 + 10; // width + space

        float currentOffset = scrollView.contentOffset.x;
        float targetOffset = targetContentOffset->x;
        float newTargetOffset = 0;

        if (targetOffset > currentOffset)
            newTargetOffset = ceilf(currentOffset / pageWidth) * pageWidth;
        else
            newTargetOffset = floorf(currentOffset / pageWidth) * pageWidth;

        if (newTargetOffset < 0)
            newTargetOffset = 0;
        else if (newTargetOffset > scrollView.contentSize.width)
            newTargetOffset = scrollView.contentSize.width;

        targetContentOffset->x = currentOffset;

        [scrollView setContentOffset:CGPointMake(newTargetOffset, 0) animated:YES];

        int index = newTargetOffset / pageWidth;

        return index;

enter image description here

1 个答案:

答案 0 :(得分:0)

也许你可以禁用滚动,改为添加滑动手势。