I have an MKMapView with a registered delegate so I can listen for region change events (specifically, regionDidChangeAnimated). I'm looking for a robust way of telling if a region change event was the result of a user dragging the map or from a programatic setRegion: request.
My goal is to have an app that auto-centers the map based on a location trace, unless the user has panned the map by hand, at which point auto-centering will turn off. Thus, I'm calling setRegion: to recenter the map view as appropriate, but I have a hard time telling if the resulting regionDidChangeAnimated: call to the delegate is programatic or from a user-pan. I've tried hacking something together, but I keep running into race conditions when the user starts panning just as a location update comes in.