Jak wykryć gest machnięcia w iPhone SDK?
W mojej aplikacji na iPhone, wymagam, aby rozpoznać gest machnięcia wykonane przez użytkownika w widoku.
Chcę, aby gesty machnięcia były rozpoznawane i wykonywały funkcję machnięcia.
Potrzebuję, aby Widok przesuwał się poziomo i pokazywał inny widok, ponieważ użytkownik wykonuje gest machnięcia.
Co należy zrobić?
Jak to rozpoznać?
Wszelkie wskazówki lub tutoriale będą naprawdę mile widziane.
4 answers
Użyj UISwipeGestureRecognizer
. Niewiele więcej do powiedzenia naprawdę, rozpoznawanie gestów są łatwe. Są WWDC10 filmy na ten temat nawet. Sesja 120 i 121. :)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-25 17:57:38
Jeśli wiesz, jak to działa, ale nadal potrzebujesz szybkiego przykładu, oto jest! (stanie się przydatny przynajmniej dla mnie, kiedy będę potrzebował przykładu Kopiuj-Wklej, nie próbując go zapamiętać)
UISwipeGestureRecognizer *mSwipeUpRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)];
[mSwipeUpRecognizer setDirection:(UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight)];
[[self view] addGestureRecognizer:mSwipeUpRecognizer];
I w .h file add:
<UIGestureRecognizerDelegate>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-08 12:41:52
Istnieje dokumentacja apple i próbki do rozpoznawania machnięcia patrz poniżej link;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-15 14:06:36
Poniższy link przekierowuje Cię do samouczka wideo, który wyjaśnia, jak wykrywać przesunięcia w telefonie iPhone w Objective-C:
UISwipeGestureRecognizer Tutorial (wykrywanie swipes na iPhone)
Przykładowy kod poniżej, aby to osiągnąć w Swift :
Musisz mieć po jednym UISwipeGestureRecognizer
dla każdego kierunku. To trochę dziwne, ponieważ właściwość UISwipeGestureRecognizer.direction
jest maską bitową w stylu opcji, ale każdy rozpoznawacz może obsługiwać tylko jeden kierunek. Możesz wysłać je wszystkie do tego samego opiekuna, jeśli chcesz, i posortować je tam, lub wysłać je do różnych opiekunów. Oto jedna implementacja:
override func viewDidLoad() {
super.viewDidLoad()
var swipeRight = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:")
swipeRight.direction = UISwipeGestureRecognizerDirection.Right
self.view.addGestureRecognizer(swipeRight)
var swipeDown = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:")
swipeDown.direction = UISwipeGestureRecognizerDirection.Down
self.view.addGestureRecognizer(swipeDown)
}
func respondToSwipeGesture(gesture: UIGestureRecognizer) {
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
switch swipeGesture.direction {
case UISwipeGestureRecognizerDirection.Right:
println("Swiped right")
case UISwipeGestureRecognizerDirection.Down:
println("Swiped down")
default:
break
}
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-07 00:21:47