2012-01-09 10 views
7

Pracuję nad aplikacją dla iPhone'a i chcę wykryć różne kształty, gdy moje palce poruszają się po powierzchni iPhone'a. Czy ktoś może mi pomóc, jak mogę wykryć różne kształty geometryczne za pomocą ruchu palca lub gestu w iPhone SDK.iPhone rozpoznaje różne kształty za pomocą ruchu palca

+1

To byłby przypadek dla niestandardowych implementacji UIGestureRecognizer. Przeczytaj odniesienia i ewentualnie obejrzyj film z sesji WWDC2010 o rozpoznawaniu gestów. – Till

Odpowiedz

4

Możesz to zrobić, ale nie jest to łatwe zadanie. iPhone SDK zapewnia klasę UIGestureRecognizer, możesz utworzyć podklasę, która UIGestureRecognizer rozpoznaje charakterystyczny gest lub postać (w twoim przypadku).

Ale jest też inne podejście. Jeden z nich opisany przez Brit Gardner w his blog. Podstawą tego podejścia jest N-Dollar Recognizer oparty na JavaScript. Ten facet wykonał dobrą robotę i teraz możesz użyć biblioteki MultistrokeGestureRecognizer-iOS do wykrywania symboli i kształtów. Oczywiście ta biblioteka nie jest idealna i używa specyficznego sposobu (takiego jak JSON) do rozpoznawania dotyku, ale jest to lepsze niż nic.

Dzięki, mam nadzieję, że ktoś pomógł.

+0

Dzięki berylium, ale nie mogę znaleźć sposobu, aby go wdrożyć. W takim razie, proszę, zasugeruj mi o realizacji. – Jane

2

Istnieje przykładowy niestandardowy program UIGestureRecognizer wbudowany w dokumentację SDK systemu iOS, który recognizes a checkmark gesture here, w szczególności w sekcji "Tworzenie niestandardowych narzędzi do rozpoznawania gestów" (nie można znaleźć łatwego sposobu bezpośredniego łączenia sekcji). Używając tego jako szablonu, powinieneś być w stanie napisać własny rozpoznawacz gestów, aby poprawnie rozpoznać swój gest.

Część, którą należy podać samemu, to kod, który definiuje dla urządzenia, co dokładnie oznacza jego konkretny kształt.

Nawiasem mówiąc, jestem również w trakcie pisania własnego niestandardowego UIGestureRecognizer jako przykładu rozpoznawania ciągłego gestu, w odróżnieniu od dyskretnego rozpoznawania gestów, ponieważ doceniłbym to wcześniej.

It is available on Github.

Powiązane problemy