2015-10-08 54 views
0

MKMapView我有兩種類型的地圖是MKMapTypeStandardMKMapTypeSatellite
我想將用戶位置引腳替換爲另一個(location.jpg)圖像。
引腳圖像在MKMapTypeStandard(位置.jpg)中發生變化,但在MKMapTypeSatellite(默認圖像)引腳圖像顯示爲默認地圖引腳圖像。
我該如何解決項目中的這個問題?如何更改mkmapview中的用戶位置引腳圖像type = satellite?

這是我的代碼。

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

試試這樣;

- (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?

確保您使用MKAnnotationView,而不是MKPinAnnotationView無處不在viewForAnnotation方法。

相關問題