2016-04-20 28 views
0

我想要從數組中的動態座標移動Google標記移動。但是標記正在直線移動。從動態座標中動畫Google標記移動

我的代碼:

for coord in self.lstCoordinate{ 
    CATransaction.begin() 
    CATransaction.setAnimationDuration(2.1) 
    self.Marker.position = coord 
    CATransaction.commit() 
} 

回答

0
實測值

的溶液。希望幫助全爲他人..

VAR指數= 0

func moveMarker(){ 
    var count: Double = Double(self.lstCoordinate.count) 
    CATransaction.begin() 
    CATransaction.setAnimationDuration(20.0/count) 
    CATransaction.setCompletionBlock 
     { 
      if self.index == 0{ 
       self.lstCoordinate.removeAll() 
       return; 
      } 
      else{ 
       self.moveMarker() 
      }        

    } 

    let transition = CATransition() 
    transition.type = kCATransitionMoveIn 
    self.originMarker.layer.addAnimation(transition, forKey: kCATransition) 
    self.Marker.position = lstCoordinate[index] 
    CATransaction.commit() 

    index = index < lstCoordinate.count - 1 ? index + 1 : 0 

} 
+0

感謝張貼此解決方案。你可以讓我知道這些行是做什麼的:'let transition = CATransition() transition.type = kCATransitionMoveIn self.originMarker.layer.addAnimation(transition,forKey:kCATransition)' –

+0

kCATransitionFade:當圖層的內容將會淡出變得可見或不可見。 kCATransitionMoveIn:圖層的內容滑過現有內容。此類型使用簡單的transition.subtype子類型。將標記從舊位置移動到新位置,我選擇了過渡類型爲kCATransitionMoveIn –