【问题标题】:How to differentiate between annotation pins?如何区分注释引脚?
【发布时间】:2009-07-15 14:37:30
【问题描述】:

我在地图视图上有三个图钉。我想给每个人一个不同的颜色。在委托方法viewForAnnotation中,我是这样做的:

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{
MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"anAddress"];
annView.pinColor = MKPinAnnotationColorGreen;
annView.animatesDrop=TRUE;
annView.canShowCallout = YES;
annView.calloutOffset = CGPointMake(-5, 5);
return annView;
}

我正在考虑创建一个 MKPinAnnotationViews 数组,但是由于委托方法没有索引到任何东西,我如何才能获得正确的数组?

【问题讨论】:

    标签: objective-c cocoa-touch iphone-sdk-3.0


    【解决方案1】:

    要区分UIView,可以使用the tag property及其对应的viewWithTag:方法。

    但是,在您的上下文中,我建议将颜色添加到您的注释类中。然后你可以确保你不会为多个 pin 重复使用同一个调用者。

    【讨论】:

    • 您的意思是制作自定义 MKPinAnnotationView?但是,当委托触发时,我如何调用正确的?还是有关系?如果没有,我可以保留一个类级别的计数器,以便在每次触发委托时将它们从数组中拉出。
    • 我的意思是你的 id 类包含一个颜色指示器的字段,或者一个你用来确定颜色的计数器。
    猜你喜欢
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多