con*_*awg 3 iphone mkmapview mkannotation ios4 ios
我为我的注释设置了自定义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;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法setImage通过代码使用和设置mapType?
这个问题的解决方案是使用MKAnnotationView而不是MKPinAnnotationView.我之前一直使用MKPinAnnotationView是有充分理由的,但后来在引脚中添加了一个自定义图像,而没有将实例化类更改为MKAnnotationView.
现在,我认为这可能是错误的框架行为.如果您要让MKPinAnnotationView接受setImage调用,请确保在更改mapTypes时它正确处理它.如果你只想要它们做引脚,那么不要对通话做任何事情.呃,好吧.