A long press with miniumDuration = 0 is what you're looking for.
let obj = Circle(center: canvas.center, radius: 100)
let lp = obj.addLongPressGestureRecognizer { locations, center, state in
switch state {
case .Began:
obj.fillColor = C4Pink
case .Ended:
obj.fillColor = C4Blue
default:
break
}
}
lp.minimumPressDuration = 0.0
canvas.add(obj)
Here's a GIST with the above example working. It also attaches the same kind of gesture to the canvas.
The long press gesture will give you the opportunity to hit test the object as well, i.e. if you want to change the highlight when the touch drags out / leaves the frame of the object.