2013-02-19 967 views
16

我想减慢UICollectionView中的滚动。一切都很好,单元之间的距离很好,但它移动得太快了。调整UICollectionView滚动速度/灵敏度

如何调整滚动的灵敏度或速度?

[编辑]我忘了提到,我已经尝试过:

self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast; 

self.collectionView.decelerationRate = UIScrollViewDecelerationRateNormal; 

随着速度没有显著变化...

+0

对此有何更新? – Hemang 2016-03-22 06:29:26

回答

25

UICollectionViewUIScrollView一个子类,因此您可以在您的收藏视图控制器的viewDidLoad中调整decelerationRate,如下所示:

的Objective-C:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast; 
}; 

斯威夫特:

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast 
} 
+0

已经尝试了UIScrollViewDecelerationRateFast和UIScrollViewDecelerationRateNormal,但没有发生重大变化。我还可以使用其他属性吗? – MXV 2013-02-19 01:28:16

+0

我不知道任何。我刚刚在我自己的项目中进行了测试,并且将“UICollectionView”的“decelerationRate”设置为“UIScrollViewDecelerationRateFast”,从而减慢了_significantly_的滚动速度。你确定你对你的collectionView的引用是正确的吗?如果您使用IB创建对象,您是否检查过您的网点设置是否正确? – followben 2013-02-19 01:40:31

+0

是的,所有连接它应该如何。你认为布局可能与它有关吗? – MXV 2013-02-19 01:53:26

3

对于任何人都希望如何做到这一点的SWIFT

self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast 
+0

随着Swift应该有一个更简洁的方式来表达这一点。 – ThomasW 2016-04-07 10:08:59

0

对于那些不使用UICollectionViewController,我正在寻找高低的方式来完成这项工作。原来,如果你自己划分UICollectionView,并且在以前需要的init(coder aDecoder:)方法中设置self.decelerationRate = UIScrollViewDecelerationRateFast,那么你很好。

对此原因的猜测是UICollectionView不喜欢在布局创建后调整减速率。我无法确定,而且我浪费了足够的时间。只是觉得我会发布答案。

SDK:的iOS 9+ 的Xcode: 8.3.2 斯威夫特: 3.1