3

我为我的注释设置了一个自定义 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 吗?

4

1 回答 1

9

这个问题的解决方案是使用 MKAnnotationView 而不是 MKPinAnnotationView。我以前使用 MKPinAnnotationView 是有充分理由的,但后来在没有将实例化类更改为 MKAnnotationView 的情况下向 pin 添加了自定义图像。

现在,我认为这可能是错误的框架行为。如果您要让 MKPinAnnotationView 接受 setImage 调用,请确保它在您更改 mapTypes 时正确处理它。如果您只希望他们做引脚,那么不要对呼叫做任何事情。呃,好吧。

于 2011-02-28T04:30:05.757 回答