2012-06-24 7 views
5

Anstelle der Skalierung, für die ich denke, dass die Pinch-Geste normalerweise verwendet wird, suche ich nur nach, ob die Prise eine Prise vs. Prise war, so dass ich einige Tabellenabschnitte reduzieren oder erweitern kann. Wie würde ich das machen?Wie kann man eine Prise in einer Geste oder eine Geste mit einer Prise erkennen?

+0

Es ist viel besser .velocity zu verwenden, die (natürlich!) Positiv oder negativ ist abhängig davon, welche Art und Weise du gehst. Die Antworten unten sind wackelig. – Fattie

Antwort

7

Nun, das scheint ein einfacher. Die UIPinchGestureRecognizer Klasse hat nur zwei Eigenschaften, scale und velocity. Es scheint logisch, dass eine negative scale eine nach innen gerichtete Quetschung bedeuten würde, eine positive scale eine äußere Prise.

Hinweis: "Negativ" kann irreführend sein. "Kleiner" ist 0.0 < scale < 1.0, "größer" ist scale > 1.0.

+0

Hmm Kneifen gibt mir auch negative Skala? fyi im mit Prise vom Storyboard gezogen, mit Maßstab als 1 und verzögerte Ende überprüft und verzögert beginnen deaktiviert – user1337645

+1

Unmöglich. Ich bezweifle, dass das Kneifen eine negative Skala ergibt. Bitte überprüfen und beschreiben Sie, wie Sie zu diesem Ergebnis kommen. – Mundi

+3

Wenn Sie nach innen drücken, wird eine Skalierung angezeigt, die bei 1,0 beginnt und auf 0,0 abnimmt. Wenn Sie nach außen drücken, wird eine Skalierung angezeigt, die mit 1,0 beginnt und von dort aus zunimmt. –

2

Sie hatten Recht, die Skalierungseigenschaft zu betrachten, aber es wechselt um 1, nicht Null.

 
    - (BOOL) pinchWasOutwards:(UIGestureRecognizer *)gestureRecognizer 
    { 
     return gestureRecognizer.scale > 1; 
    } 
+0

Verwenden Sie einfach .velocity, die viel mehr KISS ist. – Fattie

10

Die "Skala" Eigenschaft ist weniger als 1 für Pinch-Geste in und größer als 1 für Auszwicken. Das passiert bei allen Kniffen mit 2 Fingern.

Was ich auch beobachtet habe, war, dass, wenn ich mit 5 Fingern eingeklemmt habe (was die Abkürzung ist, um nach Hause zu minimieren), der Maßstabswert genau 1,0 - jedes Mal kommt. Aber das wird von keiner mir bekannten Apple-Dokumentation unterstützt.

können Sie experimentieren, was die Werte kommen, indem man einfach ein NSLog in Ihrer Prise Handhabung Wähler setzen

NSLog(@"Scale: %.2f | Velocity: %.2f",pinch.scale,pinch.velocity);