iOS如何判断用户何时与应用程序交互?

时间:2016-12-16 20:17:24

标签: ios uigesturerecognizer

目标: 我需要能够告诉用户何时与iPhone应用进行交互。 5分钟后,我将自动logout用户,但如果用户正在与应用互动,我不想这样做。

我已阅读过有关shouldReceiveTouch:的内容,但如果用户触摸某些内容,则会调用它。我可以登录那里重置5分钟计时器。

如何触摸任何屏幕上的任何view,5分钟计时器重新开始?

是否可以在不实施shouldReceiveTouch:的情况下执行此操作?

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

至少有3种方法:

  • (1)我认为最好的建议in this post。基本上你会覆盖-sendEvent:上的UIApplication。但有人提到这可能不再适用于iOS 7 - YMMV。

  • (2)另一种不太干净的解决方案是使用method swizzling。您可以在UIView上替换您自己实现的方法,例如: -touchesEnded:withEvent:-hitTest:withEvent:

  • (3)如果您的应用不使用任何第三方视图控制器,您可以创建自定义基类UIViewController并制作所有视图控制器(登录视图控制器除外)之前显示的任何内容)继承自此基类。此视图控制器将具有手势识别器或可能覆盖-touchesEnded:withEvent:-hitTest:withEvent:等方法。

对于所有方法,您可能会使用单例来跟踪最后一次触摸的时刻。也许单身人士会使用倒数计时器。单例可能有a multicast delegate或使用NSNotificationCenter通知其他视图控制器计时器已用完。

P.S。:我应该注意你应该仔细考虑方法调整。如果某个其他项目或库调用相同的方法,您将无法确定哪种实现用于混合方法。