2013-02-19 6 views
16

Ich versuche, den Bildlauf in einer UICollectionView zu verlangsamen. Alles funktioniert gut und die Entfernung zwischen den Zellen ist in Ordnung, aber es bewegt sich einfach zu schnell.Anpassen von UICollectionView Scrollgeschwindigkeit/Empfindlichkeit

Wie kann ich die Empfindlichkeit oder die Geschwindigkeit des Scroll einstellen?

[Bearbeiten] ich erwähnte vergessen, dass ich schon versucht:

self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast; 

und

self.collectionView.decelerationRate = UIScrollViewDecelerationRateNormal; 

mit keiner signifikanten Änderung der Geschwindigkeit ...

+0

Alle Aktualisierungen zu diesem? – Hemang

Antwort

25

UICollectionView ist eine Unterklasse von UIScrollView , so können Sie die decelerationRate in Ihrer Sammlung anzeigen Controller viewDidLoad, so:

Objective-C:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast; 
}; 

Swift:

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast 
} 
+0

UIScrollViewDecelerationRateFast und UIScrollViewDecelerationRateNormal wurden bereits ohne signifikante Änderung getestet. Gibt es andere Eigenschaften, die ich verwenden kann? – MXV

+0

Mir ist nichts bekannt. Ich habe es gerade in einem meiner eigenen Projekte getestet, und das Setzen des 'decelerationRate' eines 'UICollectionView' auf' UIScrollViewDecelerationRateFast' verlangsamt das Scrollen _significant_. Sind Sie sicher, dass Ihr Verweis auf Ihre CollectionView richtig ist? Wenn Sie Ihre Objekte in IB erstellen, haben Sie überprüft, ob Ihre Steckdosen korrekt eingerichtet sind? – followben

+0

Ja alles verbunden wie es soll. Denkst du, das Layout könnte etwas damit zu tun haben? – MXV

3

Für alle, wie es

self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast 
+0

Mit Swift sollte es eine prägnantere Möglichkeit geben, dies auszudrücken. – ThomasW

0

Für diejenigen, die nicht mit einem UICollectionViewController in SWIFT zu tun, ich war auf der Suche hoch und niedrig für einen Weg, um dies zu arbeiten. Stellt sich heraus, wenn Sie UICollectionView selbst und self.decelerationRate = UIScrollViewDecelerationRateFast in der jemals erforderlichen init(coder aDecoder:) Methode Unterklasse sind, sind Sie gut zu gehen.

Spekulationen über die Ursache dafür ist, dass UICollectionView nicht mag die Verzögerungsrate eingestellt, nachdem das Layout erstellt wurde. Ich kann nicht sicher sein, und ich habe mehr als genug Zeit damit verschwendet. Ich dachte nur, ich würde die Antwort posten.

SDK: iOS 9+ Xcode: 8.3.2 Swift: 3,1

Verwandte Themen