当用户引脚添加更改标题和副标题时,我会将注释的颜色从红色更改为绿色。
我真的迷路了。我搜索了如何制作自定义注释引脚,好的。当用户触摸引脚didSelectAnnotationView
时,我找到了该方法的实现,当我点击注释NSLog(@"Tap") ;
时,它可以正常工作,但现在我无法更改被触摸的引脚。
非常感谢大家的贡献。
侨
答案 0 :(得分:5)
要设置引脚颜色,请使用MKPinAnnotationView pinColor属性。
MKPinAnnotationView *pin = [[MKPinAnnotationView alloc] init]
pin.pinColor = MKPinAnnotationColorGreen;
对于自定义注释图像,请设置图像属性。
UIImage *annImage = [UIImage imageNamed:@"AnnotationIcon.png"];
annView.image = annImage;
请注意MKPinAnnotationView animateDrop属性不适用于自定义图像。有一种方法可以复制那个动画。见How do I animate MKAnnotationView drop?
<强>更新强> 所以,如果您想在被选中时从红色变为绿色,那么您可以这样做。
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKPinAnnotationView *)view {
view.pinColor = MKPinAnnotationColorGreen;
}
- (MKAnnotationView *)mapView:(MKMapView *)aMapView
viewForAnnotation:(id)ann {
NSString *identifier = @"myPin";
MKPinAnnotationView *annView = (MKPinAnnotationView *)
[aMapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (annView == nil) {
annView= [[[MKPinAnnotationView alloc] initWithAnnotation:ann
reuseIdentifier:identifier]
autorelease];
} else {
annView.annotation = ann;
}
// you can define the properties here.
return annView;
}
答案 1 :(得分:4)
在您的方法中设置pinColor
的{{1}}属性,如下所示:
MKAnnotationView
答案 2 :(得分:1)
(重新)看一下:
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKPinAnnotationView *)view {
view.pinColor = MKPinAnnotationColorGreen;
}
这是param中的 MKPinAnnotationView (而不是 MKAnnotationView )