在iOS中旋转GMSMarker

时间:2015-06-30 08:48:32

标签: ios google-maps

我想像地球一样旋转GMSMarker。我曾尝试使用旋转动画代码但它们都需要UIImageView但是在GMSMarker的情况下我没有UIImageView容器。另外,我不确定我们能不能这样做

请建议。

1 个答案:

答案 0 :(得分:2)

GMSMarkerNSObject,而不是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,然后再更改为一半和全尺寸。

enter image description here

有关更改UIImage大小的示例代码:

width

您可以在this Gist中找到完整的源代码。