gpt4 book ai didi

ios - 如何通过 UIViewController(Swift,iOS 9)检测屏幕事件

转载 作者:搜寻专家 更新时间:2023-11-01 05:57:42 24 4
gpt4 key购买 nike

我想创建一个具有超时的 UIViewController,它会在一定时间后解除 segue,但会检测何时有屏幕事件并重置计时器。想想密码输入屏幕,如果设备闲置在那里,您希望屏幕超时。我想 iphone/ipad 会超时,然后当你解锁并返回那个应用程序时,我希望在这种情况下 segue 也能放松。最好的方法是什么?

最佳答案

定义一个定时器

var timer = NSTimer() 

在您的 viewDidLoad 中,将计时器设置为您喜欢的任何值

这里 terminateApp 将在 60 秒后调用

timer = NSTimer.scheduledTimerWithTimeInterval(60, target: self, selector: Selector("terminateApp"), userInfo: nil, repeats: true)

func terminateApp(){
// Do your segue and invalidate the timer
timer.invalidate()
}

但是,如果用户按下 View ,您希望使计时器无效并启动一个新计时器,请按以下方式执行:

在您的 viewDidLoad 中添加一个 gestureRecognizer,它将在用户触摸屏幕时调用 resetTimer:

let resetTimer = UITapGestureRecognizer(target: self, action: "resetTimer");
self.view.userInteractionEnabled = true
self.view.addGestureRecognizer(resetTimer)

func resetTimer(){
// invaldidate the current timer and start a new one
timer.invalidate()
timer = NSTimer.scheduledTimerWithTimeInterval(60, target: self, selector: Selector("terminateApp"), userInfo: nil, repeats: true)
}

关于ios - 如何通过 UIViewController(Swift,iOS 9)检测屏幕事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35002617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com