When AVPlayerViewController plays a video it does a neat thing when the video is paused. If you put your finger on the touch pad of the remote at the right hand side it shows the jump forward 10 seconds icon. Similarly just touch the left and it shows the jump back icon, and touch the top it shows the info button. (Touch means put finger on the touch surface, don't then release it (tap) or push harder and release (click))
How does it do this?!
As far as I can tell using touchesBegan or pressesBegan there is no way to detect where a finger touches down on the surface until it has touched back up. Then both the began and end events are fired. Using a tap gesture recognizer also only gets fired after the finger has left the surface.
How do you get notified when the user has just touched down on a virtual button? This seems like a critical feature if we want to give users a consistent ui experience - the touch down but don't tap or click is almost like a right click / peek / additional info (at least that seems to be how AVPlayerViewController is using it).