I know you can detect touches using touchesBegan, touchesEnded, etc. These all work. The only thing is that they only detect the touches on the view itself, not on anything on t
Drag and drop UITapGestureRecognizer
, make sure the whole view is selected. It will be added on the top line of your view controller, then create an Action
for it.
If you want to make sure that any of the buttons is not pressed, once the period of inactivity completed, add another view (can be transparent or just a bit darker) on it and connect the UITapGestureRecognizer
to it. Once tapped, release the added view and resume activity.
You can add this to your 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
}
And also make your AppDelegate conform to UIGestureRecognizerDelegate protocol.