在MKMapView中,我有两种类型的映射,即MKMapTypeStandard和MKMapTypeSatellite。
我想将用户定位引脚替换为另一个(location.jpg)图像。
在MKMapTypeStandard (location.jpg)中,引脚图像正在发生变化,而在MKMapTypeSatellite(默认图像)中,引脚图像显示为默认的映射引脚图像。
如何在项目中解决这个问题?
这是我的密码。
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;
}发布于 2015-10-08 10:12:59
试着像这样;
- (void) changeMapType: (id)sender
{
if (mapView.mapType == MKMapTypeStandard)
mapView.mapType = MKMapTypeSatellite;
else
mapView.mapType = MKMapTypeStandard;
}因此,默认情况下,如果您使用google地图,它是以MKMapTypeStandard.的形式出现的。如果您愿意,可以通过mapView.mapType =MKMapTypeSatellite进行更改;
您也可以检查以下网址;
Why does a custom MKMapView annotation image disappear on touch?
确保在您的MKAnnotationView方法中使用的是MKPinAnnotationView,而不是到处都是MKPinAnnotationView。
https://stackoverflow.com/questions/33011809
复制相似问题