我找到了一些类似这样的代码:
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”是transform的“属性”。但是CALayer中的属性转换是CATransform3D。
在CATransform3D中没有名为"scale“或"rotation”的属性。
我的问题是: keyPath是如何识别“缩放”和“旋转”的?
发布于 2011-03-28 21:37:54
Core Animation扩展了KVC以支持直接寻址某些层的结构类型属性的字段(或伪字段)。该功能在Core Animation Extensions To Key-Value Coding中进行了描述。
https://stackoverflow.com/questions/5459673
复制相似问题