GMSMarker不透明度animation不重复
我试图用一个自定义的图标闪烁着一个衰减的animation不透明度GMSMarker。 animation应该重复几次,但不会,它只是执行一个转换,然后停止。 这只在animation不透明属性时才会发生,在animation制作其他属性时工作正常。
这里是代码:
GMSMarkerLayer* layer = marker.layer; CABasicAnimation *blink = [CABasicAnimation animationWithKeyPath:@"opacity"]; blink.fromValue = [NSNumber numberWithFloat:0.0]; blink.toValue = [NSNumber numberWithFloat:1.0]; blink.duration = 1.0; blink.autoreverses = YES; blink.repeatCount = 4; [layer addAnimation:blink forKey:@"blinkmarker"];
文档说,我应该能够animation不透明,因为它是GMSMarkerLayer允许我们的属性之一。
我做错了什么,或者是我碰到的一个已知的错误?
我的解决scheme是添加一个委托给animation:
CABasicAnimation *blink = [CABasicAnimation animationWithKeyPath:@"opacity"]; blink.fromValue = [NSNumber numberWithFloat:1.0]; blink.toValue = [NSNumber numberWithFloat:0.0]; blink.duration = 1.5; [blink setDelegate:self]; [placeMarker.layer addAnimation:blink forKey:@"blinkmarker"];
然后当animation完成后,我得到一个callback,并再次添加:
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag { if (flag) { CABasicAnimation *blink = [CABasicAnimation animationWithKeyPath:kGMSMarkerLayerOpacity]; blink.fromValue = [NSNumber numberWithFloat:1.0]; blink.toValue = [NSNumber numberWithFloat:0.0]; blink.duration = 1.5; [blink setDelegate:self]; [placeMarker.layer addAnimation:blink forKey:@"blinkmarker"]; } }
我不得不这样做,因为GMSMarkerLayer不关心重复animation。 我尝试在callback中重复使用animation,然后再次添加,但是没有奏效。
- 使用Google Maps SDK for iOS优化自定义标记图片的性能
- 如何在GoogleMaps for iOS中自定义图标标记
- 显示iphone sdk中的多个点之间的路线
- 谷歌地图iOS sdk获取挖掘重叠坐标
- 禁用捏和缩放使用JavaScript的谷歌地图?
- 适用于iOS的GoogleMaps SDK – SWIFT 3:当隐藏标记,然后添加地图视图时,cpu陷入100%
- 用Google maps iOS sdk在swift中创build自定义信息窗口?
- ios定期获取我的位置,并设置button来获取我的位置 – 谷歌地图不工作
- GoogleMaps基本的iOS演示程序崩溃 – 无法识别的select器发送到实例