Event Handling Guide for iOS said "There may be times when you want a view to receive a touch before a gesture recognizer. ", but I couldn't find how to do that.
I tried delaysTouchesEnded = false, but it does not have any effect.
@IBOutlet weak var myPickerView: UIPickerView!
override func viewDidLoad() {
super.viewDidLoad()
let tapGesture:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(MyViewController.pickerViewTapped(_:)))
tapGesture.delegate = self
tapGesture.delaysTouchesEnded = false
myPickerView.addGestureRecognizer(tapGesture)
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
// called by UIPickerView
print("pickerView called!")
}
func pickerViewTapped(_ sender: UITapGestureRecognizer) {
// called by UITapGestureRecognizer
print("pickerViewTapped called!")
}
When I tap myPickerView, the console would be
pickerViewTapped called!
pickerView called!
But I want them in reverse order. How to do that?