If you set the userInteractionEnabled property to YES in a subclass of SKSpriteNode, then touch delegates will call inside the class. Consequently, you can handle the touch for sprite in your class.
However, by default, the userInteractionEnabled property userInteractionEnabled set to NO . Therefore, touching the sprite by default is a "scroll".
So, for the required overlays, create custom classes for sprites, implement touchesBegan: and other delegates inside this class, and when initializing set the userInteractionEnabled property to YES .
source share