检测基地中的触摸 Class
Detect Touch in Base Class
在我的应用程序中,我想在 inactivity
一段时间后执行 session timeout
。但是,如果用户与应用程序交互,则 timer
需要重置。
主要关注的是这应该在应用程序的一部分而不是整个应用程序中实现,所以是否有任何替代方法可以让 subclassing UIApplication
检测 user interaction
。
我确实有一个用于那些特定控制器的基础 class,但是 touch or gesture delegates
没有在基础 class 中被调用。
如何检测少数控制器的用户交互。
提前感谢您的任何想法和帮助。
所以,我想出了一个办法。在我的基地 class,我之前在视图上设置了点击手势。
let tap = UITapGestureRecognizer(target: self, action: nil)
tap.delegate = self
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
所以现在我在 window
上添加手势而不是 view.addGestureRecognizer(tap)
if let window = UIApplication.shared.keyWindow {
window.addGestureRecognizer(tap)
}
我实现了UIGestureRecognizerDelegate
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
// My Code here
return true
}
所以,现在我的基地 class 能够检测到任何点击并调用 delegate
。
请注意: 添加此 delegate/ gesture
不会影响我 child class 的任何其他视图上的触摸或手势es.
在我的应用程序中,我想在 inactivity
一段时间后执行 session timeout
。但是,如果用户与应用程序交互,则 timer
需要重置。
主要关注的是这应该在应用程序的一部分而不是整个应用程序中实现,所以是否有任何替代方法可以让 subclassing UIApplication
检测 user interaction
。
我确实有一个用于那些特定控制器的基础 class,但是 touch or gesture delegates
没有在基础 class 中被调用。
如何检测少数控制器的用户交互。
提前感谢您的任何想法和帮助。
所以,我想出了一个办法。在我的基地 class,我之前在视图上设置了点击手势。
let tap = UITapGestureRecognizer(target: self, action: nil)
tap.delegate = self
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
所以现在我在 window
view.addGestureRecognizer(tap)
if let window = UIApplication.shared.keyWindow {
window.addGestureRecognizer(tap)
}
我实现了UIGestureRecognizerDelegate
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
// My Code here
return true
}
所以,现在我的基地 class 能够检测到任何点击并调用 delegate
。
请注意: 添加此 delegate/ gesture
不会影响我 child class 的任何其他视图上的触摸或手势es.