设置UIScrollView滚动速度.

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18683985/article/details/85546843

首先,我们公司的轮播图有点BUG.使用UICollectionView重写之后,发现一个问题.

就是.UICollectionView定位需要UICollectionViewFlowLayout类中的下面的方法.

- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity

然而使用这个方法的时候如果pagingEnabled设置为YES,那么系统计算的位置会覆盖你的位置.pagingEnabled为NO的时候.通过上面的方法把位置计算正确的之后.发现.如果拖动的范围比较小.返回中线的速度还比较快.当返回距离比较长的时候.返回的速度就变得十分的慢了.

重点来了,如何在禁用pagingEnabled的情况下使用pagingEnabled的效果

看起来pagingEnabled效果十分的高大上,其实,在自己写框架玩的时候也深刻的感受到,这种BOOL值一般都是依赖了一些已有的属性,那么自然而然的发现pagingEnabled的效果和自己写的效果的不同仅仅在于滚动的速度不同.那么,目标就变成了找寻UICollectionView的滚动速度了.

搜了半天没搜到speed有关的.但是,我找到了decelerationRate

@property(nonatomic)         UIScrollViewDecelerationRate decelerationRate NS_AVAILABLE_IOS(3_0);

这个属性:减速速率

UIKIT_EXTERN const UIScrollViewDecelerationRate UIScrollViewDecelerationRateNormal NS_AVAILABLE_IOS(3_0);
UIKIT_EXTERN const UIScrollViewDecelerationRate UIScrollViewDecelerationRateFast NS_AVAILABLE_IOS(3_0);

一个正常,一个快速,那么我们现在肯定是正常咯.如下设置之后完美解决问题

	self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast;

猜你喜欢

转载自blog.csdn.net/qq_18683985/article/details/85546843