2012-02-02 12 views
6

Bir harita, MKMapView ve harita konumları her değiştirdiğinde çağrılan bir kodum var (regionDidChangeAnimated'de). Uygulama başlangıçta yüklendiğinde, mapDidChangeAnimated, harita koordinatlarını açık bir şekilde güncelleyen tavalara (swipe), kısmalara, musluklara ve düğmelere çağrılır. Diğer görünümleri yükledikten ve haritaya geri döndükten sonra regionDidChangeAnimated yalnızca musluklar ve haritayı açıkça güncelleyen düğmeler için çağrılır. Haritayı kaydırma ve çimdikleme artık bölgeDidChangeAnimated öğesini çağırmıyor.MKMapView Bölgeyi AramıyorDidChangeAnimated on Pan

Bu sorunu çözmeyen bu stackoverflow post numaralı makaleye baktım. devforums ve iphonedevsdk'daki forum mesajları da çalışmadı. Bu sorunun nedenini bilen var mı? MKMapView'a herhangi bir alt görünüm eklemiyorum. Ben istemedim

cevap

3

bu şekilde yapmak başlangıçta, ama şimdiye kadar (devforums alınan söz konusu sonrası) sorunsuz bir şekilde çalışması için görünür:

senin başlığına UIGestureRecognizerDelegate ekleyin.

if (NSFoundationVersionNumber >= 678.58){ 

     UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGestureCaptured:)]; 
     pinch.delegate = self;   
     [mapView addGestureRecognizer:pinch]; 

     [pinch release]; 

     UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureCaptured:)]; 
     pan.delegate = self; 
     [mapView addGestureRecognizer:pan]; 

     [pan release]; 
} 

hareketlerini işlemek için temsilci yöntemleri ekleyin: Şimdi iOS 4 yapıyorsanız bunu yapabiliriz ... sürüm numarası için bir çek eklemek

#pragma mark - 
#pragma mark Gesture Recognizers 

- (void)pinchGestureCaptured:(UIPinchGestureRecognizer*)gesture{ 
    if(UIGestureRecognizerStateEnded == gesture.state){ 
     ///////////////////[self doWhatYouWouldDoInRegionDidChangeAnimated]; 
    } 
} 

- (void)panGestureCaptured:(UIPanGestureRecognizer*)gesture{ 

    if(UIGestureRecognizerStateEnded == gesture.state){ 
     ///////////////////[self doWhatYouWouldDoInRegionDidChangeAnimated]; 
    } 
} 

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{ 
    return YES; 
} 

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch: (UITouch *)touch{ 
    return YES; 
} 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ 
    return YES; 
} 
+0

olacak bu işler Peki ya iOS 5? –

+0

Evet, iOS 4 ve iOS 5 ile ilgili sorun yaşadım ve her ikisinde de çalışıyor. – brendan

İlgili konular