在设计任何iOS应用程序时,您可能会遇到以下情况:如果屏幕在一段时间内处于非活动状态,则必须采取某种措施。
在这里,我们将看到相同的结果,我们将检测用户5秒钟的不活动状态。
我们将使用Apple的UITapGestureRecognizer,您可以在此处了解更多信息
https://developer.apple.com/documentation/uikit/uitapgesturerecognizer。
因此,让我们开始吧!我们将设计一个基本应用程序,在该应用程序启动后立即启动计时器。如果用户在5秒钟内无法触摸屏幕或不执行任何操作,我们将显示一条消息“用户处于非活动状态超过5秒钟。” 如果用户触摸屏幕,我们将重置计时器。
步骤1-打开Xcode-→Single View Application-→我们的名称为“ DetectingInactivity”。
步骤2-打开ViewController.swift并复制并添加代码,我们将看到以下说明
import UIKit class ViewController: UIViewController { //创建计时器类的对象 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() { //执行您希望执行的任何操作 print("用户闲置超过5秒钟。") 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()
函数,在该函数中我们将再次重置计时器。