Kayıtlı bir temsilci ile bir MKMapView
sahibiyim, bu nedenle bölge değişikliği olaylarını (özellikle, regionDidChangeAnimated) için dinleyebilirim. Bir bölge değişikliği olayının, haritayı sürükleyen bir kullanıcının sonucu veya programlı bir setRegion:
isteğinden kaynaklanıp kaynaklanmadığını söylemenin sağlam bir yolunu arıyorum.MKMapView'da regionChange olayının MKMapView'ın programlı veya kullanıcı sürüklemesi olduğunu nasıl anlarım?
Amacım, haritayı elle kapatamadıkça, otomatik merkezlemenin hangi noktada kapanmayacağını belirlediyse, haritayı bir konum izlemesine göre otomatik merkezleyen bir uygulamaya sahip olmaktır. Bu yüzden, setRegion'u arıyorum: harita görünümünü uygun şekilde yeniden girmek için, ancak sonuçta ortaya çıkan regionDidChangeAnimated:
çağrısının programlı mı yoksa bir kullanıcı panosundan mı olduğunu söylemeye zorlanıyorum. Birlikte bir şeyler hacklemeyi denedim, ancak kullanıcı bir yer güncellemesi geldiğinde kaydırma yapmaya başladığında yarış koşullarına koşuyorum.
Bu sorun da vardı. Kodun güzel bir çözüm. Bu biraz hacky, ama o kadar da kötü değil çünkü hala iyi bir ingilizce okur. Bu sadece bir boolean bayrağı :) – chakrit