2014-01-05 118 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