2016-05-31 18 views
9

Wiem, że możesz wykryć dotknięcia za pomocą dotknięćBegan, dotknięć Wył. Itp. Wszystkie te czynności. Jedyną rzeczą jest to, że wykrywają tylko dotknięcia na samym widoku, a nie na niczym na górze tego widoku, jak pole tekstowe.Swift wykrywa dotyk w dowolnym miejscu na ekranie.

Moim celem jest utworzenie limitu czasu po pewnym okresie braku aktywności. Limit czasu zostanie zresetowany po dotknięciu ekranu, co oznacza, że ​​ktoś nadal korzysta z aplikacji. Działa tak długo, o ile nie dotykają żadnych elementów sterujących (takich jak etykieta, przycisk, widok tekstowy itp.).

Mogę również zresetować limit czasu po dotknięciu dowolnej kontrolki, ale wymagałoby to znacznie więcej przypadków (różne typy kontrolek w różnych kontrolerach widoku).

Poszukuję i zakończę wszystkie metody wykrywania dotknięcia ekranu. Jakieś pomysły?

Odpowiedz

14

Można dodać do swojej AppDelegate:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     let tapGesture = UITapGestureRecognizer(target: self, action: nil) 
     tapGesture.delegate = self 
     window?.addGestureRecognizer(tapGesture) 

     return true 
} 

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { 
     // User tapped on screen, do whatever you want to do here. 

     return false 
} 

A także dokonać AppDelegate zgodne z protokołem UIGestureRecognizerDelegate.

+0

Jak ustawić AppDelegate w protokole UIGestureRecognizerDelegate? – circuitry

+1

Po prostu wpisz go w deklaracji klasy AppDelgate w następujący sposób: class AppDelegate: UIResponder, UIApplicationDelegate, UIGestureRecognizerDelegate – Nati

0

Przeciągnij i upuść UITapGestureRecognizer, upewnij się, że wybrano cały widok. Zostanie dodany do górnej linii kontrolera widoku, a następnie utworzyć dla niego Action.

Jeśli chcesz się upewnić, że żaden z przycisków nie jest naciśnięty, po zakończeniu okresu bezczynności dodaj inny widok (może być przezroczysty lub po prostu nieco ciemniejszy) i podłącz do niego UITapGestureRecognizer. Po dotknięciu zwolnij dodany widok i wznów aktywność.

Powiązane problemy