You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:25:05