Sai*_*ing 21 iphone calayer cabasicanimation
我找到一些像这样的代码:
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"];
Run Code Online (Sandbox Code Playgroud)
和
anim.keyPath = @"transform.rotation.x";
Run Code Online (Sandbox Code Playgroud)
据我所知,keyPath是一个链式方法调用.CALayer的"transform.scale"是aLayer.transform.scale."transform"是CALayer的一个属性,"scale"是变换的"属性".但CALayer中的属性转换是CATransform3D.
CATransform3D中没有名为"scale"或"rotation"的属性.
我的问题是:keyPath如何识别"缩放"和"轮换"?
Nik*_*uhe 25
Core Animation扩展了KVC,以支持对图层的某些结构类型属性的字段(或伪字段)进行直接寻址.Core Animation Extensions To Key-Value Coding中描述了该功能.
小智 11
我不确定,但我找到了一个可能有帮助的解决方案.
IN SWIFT: 您可以使用以下代码而不是编写String:
let shadowAnimation = CABasicAnimation(keyPath: #keyPath(CALayer.shadowRadius))
Run Code Online (Sandbox Code Playgroud)
当您键入CALayer时.< - autocomplete应该为您提供可用的keyPaths.
我希望这有帮助.
| 归档时间: |
|
| 查看次数: |
21485 次 |
| 最近记录: |