我进行了搜索和搜索,似乎无法找到一种方法来使用CoreAnimation为自定义类或第三方框架的对象上的属性设置动画来完成任务。任何人都可以对这个问题有所了解吗?
我的特殊用例是我希望动画一个属性,该属性在每次绘制时作为OpenGL制服传递。
答案 0 :(得分:0)
我发现了两个很好的选择:
PRTween: https://github.com/domhofmann/PRTween
和
POP(Facebook): https://github.com/facebook/pop
PRTween赢得简单......
[PRTween tween:someObject property:@"myProp" from:1 to:0 duration:3];
POP为FB Paper应用程序开发了一些有趣的动画曲线。这对于自定义道具来说有点复杂,但是为了进一步挖掘你会给你更大的灵活性:
POPSpringAnimation *anim = [POPSpringAnimation animation];
prop = [POPAnimatableProperty propertyWithName:@"com.foo.radio.volume" initializer:^(POPMutableAnimatableProperty *prop) {
// read value
prop.readBlock = ^(id obj, CGFloat values[]) {
values[0] = [obj volume];
};
// write value
prop.writeBlock = ^(id obj, const CGFloat values[]) {
[obj setVolume:values[0]];
};
// dynamics threshold
prop.threshold = 0.01;
}];
anim.property = prop;