我创建了以下自定义注释:
-(MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
MKPinAnnotationView *view = nil;
if (annotation != mapView.userLocation)
{
view = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"myAnnotationIdentifier"];
if (!view)
view = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"myAnnotationIdentifier"];
if (((CustomAnnotation *)annotation).annotationType == 1)
{
view.image = [UIImage imageNamed:@"type1.png"];
view.rightCalloutAccessoryView = nil;
view.canShowCallout = YES;
}
else
{
view.image = [UIImage imageNamed:@"type2.png"];
view.rightCalloutAccessoryView = nil;
view.canShowCallout = YES;
}
}
return view;
}
问题:当用户在任何注释图像(type1或type2)上按住2秒钟时,图像将被红色PushPin替换(iPhone MKPinAnnotationView的默认值)。
我想避免这种替代。我怎么能这样做?
答案 0 :(得分:23)
声明并创建普通MKPinAnnotationView
,而不是声明和创建MKAnnotationView
。
MKPinAnnotationView
喜欢默认为红色引脚,这就是它的用途。
答案 1 :(得分:2)
使用didDeselectAnnotationView
和didSelectAnnotationView
并按照以下方式重新选择图片: -
view.image = [UIImage imageNamed:@"type2.png"];