I have a 5 components UIPickerView which needs to be disabled to normal user interaction (ie: no spinning / clicking around to spin them). I need however to detect touches inside them and react according to which component was pressed.
I tried UIGestureRecognizer and UITapGestureRecognizer with cancelsTouchesInView set to YES: It fires up and blocks the single taps but not the dragging around. I tried didSelectRow:inComponent but it’s only firing up when the pickers spinned which is a behavior I don’t want.. the reels must never spin on a user interaction as mentioned above.
Solved this by adding a UIGestureRecognizer to the background image (with user interaction enabled) and looking at the locations of the taps to determine if the taps were within the region of a UIPickerView component.