设置UIScrollView滚动速度.

首先,我们公司的轮播图有点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;

优化

可能有的同学觉得这个Fast速度太快.咱们点进去UIScrollViewDecelerationRate里面去

typedef CGFloat UIScrollViewDecelerationRate NS_TYPED_ENUM;

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

嗯,对它就是一个CGFloat

类型
UIScrollViewDecelerationRateNormal0.998
UIScrollViewDecelerationRateFast0.98999999999999999(0.99)

经过测试.大于1.0的数和1.0没啥区别.越接近1.0,自动滚回的速度越慢.月接近0.0越快.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值