跟踪MKAnnotationView对象

时间:2014-01-05 04:14:39

标签: ios mkmapview mkannotationview

我希望做的是淡入和淡出一些自定义注释视图。为了做到这一点,我需要有指向这些视图的指针。一直在考虑在mapView:viewForAnnotation中收集这些指针。但我不确定这是否正确。

原因是因为注释视图被设置为可以回收,我担心一旦它们被移出屏幕,它们就可以从注释中分离出来。所以我的想法是,查看在mapView:viewForAnnotation中收集的指针可能不可靠,因为我们不知道它们是否仍在屏幕上。

希望有人可以建议一种正确的方法来跟踪这些视图指针。或者建议一些其他标准或可靠的淡入淡出注释视图的方法。

更新:

刚刚发现viewForAnnotation确实有效。如果他们在屏幕上或不在屏幕上,我真的不需要跟踪注释(至少在这种情况下)。

1 个答案:

答案 0 :(得分: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类型,并且想要仅为其中一部分设置动画,那么您需要在动画之前检查类型。