Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

iOS에서 5초 동안 사용자 비활성을 감지하는 방법은 무엇입니까?

<시간/>

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 {
   // 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() 함수를 호출합니다.