2014-01-05 168 views
0

我想要做的是淡入和淡出一些自定義註釋視圖。爲了做到這一點,我需要有指向這些視圖的指針。一直在考慮在mapView:viewForAnnotation中收集這些指針。但我不確定這是否正確。保持跟蹤MKAnnotationView對象

原因是因爲註釋視圖被設置爲可回收利用,所以我擔心,一旦它們移出屏幕,它們就可以從其註釋中分離出來。所以我的想法是,在mapView:viewForAnnotation中收集的視圖指針可能不可靠,因爲我們不知道它們是否仍在屏幕上。

希望有人可以建議一個適當的方式來跟蹤這些視圖指針。或者建議一些其他標準或可靠的淡入淡出註釋視圖的方法。

更新:

剛發現viewForAnnotation確實有效。如果他們在屏幕上,我不需要跟蹤註釋(至少在這種情況下)。

+0

您想知道用戶何時點擊您的註解視圖嗎? 或者您想要將地圖上的annotationViews設置爲淡入淡出和一次又一次淡入淡出? –

+0

我想要做的是讓一組註釋視圖根據一定的縮放級別自動淡入和淡出。 – Stanley

回答

0

試試這個,你去要動畫annotationViews變焦:

for (MyAnnotation *annotation in myMapView.annotations) 
{ 
    MKAnnotationView *annotationView = [myMapView viewForAnnotation:annotation]; 
    //Do your animation to the annotationView 
    //Example for fadeOut - fadeIn 
    [UIView animateWithDuration:0.5 animations:^{ 
     annotationView.alpha = 0.2; 
    } completion:^(BOOL finished) { 
     [UIView animateWithDuration:0.5 animations:^{ 
      annotationView.alpha = 1; 
     }]; 
    }]; 
} 

如果您有各種annotationView類型,並要動畫只是其中的一部分,那麼你就需要檢查動畫之前的類型。

+0

感謝您的回答。剛發現viewForAnnotation確實有效。如果註釋在屏幕上,我並不需要保持跟蹤。 – Stanley

+0

我的編碼不完全像拉斐爾的。但是我現在認爲使用viewForAnnotation是正確的。 – Stanley