Zamiast skalowania, które, jak sądzę, zwykle używam gestu szczypania, staram się wykryć, czy szczypta była szczypią w porównaniu do szczypania, więc mogę zwinąć lub rozwinąć niektóre sekcje tabeli. Jak mam to zrobić?Jak wykrywać szczypanie w geście a uszczypnąć gest?
Odpowiedz
Cóż, wydaje się to łatwe. Klasa UIPinchGestureRecognizer
ma tylko dwie właściwości: , scale
i velocity
. Wydaje się logiczne, że ujemny scale
oznaczałby wewnętrzne szczypnięcie, a pozytywne scale
zewnętrzne szczypanie.
UWAGA: "negatyw" może wprowadzać w błąd. "Mniejsze" to 0.0 < scale < 1.0
, "większy" to scale > 1.0
.
hmm szczypanie daje mi także ujemną skalę? fyi im przy użyciu szczypania przeciągniętego z storyboardu, ze skalą ustawioną na 1 i opóźnionym końcem zaznaczonym i opóźnionym rozpoczyna się odznaczone – user1337645
Niemożliwe. Wątpię, żeby szczypanie dawało ci ujemną skalę. Sprawdź i opisz, jak uzyskać ten wynik. – Mundi
szczypanie do wewnątrz powoduje, że skala zaczyna się od 1,0 i zmniejsza się do 0.0, a szczypanie na zewnątrz powoduje, że skala zaczyna się od 1,0, a następnie zwiększa się. –
Mieliście rację, patrząc na własność wagi, ale zmienia ona wartość 1, a nie zero.
- (BOOL) pinchWasOutwards:(UIGestureRecognizer *)gestureRecognizer { return gestureRecognizer.scale > 1; }
Po prostu użyj .velocity, czyli o wiele więcej KISS. – Fattie
Właściwość "skala" jest mniejsza niż 1 dla gestu zszycia i większa niż 1 dla zsuwania się. Dzieje się tak w przypadku wszystkich uszczypnięć dwoma palcami.
Zauważyłem też, że jeśli uszczypnę się pięcioma palcami (co jest skrótem, aby zminimalizować do domu), wartość skali wynosi dokładnie 1.0 - za każdym razem. Ale nie jest to obsługiwane przez żadną dokumentację Apple, o której wiem.
Można eksperymentować jakie wartości idą po prostu położyć NSLog w selektorze obsługi pinch
NSLog(@"Scale: %.2f | Velocity: %.2f",pinch.scale,pinch.velocity);
- 1. Jak wykrywać gest dotykowy w subviewsach?
- 2. Jak wykrywać gest machnięcia na webview
- 3. Jak wykrywać gest ręki w kamerce internetowej przy użyciu javascript?
- 4. Jak wykrywać cykliczny gest za pomocą Gesture Recognizer?
- 5. Jak symulować szczypanie w symulatorze BlackBerry 10?
- 6. jak wykrywać kierunek ruchu machnięcia?
- 7. Wyłącz szczypanie, aby powiększyć IE10
- 8. iOS 7 uinavigationcontroller jak wykrywać machnięcia?
- 9. Trzy palcowy gest szczypania
- 10. Jak uszczypnąć zoom obraz w powiększeniu obrazu android?
- 11. Jak wykrywać śmiech w sznurku?
- 12. Jak wykrywać środowisko w Salesforce?
- 13. Jak wykrywać zmiany w zmiennej?
- 14. Jak wykrywać zmiany w UIPickerView?
- 15. Jak wywołać gest panoramy w Symulatorach iOS?
- 16. Jak rozpoznać gest machnięcia w UIScrollView
- 17. Gest przesuń w Swift 3
- 18. Jak wykrywać zatrzymanie myszy?
- 19. Jak wykrywać zamknięcie przeglądarki?
- 20. Wykrywanie Pan Gest Koniec
- 21. Jak wykrywać zatrzymanie myszy
- 22. Jak wykrywać puste komórki w tablicy komórek?
- 23. Gest Recognizers i TableView
- 24. Jak wykrywać zamknięcia w kodzie z Roslyn?
- 25. Jak wykrywać ciemne zdjęcia w Androidzie
- 26. Jak wykrywać małe litery w Pythonie?
- 27. Jak wykrywać działający system operacyjny?
- 28. Gest UIButton and Swipe
- 29. Jak zaimplementować gest otwarcia Android ListView
- 30. Wykryj gest machnięcia fragmentem
Jest znacznie lepiej użyć .velocity, które (oczywiście!) Jest dodatnie lub ujemne w zależności od sposobu ty idziesz. Poniższe odpowiedzi są bzdurne. – Fattie