Another important thing is the “selection time”, I’ve seen that in the new devices (iPhone 6) sometime the time between touchesBegan and touchesEnded is too fast and you dont see the changes between defaultTexture and selectedTexture .

I wasn’t convinced of any of the above options, so based on the latest Swift4 I created my own solution .

Unfortunately SpriteKit does not have button node, I do not know why, because it is very useful control. So I decided to create my own and share via CocoaPods, please use it OOButtonNode . Buttons can use text/background or images, written in Swift 4.

Here’s a simple button written with modern Swift (4.1.2)

Caracteristicas

it accepts 2 image names, 1 for the default state and one for the active state

the developer can set the touchBeganCallback and touchEndedCallback closures to add custom behaviour