Swift中Google Maps标记下落动画实现求助
为Google Maps标记添加下落动画(Drop Animation)
嘿,这个需求其实超容易实现!Google Maps iOS SDK本身就内置了下落动画的枚举值,你只需要修改一行代码就能搞定:
你当前设置的是pop动画:
marker.appearAnimation = GMSMarkerAnimation.pop
只需要把它替换成drop动画即可:
marker.appearAnimation = GMSMarkerAnimation.drop
替换后的完整代码如下:
marker.position = CLLocationCoordinate2D(latitude: Double(self.LocalDataStore[i].Latitude)!, longitude: Double(self.LocalDataStore[i].Longitude)!) marker.title = self.LocalDataStore[i].postTitle marker.snippet = self.LocalDataStore[i].postContent // 替换为下落动画 marker.appearAnimation = GMSMarkerAnimation.drop marker.infoWindowAnchor = CGPoint(x: 0.5, y: 0.2) marker.accessibilityLabel = "\(i)"
如果之后你想要更个性化的下落动画(比如调整动画时长、修改下落起始高度等),也可以借助Core Animation自定义实现,示例代码如下:
// 先隐藏标记,准备动画 marker.isHidden = true marker.map = yourMapView // 替换为你的地图实例 // 创建自定义下落动画 let dropAnimation = CABasicAnimation(keyPath: "position.y") dropAnimation.fromValue = marker.position.latitude - 0.01 // 从地图上方一点的位置开始 dropAnimation.toValue = marker.position.latitude dropAnimation.duration = 0.6 dropAnimation.timingFunction = CAMediaTimingFunction(name: .easeIn) // 添加动画并显示标记 marker.layer.add(dropAnimation, forKey: "customDropAnimation") marker.isHidden = false
不过如果只是需要标准的下落效果,直接用SDK内置的.drop枚举值就足够啦,简单又省心~
内容的提问来源于stack exchange,提问作者Hari Mohan Agrawal
相关产品推荐
相关产品推荐

