2016-04-27 4 views
3

MKMapViewのユーザーのデフォルトの場所の注釈を、青色からgeoという名前のカスタムイメージに変更しようとしています。ブレークポイントを設定すると、地理に設定するためにラインに当たっていますが、両方のポイント(ユーザーのデフォルトと旅客ポイントはデフォルトの赤いピンポイントアノテーションです)私はこれを間違って設定していますか、または特定の画像規定がありますか?MKMapViewユーザーの場所の注釈の変更

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { 

     if annotation.isKindOfClass(PassengerLocation) == false { 

      //User location 
      let userIdentifier = "UserLocation" 
      var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(userIdentifier) 

      if annotationView == nil { 
       annotationView = MKPinAnnotationView(annotation:annotation, reuseIdentifier:userIdentifier) 
      } 
      annotationView!.annotation = annotation 
      annotationView!.canShowCallout = true 

      // THIS IS NOT WORKING, DEFAULT RED PIN POINT STILL SHOWING 
      annotationView!.image = UIImage(named: "geo") 
      return annotationView 


     } 

     let identifier = "PassengerLocation" 

     if let annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) { 
      annotationView.annotation = annotation 

      return annotationView 
     } else { 
      let annotationView = MKPinAnnotationView(annotation:annotation, reuseIdentifier:identifier) 
      annotationView.enabled = true 
      annotationView.canShowCallout = true 

      let btn = UIButton(type: .DetailDisclosure) 
      annotationView.rightCalloutAccessoryView = btn 

      return annotationView 
     } 

    } 

答えて

0

イメージをカスタマイズする場合は、通常のMKAnnotationViewを使用します。ピンを使用すると、色を変更するだけで済みます。

3

これは動作します:

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { 
     if annotation.isEqual(mapView.userLocation) { 
     let annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "userLocation") 
     annotationView.image = UIImage(named: "geo") 
     return annotationView 
    } 
} 
+0

作業、それはあなたを助けていましたか? – 123FLO321

0

その私のために

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { 

    // want to show a custom image if the annotation is the user's location. 
    guard !annotation.isKindOfClass(MKUserLocation) else { 
     let annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "userLocation") 
     annotationView.image = UIImage(named: "icon_coordinates_self") 
     return annotationView 
     //return nil 
    } 

    let annotationIdentifier = "AnnotationIdentifier" 

    var annotationView: MKAnnotationView? 
    if let dequeuedAnnotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(annotationIdentifier) { 
     annotationView = dequeuedAnnotationView 
     annotationView?.annotation = annotation 
    } 
    else { 
     let av = MKAnnotationView(annotation: annotation, reuseIdentifier: annotationIdentifier) 
     av.rightCalloutAccessoryView = UIButton(type: .DetailDisclosure) 
     annotationView = av 
    } 

    if let annotationView = annotationView { 
     // Configure your annotation view here 
     annotationView.canShowCallout = true 
     annotationView.image = UIImage(named: "Annotation_map") 
    } 

    return annotationView 
} 
関連する問題