我找到了这样的代码:
CABasicAnimation *anim = [CABasicAnimation animation];
anim.keyPath = @"transform.scale";
anim.fromValue = [NSNumber numberWithFloat:1.0];
anim.toValue = [NSNumber numberWithFloat:0];
anim.removedOnCompletion = NO;
anim.fillMode = kCAFillModeBoth;
anim.delegate = self;
[self.view.layer addAnimation:anim forKey:@"scaleOut"];
和
anim.keyPath = @"transform.rotation.x";
据我所知,keyPath是一个链式方法调用。 CALayer的“transform.scale”是aLayer.transform.scale。 “transform”是CALayer的一个属性,“scale”是变换的“属性”。但CALayer中的属性转换是CATransform3D。
CATransform3D中没有名为“scale”或“rotation”的属性。
我的问题是: keyPath如何识别“缩放”和“旋转”?
答案 0 :(得分:25)
Core Animation扩展了KVC,以支持对图层的某些结构类型属性的字段(或伪字段)进行直接寻址。该功能在Core Animation Extensions To Key-Value Coding中进行了描述。
答案 1 :(得分:10)
我不确定,但我找到了一个可能有帮助的解决方案。
IN SWIFT: 您可以使用以下命令代替编写String:
let shadowAnimation = CABasicAnimation(keyPath: #keyPath(CALayer.shadowRadius))
键入CALayer时。 < - autocomplete应该为您提供可用的keyPaths。
我希望这会有所帮助。