I did a little experiment and seems like the result I got contradicts what the book says.
I read the curious section, and it mentioned:
so basically it says when we add a gesture recognizer to a view, any touch event (ie. touchBegan, touchMoved) will either be delayed, or won’t be called. (please tell me if I have interpreted the above paragraph in the wrong way ) UNLESS you manually call setDelaysTouchBegin to NO, to change the behaviour.
Now back to my experiment,in the touchBegan method I have put a trace so that I know if this method gets called or not. When I run the program, I tab on the line, or I long pressed the line, the touchBegan DID get called.
I then stopped the app, traced the delaysTouchesBegin for the tap recognizer and long pressed recognizer, and I got a NO for both recognizers. Which means, the gesture recognizers are not “greedy” by default, not until I manually set the “setDelaysTouchesBegan” to YES.