Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> iOS

วิธีตรวจจับ User Inactivity 5 วินาทีใน iOS

บางกรณีต้องทำ Action เมื่อหน้าจอไม่มีการโต้ตอบนานๆ

ใช้ UITapGestureRecognizer อ่านรายละเอียด

ตัวอย่าง: แจ้งเตือนเมื่อไม่มีการแตะหน้าจอ 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("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: รันทดสอบ

เปิดแอป รอ 5 วินาทีไม่แตะ จะพิมพ์ข้อความ ถ้าแตะหน้าจอ Timer จะรีเซ็ตใหม่