Jak wykonać gesty szczypania na telefonie iPhone? Zdaję sobie sprawę z używania zdarzeń dotykowych na iPhonie, ale jestem bardzo leniwy i nie chcę ponownie wymyślać koła pod kątem czegoś tak rozpowszechnionego jak gesty PINCH ... Kod źródłowy lub linki do nich byłyby pomocne.Jak wykonywać gesty szczypania na iPhonie?
Odpowiedz
Musisz to zaimplementować samodzielnie, używając podstawowej matematyki.
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
To są metody delegatów, które należy zastosować w swojej aplikacji.
Musisz uzyskać odległość między dwoma dotknięciami, a następnie obliczyć zmiany odległości we własnym kodzie.
Matematyczne równanie użyć, aby uzyskać dystans nazywa się dot product
Chcę tylko podkreślić, że równanie używają w cytowanym tutorialu jest nieprawidłowy. Zaktualizowałem go tak, aby zawierał bezwzględną wartość pominiętą w samouczku.
Jest to iloczyn skalarny:
- (CGFloat)distanceBetweenTwoPoints:(CGPoint)fromPoint toPoint:(CGPoint)toPoint
{
float xDist = fromPoint.x - toPoint.x;
float yDist = fromPoint.y - toPoint.y;
float result = sqrt(pow(xDist,2) + pow(yDist,2));
return result;
}
Edit: Popełniłem błąd w mojej poprzedniej odpowiedzi .... to było dawno zrobiłem żadnej z tego rodzaju matematyki.
Jeśli nie wyzerujesz pierwiastka, nie uzyskasz prawdziwej odległości między punktami. Nazywa się to obliczaniem wielkości między dwoma wektorami.
To jest właściwy sposób, aby to zrobić. Jeśli chcesz pominąć sqrt, nie będziesz miał dokładnej odległości między dwoma punktami.
Jeśli nie wyrównasz odpowiedzi, Twój kod będzie działał, ale będzie korzystał z pomiarów znacznie większych niż rzeczywiste wartości. Tak więc w przyszłości, jeśli chcesz uzyskać odległość między dwoma punktami, zwróci to około 90000 zamiast rzeczywistej odległości pikseli, która wynosi 300px.
Ummm ...Nie jestem pewien, ile linku, o który wspomniałeś, przyda się, ale dzięki za odpowiedź przynajmniej ... – RexOnRoids
Bez tego nie możesz obliczyć odległości między dwoma dotknięciami. To jest istotne. –
Thx - Kod źródłowy jest znacznie łatwiejszy do zrozumienia w tym przypadku. Nie byłam gotowa usiąść i usiłować zaabsorbować całą stronę wiki na temat zawiłości "produktu kropkowego" LOL – RexOnRoids
Jeśli szukasz prostego przykładowego gestu szczypania, używam metody opisanej przez Brocka w przykładowej aplikacji I describe here (w drugiej do ostatniej i ostatniej wersji aplikacji na tej stronie). Gesty szczypania służą do skalowania kilku warstw Core Animation w tym przykładzie.
Wszystko, co opisuje, aż do obliczenia odległości, to po prostu twierdzenie Pitagorasa zastosowane pomiędzy dwoma punktami (przy odległościach X i Y jako dwóch ścianach trójkąta prostokątnego).
hmmm ..... wydaje się, że niektórzy ludzie są bardzo zdezorientowani, jak używać podstawowej matematyki. produkt kropkowany jest całkowicie bezpodstawny i tylko myli problemy. pomiędzy dwoma wektorami stosuje się punkt pomiarowy między dwoma wektorami, aby obliczyć kąt między nimi.
Musisz użyć twierdzenia pythagorus. Dot nie ma nic wspólnego ze znalezieniem odległości między punktami - tylko pythagorous!
kropka może być używana do znalezienia odległości między dwoma punktami przez: sqrt (kropka (p2-p1, p2-p1)) – twerdster
Nie ma wątpliwości, że przedstawione tutaj rozwiązania są przestarzałe, na korzyść używania nowej klasy UIPinchGestureRecognizer w systemie iOS 3.2 i nowszych wersjach.
To nie jest tak istotne, o ile istnieje mnóstwo <3,2 urządzenia tam. – Jonny
- 1. Trzy palcowy gest szczypania
- 2. Jak zaimplementować gesty przesuwania na urządzenia mobilne?
- 3. Powiększanie szczypania dla widoku tekstowego
- 4. Lua na iPhonie
- 5. Plik "Untar" na iPhonie
- 6. Czujnik zbliżeniowy na Galaxy S4 (Gesty pneumatyczne)
- 7. Mono na iPhonie?
- 8. Rozcinanie UIImage na iPhonie
- 9. Dziurkowanie TCP na iPhonie
- 10. Android: wykrywanie fling gesty
- 11. Jak wykonywać nieodebrane połączenia?
- 12. Jak automatycznie wstawić miejsce dziesiętne na iPhonie?
- 13. Jak przechowywać dane lokalnie openstreetmap na iPhonie
- 14. Jak przekonwertować NSString na CGPoint w iPhonie?
- 15. Jak zainstalować plik .ipa na moim iPhonie?
- 16. Jak połączyć znak i ciąg na iPhonie?
- 17. Jak przedłużyć gradient klawiatury na iPhonie?
- 18. Rysowanie linii na iPhonie/iPadzie
- 19. Gesty i łańcuch odpowiadający
- 20. Android, jak emulować gesty przesuwania w AVD?
- 21. Zrozumienie zużycia pamięci na iPhonie
- 22. Mieszanie plików dźwiękowych na iPhonie
- 23. Jak dodać gesty przesuwania do komórki UITableView?
- 24. Wykonywanie kodu prologu na iPhonie
- 25. Zapętlenie dźwięku HTML5 na iPhonie
- 26. Podstawowe uwierzytelnianie HTTP na iPhonie
- 27. Rysowanie prostego wykresu na iPhonie
- 28. Synchroniczne Vs Asynchroniczne na iPhonie
- 29. Hiperłącza PDF na iPhonie/iPadzie
- 30. Najlepsze praktyki SQLite na iPhonie
zobacz tę próbkę na powiększeniu zbliżeniowym http://cocoabugs.blogspot.com/2011/03/pinch-zoom-using-uipinchgesturerecogniz.html –