如何在iOS中檢測使用者5秒鐘內無操作?


在設計任何iOS應用程式時,您可能會遇到一種情況,即如果螢幕在一段時間內處於非活動狀態,則必須執行某種操作。

在這裡,我們將看到同樣的情況,我們將檢測使用者5秒鐘內的無操作。

我們將使用Apple的UITapGestureRecognizer,您可以在這裡閱讀更多相關資訊

https://developer.apple.com/documentation/uikit/uitapgesturerecognizer.

讓我們開始吧!我們將設計一個基本的應用程式,在啟動應用程式後立即啟動計時器。如果使用者在5秒鐘內沒有觸控式螢幕幕或執行任何操作,我們將顯示一條訊息“使用者5秒鐘以上未操作”。如果使用者觸控式螢幕幕,我們將重置計時器。

步驟1 - 開啟Xcode -> 單檢視應用程式 -> 我們將其命名為“DetectingInactivity”。

步驟2 - 開啟ViewController.swift並複製並新增程式碼,我們將在下面看到解釋

import UIKit
class ViewController: UIViewController {
   // create object of timer class
   var timer = Timer()
   override func viewDidLoad() {
      super.viewDidLoad()
      timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(ViewController.doStuff), userInfo: nil, repeats: true)
      let resetTimer = UITapGestureRecognizer(target: self, action: #selector(ViewController.resetTimer));
      self.view.isUserInteractionEnabled = true
      self.view.addGestureRecognizer(resetTimer)
   }
   @objc func doStuff() {
      // perform any action you wish to
      print("User inactive for more than 5 seconds .")
      timer.invalidate()
   }
   @objc func resetTimer() {
      timer.invalidate()
      timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(ViewController.doStuff), userInfo: nil, repeats: true)
   }
}

步驟3 - 執行應用程式!

啟動時呼叫計時器,如果您不觸控式螢幕幕,則會呼叫doStuff()函式。在這裡,您可以執行任何您希望在使用者在一段時間內不觸控式螢幕幕時執行的活動。

如果使用者觸控式螢幕幕,我們將呼叫resetTimer()函式,在這裡我們將再次重置計時器。

更新於:2019年7月30日

1K+ 瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.