我为注释设置了一个自定义的pinImage,当我将类型更改为MKMapTypeHybrid
时,它将pinImage设置恢复为标准图钉。
我在地图视图控制器的viewWillAppear
方法中设置mapType。我将我的pinImage设置为这样的注解(为清楚起见已缩短):
- (MKAnnotationView *) mapView:(MKMapView *) mapView viewForAnnotation:(id ) annotation {
MKPinAnnotationView *customAnnotationView=[[[MKPinAnnotationView alloc]
initWithAnnotation:annotation
reuseIdentifier:@"markerAnnotationView"] autorelease];
UIImage *pinImage = [UIImage imageNamed:@"/pin-image"];
[customAnnotationView setImage:pinImage];
return customAnnotationView;
}
有什么方法可以使用
setImage
并通过代码设置mapType吗? 最佳答案
解决此问题的方法是使用MKAnnotationView而不是MKPinAnnotationView。我以前一直有使用MKPinAnnotationView的充分理由,但后来在不将实例化类更改为MKAnnotationView的情况下将自定义图像添加到了引脚。
现在,我认为这可能是错误的框架行为。如果要让MKPinAnnotationView接受setImage调用,请确保在更改mapTypes时它能够正确处理。如果您只想让他们做别针,则对呼叫不做任何事情。呃,好吧。