When the enabled gestures is changed we need to call ReleaseAllTouches(). While testing on iOS I found that changing the EnabledGestures while a drag is occurring on the hardware will result in an infinite loop due to partial state being recorded - the IsGestureAvailable call will loop forever.