2013-03-19 23 views
5

Ich habe eine UICollectionView mit einigen Zellen gefüllt, und ich implementierte die Methode - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath Dies funktioniert wie ein Charme, aber es funktioniert nicht, während es scrollt. Es ist ein Problem, da das Scrollen sehr empfindlich ist, und wenn ich also eine Zelle drücken und die Methode aufrufen will, scrolle ich ohne Ergebnis.UICollectionView reagiert beim Scrollen?

Ich frage mich also, wie dies zu begegnen und kam mit dieser:

  • Kann ich einfach die Methode festlegen zu reagieren, während es Scrollen ist?
  • Wenn nicht - Kann ich es einfach so scrollen NUR passieren, wenn Sie zum Beispiel 2 Finger verwenden? um die 2 Aktionen mehr zu trennen.

Dank auf Voraus

Antwort

6

Die Auswahl eines UICollectionViewCell passiert, wenn Sie es tippen. Ein Wasserhahn sollte kurz und an einer Stelle sein. Wenn Sie stattdessen blättern, tippen Sie wahrscheinlich nicht richtig. Wenn dies der Fall ist, würde dies auch passieren, wenn Sie integrierte Apps wie Mail verwenden.

Die UICollectionView verwendet eine UITapGestureRecognizer, um die Auswahl von Zellen zu erkennen. Dieser Gestenerkenner erlaubt keine spezifischen Einstellungen, die Ihnen in diesem Fall helfen könnten.

Sie könnten die UIPanGestureRecognizer ändern, um 2 Finger zu benötigen, aber Sie sollten wirklich darüber nachdenken, wenn das ist, was Sie wollen. Sie sollten es besser so verwenden, wie Apple es verwendet, die Benutzer sind daran gewöhnt.

Das heißt, hier ist der Dokumentationsseite Geste Unterstützung Sammlung Ansicht des: http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/IncorporatingGestureSupport/IncorporatingGestureSupport.html

Sie könnte dies verwenden, um die minimumNumberOfTouches Eigenschaft des intern UIPanGestureRecognizer zu ändern. Aber ich glaube nicht, dass du das solltest.

Verwandte Themen