在MKMapView
我有两种类型的地图MKMapTypeStandard
和MKMapTypeSatellite
。
我想将用户位置引脚替换为另一个(location.jpg)图像。
引脚图像在MKMapTypeStandard
(location.jpg)中更改,但在MKMapTypeSatellite
(默认图像)引脚图像显示为默认地图图钉图像。
如何在项目中解决此问题?< / p>
这是我的代码。
MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:nil];
MKPinAnnotationView *customPinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil];
//customPinView.image = [UIImage imageNamed:@"mappin4"];
if (!pinView)
{
if (annotation == mapView.userLocation)
{
customPinView.image = [UIImage imageNamed:@"mappin4"];
}
else
{
}
customPinView.animatesDrop = NO;
customPinView.canShowCallout = NO;
customPinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
return customPinView;
} else
{
pinView.annotation = annotation;
}
答案 0 :(得分:0)
试试这个;
- (void) changeMapType: (id)sender
{
if (mapView.mapType == MKMapTypeStandard)
mapView.mapType = MKMapTypeSatellite;
else
mapView.mapType = MKMapTypeStandard;
}
因此,默认情况下,如果您使用谷歌地图,则采用 MKMapTypeStandard 的形式。 如果你想要你可以改变 mapView.mapType = MKMapTypeSatellite ;
您还可以查看以下网址;
Why does a custom MKMapView annotation image disappear on touch?
确保您在viewForAnnotation方法的任何位置使用 MKAnnotationView 而不是 MKPinAnnotationView 。