2017-12-27 18 views
2

移動アニメーション私のアプリで

**Here the car image where I want to only rotate car icon.** 

私は10秒ごと にサーバーから場所を受信して​​いますので、私は からアニメーションと私のカスタム注釈をアニメーション化します1つのポイントから別のポイントへ

iOS Swift 3のMapKitで注釈を移動したいのですが、 移動アニメーションをある場所から別の場所に与える方法。 は、私は慎重に読んで、私は、カスタム注釈

var point : MyCustomAnnotation? 
    point = MyCustomAnnotation(coordinate: CLLocationCoordinate2D(latitude: self.latitude , longitude: self.longitude)) 
    point?.speed  = speed 
    point?.dateTime = time 
    self.mapView.addAnnotation(point!) 

より

を追加しています

ここ

この

感謝から抜け出すために私を助けてください、私のViewControllerクラスコード を送ります

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

    if annotation is MKUserLocation 
    { 
     return nil 
    } 
    UIView.animate(withDuration: 3) { 
     if(self.annotationView != nil) 
     { 


      self.annotationView?.removeFromSuperview() 
     }else{ 

     } 
     self.annotationView = self.mapView.dequeueReusableAnnotationView(withIdentifier: "Pin") 
     if self.annotationView == nil{ 


      self.annotationView = AnnotationView(annotation: annotation, reuseIdentifier: "Pin") 


      self.annotationView?.image = self.imagePin! 

      self.annotationView?.canShowCallout = false 
     }else{ 
      self.annotationView?.annotation = annotation 
     } 

      let roatet = CLLocation(latitude: self.latitude, longitude: self.longitude) 
      .bearingToLocationDegrees(destinationLocation: CLLocation(latitude: self.rotLat, longitude: self.rotLng)) 


     self.rotLat = self.latitude 
     self.rotLng = self.longitude 

     self.annotationView?.image = self.imagePin?.imageRotatedByDegrees(oldImage: self.imagePin!, deg: CGFloat(roatet)) 


    return annotationView 
} 

そして、もう一つの機能は、私の知る限りは、その車の注釈車の注釈のユーザータップのような同じパス上で実行されますしたら、私は、私は2つの場所の間のライブポリーが描かれている中で、このソリューションを提案していますあなたの質問を理解して

func mapView(_ mapView: MKMapView, 
       didSelect view: MKAnnotationView) 
    { 
     // 1 
     if view.annotation is MKUserLocation 
     { 
      // Don't proceed with custom callout 
      return 
     } 
     // 2 
     let starbucksAnnotation = view.annotation as! StarbucksAnnotation 
     let views = Bundle.main.loadNibNamed("CustomCalloutView", owner: nil, options: nil) 
     let calloutView = views?[0] as! CustomCalloutView 
     calloutView.lbAc.text = starbucksAnnotation.acV 
     calloutView.lbFuel.text = starbucksAnnotation.fuelV + "%" 
     calloutView.lbPower.text = starbucksAnnotation.powerV 
     calloutView.lbIgnation.text = starbucksAnnotation.ignitionV 
     calloutView.lbBattery.text = starbucksAnnotation.battry 
     calloutView.lbDate.text = starbucksAnnotation.dateTime 

     calloutView.center = CGPoint(x: view.bounds.size.width/2, y: -calloutView.bounds.size.height*0.52) 
     view.addSubview(calloutView) 
     // UIView.animate(withDuration: 5) { 
      mapView.setCenter((view.annotation?.coordinate)!, animated: true) 
     // } 

    } 
    func mapView(_ mapView: MKMapView, didDeselect view: MKAnnotationView) { 
     if view.isKind(of: AnnotationView.self) 
     { 
      for subview in view.subviews 
      { 
       subview.removeFromSuperview() 
      } 
     } 
    } 
+0

これをチェック - > https://github.com/100grams/Moving-MKAnnotationView&http://burnignorance.com/iphone-development-tips/how-to- –

+0

これは役に立つかもしれません:https://github.com/antonyraphel/ARCarMovement – user1374

+0

これらのリンクは有用ではありません、私はもはやありませんObjective Cについて –

答えて

関連する問題