I've been planning on doing a minor refactor/tune up of the iOSGestures module.
If you could tell me what is missing I might be able to add it to the module for you.
Your code (attaching UITapGesture to a button) got me interested enough to put together a very simple project just to see what would happen. I created a view with an iOSButton on it and attached a tapGesture set to watch for double-taps on the button. The button worked fine, you could both single and double tap the button which I guess shows the advantage of using Apple's system recognizers instead of rolling our own.
I'll add MultiTapButton to the Example project when I finish the update but here is a temporary dropbox link if you are interested. Attaching the tapGesture took 4 lines of code (plus adding a property and the actual tap and double event handlers) but it could all have been reduced to a single line with a gesture specific constructor.
Add property tapHandlerForButton of type tapGesture to View1
Add method "tapHandler" with parameters "recognizer as iosGestures.tapGesture, pos as xojo.Core.Point, eventInfo as iosGestures.gestureEventInfo" to View1]
In View1 Open Event add:
tapHandlerForButton = new iOSGestures.tapGesture()
tapHandlerForButton.NumberOfTapsRequired = 2
AddHandler tapHandlerForButton.Tap, AddressOf tapHandler
tapHandlerForButton.Attach( MultiTapBtn.Handle )
=== Nothing is this post should be considered as supporting the idea of actually implementing a multi-tap button in an app's UI ===