it-swarm.com.de

Schnelles Erkennen von Berührung an beliebiger Stelle auf dem Bildschirm

Ich weiß, dass Sie Berührungen mit BerührungenBegan, BerührungenEnded usw. erkennen können. Die einzige Sache ist, dass sie nur die Berührungen in der Ansicht selbst erkennen, nicht in etwas über dieser Ansicht wie einem Textfeld.

Mein Ziel ist es, nach einer bestimmten Zeit der Inaktivität ein Timeout zu erstellen. Das Zeitlimit wird zurückgesetzt, wenn der Bildschirm berührt wird. Dies bedeutet, dass jemand die App noch verwendet. Dies funktioniert soweit, solange sie nicht auf Steuerelemente (wie Beschriftung, Schaltfläche, Textansicht usw.) tippen.

Ich könnte auch das Zeitlimit zurücksetzen, wenn Steuerelemente getippt werden. Dies würde jedoch wesentlich mehr Fälle erfordern (verschiedene Arten von Steuerelementen auf verschiedenen Ansichtscontrollern).

Ich bin auf der Suche nach einer End-All Screen Tap-Erkennungsmethode. Irgendwelche Ideen?

13
Luke Patterson

Sie können dies zu Ihrer AppDelegate hinzufügen:

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
}

Und machen Sie auch Ihre AppDelegate mit dem UIGestureRecognizerDelegate-Protokoll kompatibel.

18
Nati

Ziehen Sie UITapGestureRecognizer, und stellen Sie sicher, dass die gesamte Ansicht ausgewählt ist. Es wird in der obersten Zeile Ihres View-Controllers hinzugefügt und erstellt dann eine Action

Wenn Sie sicherstellen möchten, dass eine der Schaltflächen nicht gedrückt wird, fügen Sie nach Ablauf der Inaktivitätszeit eine andere Ansicht hinzu (kann transparent oder nur etwas dunkler sein), und verbinden Sie die UITapGestureRecognizer mit ihr. Lassen Sie die hinzugefügte Ansicht los und setzen Sie die Aktivität fort.

0
Idan