2013-02-19 14 views
16

Próbuję zwolnić przewijanie w UICollectionView. Wszystko działa świetnie, a odległość między komórkami jest w porządku, ale po prostu porusza się zbyt szybko.Regulacja UICollectionView szybkość przewijania/czułość

Jak mogę ustawić czułość lub szybkość przewijania?

[Edytuj] Zapomniałam wspomnieć, że ja już próbowałem:

self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast; 

i

self.collectionView.decelerationRate = UIScrollViewDecelerationRateNormal; 

bez znaczącej zmiany prędkości ...

+0

Wszelkie aktualizacje w tej sprawie? – Hemang

Odpowiedz

25

UICollectionView jest podklasą UIScrollView , więc możesz dostosować decelerationRate w swoim kontrolerze widoku kolekcji viewDidLoad, tak jak:

Objective-C:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast; 
}; 

Swift:

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast 
} 
+0

Próbowano już opcji UIScrollViewDecelerationRateFast i UIScrollViewDecelerationRateNormal bez znaczących zmian. Czy mogę korzystać z innych właściwości? – MXV

+0

Nie jestem tego świadomy. Właśnie przetestowałem to w jednym z moich własnych projektów, a ustawienie 'decelerationRate' z' UICollectionView' na 'UIScrollViewDecelerationRateFast' spowolni przewijanie _niewielkie_. Czy na pewno twoje odniesienie do kolekcji collection jest poprawne? Jeśli tworzysz swoje obiekty w IB, czy sprawdziłeś, czy twoje placówki są poprawnie skonfigurowane? – followben

+0

Tak, wszystkie podłączone, jak powinno. Czy uważasz, że układ może mieć z tym coś wspólnego? – MXV

3

Dla każdego, kto szuka sposobu, aby to zrobić w systemie SWIFT

self.collectionView.decelerationRate = UIScrollViewDecelerationRateFast 
+0

W przypadku Swiftu powinien istnieć bardziej zwięzły sposób wyrażenia tego. – ThomasW

0

Dla tych, którzy nie stosując UICollectionViewController, szukałem wysoki i niska dla sposobu, aby to zadziałało. Okazuje się, że podklasa UICollectionView sama w sobie, i ustawić self.decelerationRate = UIScrollViewDecelerationRateFast w zawsze wymaganej metodzie init(coder aDecoder:), jesteś dobry, aby przejść.

Przypuszcza się, że UICollectionView nie lubi regulować szybkości zwalniania po utworzeniu układu. Nie mogę być tego pewien i zmarnowałem na to więcej czasu. Pomyślałem tylko, że odpowiem.

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

Powiązane problemy