快速检测触摸屏上的任何地方

问题描述:

我知道你可以检测使用touchesBegan,touchesEnded等触摸 这些都工作。唯一的事情是他们只能检测视图本身的触摸,而不是像文本字段那样在视图顶部的任何东西。快速检测触摸屏上的任何地方

我的目标是在一段时间不活动后创建超时。如果屏幕被触摸,超时将被重置,这意味着有人仍在使用该应用程序。它到目前为止工作,只要他们不点击任何控件(如标签,按钮,文本视图等)。

我还可以在任何控件被点击时重置超时,但这需要更多的情况(不同视图控制器上的不同类型的控件)。

我正在寻找和最终全屏幕拍照检测方法。有任何想法吗?

您可以添加到您的AppDelegate:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     let tapGesture = UITapGestureRecognizer(target: self, action: nil) 
     tapGesture.delegate = self 
     window?.addGestureRecognizer(tapGesture) 

     return true 
} 

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { 
     // User tapped on screen, do whatever you want to do here. 

     return false 
} 

,也使您的AppDelegate符合UIGestureRecognizerDelegate协议。

+0

我如何使AppDelegate符合UIGestureRecognizerDelegate协议? – circuitry

+1

只需在你的AppDelgate类声明中输入如下代码: class AppDelegate:UIResponder,UIApplicationDelegate,UIGestureRecognizerDelegate – Nati

拖放UITapGestureRecognizer,确保选择了整个视图。它将被添加到视图控制器的最上面一行,然后为它创建一个Action

如果您想要确保没有按下任何按钮,则在完成非活动期后,在其上添加另一个视图(可以是透明的或只是稍深一点),并将其连接到UITapGestureRecognizer。点击后,释放添加的视图并恢复活动。