Google Maps Swift 中的脉动标记动画

Posted

技术标签:

【中文标题】Google Maps Swift 中的脉动标记动画【英文标题】:Pulsating marker animation in Google Maps Swift 【发布时间】:2016-05-24 08:59:47 【问题描述】:

我正在使用 GMaps SDK for Swift,我的目标是用像脉动效果这样的动画类型替换标准标记。我试图玩图层但没有运气。任何建议如何在我的标记图像上添加动画效果?

let parkingSpotsPosition = CLLocationCoordinate2D(latitude: self.SpotLocationLatitudes.last!, longitude: self.SpotLocationLongitudes.last!)
                    let marker = GMSMarker(position: parkingSpotsPosition)
                    marker.title = self.SpotNames.last
                    //marker.icon = GMSMarker.markerImageWithColor(UIColor.greenColor())
                     marker.icon = UIImage(named: "parking-location")
                     marker.map = self.gMapsView

【问题讨论】:

***.com/questions/18529248/…的可能重复 正确,但问题依然存在 【参考方案1】:

您可以通过在其状态中绘制图像来做到这一点。例如,我用一条线点亮、两条线点亮等方式绘制的警报脉动图像。然后你为这些图像设置动画。

定义动画图像、单个图像和图像数组,如下所示:

var animatedImage: UIImage!
var image1: UIImage!
var image2: UIImage!
var image3: UIImage!
var image4: UIImage!
var images: [UIImage]!

在 viewDidLoad 之类的地方,使用您选择的持续时间进行设置。我使用 Sketch App 来绘制单个图像。

image1 = UIImage(named: "MarkerTrouble1.png")
image2 = UIImage(named: "MarkerTrouble2.png")
image3 = UIImage(named: "MarkerTrouble3.png")
image4 = UIImage(named: "MarkerTrouble4.png")

images = [image1, image2, image3, image4]

animatedImage = UIImage.animatedImage(with: images, duration: 0.8)

当您想在地图上绘制动画图像并查看脉动效果时,请使用通常的 GMSMapView 和 GMSMarker 代码,例如:

let marker = GMSMarker()
let markerView = UIImageView(image: animatedImage)
marker.position = CLLocationCoordinate2D(latitude: userLat, longitude: userLng)
marker.iconView = markerView
marker.map = mapView

【讨论】:

感谢您的回答。对于有marker.tracksViewChanges = false 的人必须更改为“true”。

以上是关于Google Maps Swift 中的脉动标记动画的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义的 InfoWindow 添加到 google-maps swift ui 中的标记?

在 Swift 中的 Apple Maps 上添加标记标签 [关闭]

swift 3 google maps - 如何更新地图上的标记

Swift 3 - 在 GMSMarker 上长按并打印其坐标(Google Maps iOS SDK)

当用户点击 react-google-maps 中的地图或标记时执行操作

Google Maps Android v2 中的集群标记