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.