Rui*_*pes 1 uiimage mapkit mkmapview mkannotationview ios
我有一个只有MKAnnotation的mapView,它有一个服装图像.当用户更改mapType时,我需要更改该注释的图像.
我这样做的方法是从地图中删除注释,并插入另一个正确的图像,我不认为是最好的方法.显示新图像大约需要1 2秒.
如何在不删除注释的情况下执行此操作并删除另一个注释?
谢谢,
RL
小智 8
您可以使用viewForAnnotation:地图视图的实例方法(与具有相似名称的委托方法不同)来获取注释的当前视图并强制显式更改图像.
例如,在地图类型更改的位置:
MKAnnotationView *av = [mapView viewForAnnotation:annotation];
if (mapView.mapType == MKMapTypeHybrid)
av.image = [UIImage imageNamed: @"hybrid.png"];
else
av.image = [UIImage imageNamed: @"standard.png"];
Run Code Online (Sandbox Code Playgroud)
但是,您应该将相同的if语句添加到viewForAnnotation委托方法中,因此当地图视图稍后调用委托方法本身时,它也将设置正确的图像.
您可能希望将图像设置逻辑移动到可以从更改地图类型的位置和viewForAnnotation委托方法调用的常用方法(该MKAnnotationView对象将作为参数传递).如果逻辑在一个地方,您不必记住保持两个地方同步.
| 归档时间: |
|
| 查看次数: |
2612 次 |
| 最近记录: |