二細かいオプション:
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ペーパーアプリ用に開発された興味深いアニメーションカーブがあります。カスタム小道具のためにもう少し畳み込まれていますが、それ以上の柔軟性を提供します:
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;
カスタムサブクラスは何ですか?どのプロパティを正確にアニメートしたいですか? "OpenGL uniform"とはどういう意味ですか?どうしてCALayer?それはUIView/CALayerのプロパティをアニメーション化する方法です。 – bshirley
混乱して申し訳ありません。あなたの質問に答える:NSObjectのサブクラス。私が作成した任意のプロパティ。 OpenGLES 2 glUniform1f()で描画する前に設定したGLSLシェーダ一様変数。 CALayerサブクラスでカスタムプロパティをアニメートできますか?それにもかかわらず、デリゲートを介して一般的なGLKViewを制御しているので、面倒なリファクタリングを行わない限り、レイヤに新しいプロパティを作成する手段はありません。私は[ANAnimationClass animiationWithObject:someObject forKeyPath: "someproperty" startValue/timingFunctionなど]の行に沿ってAPIを構想しています。 –
"CALayerサブクラスでカスタムプロパティをアニメートできますか?確かに。これは、CALayerの構築方法の主な利点の1つです。 (私の説明はここにある:http://www.apeth.com/iOSBook/ch17.html#_making_a_property_animatableを参照してください)しかし、それは私が全くしていない性質のために行うことができるということを意味するものではありませんわかる。 – matt