【发布时间】:2019-04-16 04:18:22
【问题描述】:
我已在我的项目中包含谷歌地图视图并成功在其上显示标记。谷歌地图只提供标记的弹出动画。我想要为标记放置动画。
我已经成功实现了半径动画放大和缩小,但需要标记放置动画。
所以我的想法是,如果我在 UIScreen 中获得准确的标记点,那么我将从屏幕顶部放置图钉,这将产生放置动画的效果。
最后我从下面的代码中得到了放置动画,但是有一个问题是我没有从 mapview 中得到完美的点来显示放置动画。
//Drop pin
func setMarker(latitude : Double, longitude : Double, isForJobLocation : Bool = false){
let point = mapView.projection.point(for: CLLocationCoordinate2D(latitude: latitude, longitude: longitude))
let viewPoints = UIApplication.shared.keyWindow!.convert(point, from: mapView)
print(viewPoints)
self.showAnimatation(xPosition: viewPoints.x, yPosition: viewPoints.y) {
let marker1 = GMSMarker(position: CLLocationCoordinate2D(latitude: latitude, longitude: longitude))
marker1.icon = UIImage(named: "mapLoadingPin")
marker1.map = self.mapView
}
}
func showAnimatation(xPosition : CGFloat, yPosition : CGFloat, completion : @escaping (() -> ())){
let imageView = UIImageView(frame: CGRect(x: xPosition, y: yPosition - 100, width: 44, height: 44))
imageView.image = UIImage(named: "mapLoadingPin")
self.view.addSubview(imageView)
UIView.animate(withDuration: 1.0, animations: {
imageView.frame.origin.y = yPosition
self.view.layoutIfNeeded()
}) { (true) in
imageView.removeFromSuperview()
completion()
}
}
请帮助我。任何帮助将不胜感激。
【问题讨论】:
标签: ios swift animation google-maps-markers gmsmapview