我想像地球一样旋转GMSMarker。我曾尝试使用旋转动画代码但它们都需要UIImageView但是在GMSMarker的情况下我没有UIImageView容器。另外,我不确定我们能不能这样做
请建议。
答案 0 :(得分:2)
GMSMarker
是NSObject
,而不是UIView
。因此,您无法使用UIView.aniamteWithDuration()
。
此外,您只能将CATransform3D
应用于UIView
,因此您也无法marker.layer.transform = rotationTransform
。
但是,GMSMarker
有一个名为icon
的UIImage属性。您可以通过更改icon
的{{1}}属性的大小将其用作解决方法。
示例代码:
GMSMarker
上面的代码每0.05秒更新 let originalImage = UIImage(named: "markerIcon")
delay(seconds: 0.05) { () -> () in
marker.icon = self.newImageWithWidth(originalImage!, width: originalImage!.size.width/2, height: originalImage!.size.height)
delay(seconds: 0.05, { () -> () in
marker.icon = self.newImageWithWidth(originalImage!, width: 0.1, height: originalImage!.size.height)
delay(seconds: 0.05, { () -> () in
marker.icon = self.newImageWithWidth(originalImage!, width: originalImage!.size.width/2, height: originalImage!.size.height)
delay(seconds: 0.05, { () -> () in
marker.icon = self.newImageWithWidth(originalImage!, width: originalImage!.size.width, height: originalImage!.size.height)
})
})
})
}
标记图标,从一半更改为0.1,然后再更改为一半和全尺寸。
有关更改UIImage大小的示例代码:
width
您可以在this Gist中找到完整的源代码。