Próbuję zaimplementować okrągły przycisk podobny do regulacji głośności. Obecnie mogę wykryć przeciągnięcia przy pomocy Gesture Recognizer. Jak mogę wykryć okrągły przycisk (zgodnie z ruchem wskazówek zegara i przeciwnie do ruchu wskazówek zegara) na przycisku? Dzięki!Jak wykrywać cykliczny gest za pomocą Gesture Recognizer?
Odpowiedz
Szukasz gestu jednodotykowego (np. Suwaka kołowego) lub gestu dotykowego (jak chwytanie i obracanie pokrętła w rzeczywistym świecie)? Jeśli to drugie, spójrz na UIRotationGestureRecognizer
.
Jeśli to pierwsze, jesteś prawie sam. Z pewnością możesz zaimplementować swoje rozwiązanie jako własny, niestandardowy aparat rozpoznawania gestów: jest to oczekiwane przez firmę Apple i jest tam some documentation to get you started (chociaż nie widziałem tam wielu działających przykładów). Zobacz także How to correctly subclass UIGestureRecognizer.
Jako ogólną wytyczną, że myślę regionu dla gestu kształcie toroidalnym: strefę z centrum C, wewnętrzny promień r1 i zewnętrznym promieniu r2 . Po zejściu użytkownika można obliczyć odległość od c za pomocą twierdzenia Pitagorasa, a kąt ze swoją ulubioną funkcją trygonometryczną. Dzięki temu możesz określić, czy dotknięcie znajduje się w strefie. Podczas przeciągania użytkownika można zaktualizować wartość kontrolną na podstawie kąta. W pewnym momencie albo dotkną, albo przeciągną poza strefę, a to zakończy gest. Proponuję, aby dotknięcie zniknęło dość daleko wewnątrz r1 lub poza r2: palce są niedokładnymi narzędziami.
Czy próbowałeś już pisać swój własny aparat rozpoznawania gestów? W dokumentach znajdują się szczegółowe instrukcje.
Najlepszą metodą byłoby zaimplementowanie Custom Gesture Recognizer. Nie wiem, czy chcesz wykryć dyskretny gest (metoda obsługi zdarzenia byłaby wywoływana po wykryciu pełnego koła) lub ciągły gest (metoda obsługi zdarzeń byłaby wywoływana za każdym razem, gdy przesuwałbyś palcem po okrągłej ścieżce).
Prawdopodobnie użytkownik nie może narysować idealnego koła, a rozwiązanie dostarczone przez @Sixten Otto byłoby dobre.
Jako, że nie udało mi się znaleźć rozwiązania, a dzięki logicznej inspiracji z odpowiedzi @ sixtena, poszedłem i stworzył coś użytecznego, nie jest to punktor kuloodporny, ale wydaje się, że teraz zrobię to, czego potrzebuję.
Proszę ktoś, widelec to, klon to użyj go poprawić, to open source, tu jest mój związek repo:
https://bitbucket.org/danielphillips/dpcirculargesturerecognizer
- 1. Urządzenie Gest Recognizer firmy iPad - opóźniona odpowiedź
- 2. Czy przycisk Wybierz wydarzenie zostanie zastąpiony przez aplikację Gesture Recognizer?
- 3. Dodaj funkcjonalność do standardowego Pan Gesture Recognizer w UIScrollView
- 4. Jak wykrywać gest machnięcia na webview
- 5. Jak wykrywać gest dotykowy w subviewsach?
- 6. gest Rozpoznawanie i przycisk działania
- 7. jak wykrywać kierunek ruchu machnięcia?
- 8. Jak wykrywać orientację urządzenia za pomocą JavaScript?
- 9. Jak wykrywać modyfikacje plików za pomocą TFS?
- 10. Jak używać ReactiveCocoa z Gesture Recognizers
- 11. Gest przesuń w Swift 3
- 12. Jak wykrywać gest ręki w kamerce internetowej przy użyciu javascript?
- 13. Jak wykrywać szczypanie w geście a uszczypnąć gest?
- 14. Jak wykrywać krany na MKPolylines/Overlays jak Maps.app?
- 15. Czy istnieje jakiś priorytetowy warunek między metodami gestów (Pan Gest i Swipe Gesture)?
- 16. Jak wykrywać krawędź warg za pomocą Opencv w systemie iOS?
- 17. Jak wykrywać znaczniki rejestracji na papierze za pomocą OpenCV?
- 18. Jak wykrywać dotknięcie i podwójne dotknięcie jednocześnie za pomocą UITapGestureRecognizer?
- 19. Jak wykrywać wiele beaconów za pomocą biblioteki Android Altbeacon?
- 20. Jak wykrywać zdarzenie click click w przeglądarce za pomocą kątowego?
- 21. Jak wykrywać pozycję przewijania strony za pomocą jQuery
- 22. Ograniczanie ruchomego widoku za pomocą gestu Przesuwanie
- 23. Jak dodać Shake Gesture w Cocos2d CCLayer?
- 24. JAX RS - JSON i XML Błąd referencyjny cykliczny/cykliczny
- 25. Korzystanie android gest na górze przycisków menu
- 26. iOS 7 uinavigationcontroller jak wykrywać machnięcia?
- 27. Jak wykrywać zatrzymanie myszy?
- 28. Gest Recognizers i TableView
- 29. Wykryj gest machnięcia fragmentem
- 30. Wykrywać prędkość procesora/pamięć/szybkość Internetu za pomocą Java?
Gest jednoprzyciskowego (jak okrągłym suwakiem). – ohho
W takim razie Apple nie ma aż tak dużo rozwiązania w puszkach. Jak sugeruje Alexsander Akers, pisanie własnego rozpoznawania może być drogą do zrobienia. Wkrótce dokonam edycji mojej odpowiedzi. –
Bardzo podoba mi się rozwiązanie pączków !! : D –