UISwipeGestureRecognizer nicht funktioniert

Ich habe eine UIView innerhalb eines UIScrollView, beide erstellt mit IB. Die UIView scrollt horizontal im inneren der UIScrollView. Ich will erkennen, Links und rechts 2-finger-swipes.

Kreditaufnahme aus der Beispiel-code, den ich gefunden in SmpleGestureRecognizers, ich habe den folgenden code in die viewDidLoad Methode der UIScrollView ist ViewController...

UIGestureRecognizer *recognizer;
UISwipeGestureRecognizer *swipeRightRecognizer, *swipeLeftRecognizer;

recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
swipeRightRecognizer = (UISwipeGestureRecognizer *)recognizer;
swipeRightRecognizer.numberOfTouchesRequired = 2;
[self.view addGestureRecognizer:swipeRightRecognizer];
[recognizer release];

recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
swipeLeftRecognizer = (UISwipeGestureRecognizer *)recognizer;
swipeLeftRecognizer.numberOfTouchesRequired = 2;
swipeLeftRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeLeftRecognizer];
[recognizer release];

Habe ich in der viewcontroller.h. und haben folgende delegate-Methode...

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
   return YES;
}

Ich gehe davon aus, dass dies eine gültige gestureRecognizer delegate-Methode, aber ich kann nicht finden jede Bezugnahme auf Sie in der Dokumentation.

Ich bekomme keine Fehler aber es passiert nichts, wenn ich eine 2 finger-streichen. Die delegate-Methode nicht aufgerufen wird, und weder meine action Methode. Ich habe versucht, das entfernen der numbeOfTouchesRequired nennen, um zu sehen, ob es funktionieren könnte mit einer einzigen Fingerbewegung ohne Erfolg.

Bin ich das hinzufügen der gestureRecognizers, um die richtige Sicht? Ich habe versucht, indem es der UIView, die UIScrollView so gut wie von selbst.Blick.superView.

Den Beispiel-code läuft Super. Der einzige Unterschied, den ich sehen kann, zwischen meine Umsetzung von dem code und dem Beispiel-code ist die Tatsache, dass ich IB zu erstellen, die Ansichten und den Beispielcode nicht. Ich vermute, dass etwas verbraucht und die swipe-Geste, bevor er meine Merkmale.

Was mache ich falsch.

Dank,

John

  • eine Sache, die Sie daran erinnern gestik-Erkennung funktioniert erst ab os 3.2. Es ist besser, verwenden Sie berührt, begann die Methode zu verwenden, statt wischen-Geste
  • Danke, ich denke, das ist die route, die ich nehmen werde.
  • Warten auf iOS 5 SDK. UiSwipeGestures sind integriert in IB in xcode 4.2 und die können Sie ganz einfach verbinden Aktionen für gesten! Das macht es viel einfacher!
InformationsquelleAutor user278859 | 2010-12-10
Schreibe einen Kommentar