1
我已經搜索和搜索,似乎無法找到任何一種方法來使用CoreAnimation動畫自定義類的對象上的屬性或第三方框架來完成任務。任何人都可以談談這個問題?任意對象和屬性的非CALayer動畫框架
我特別的用例是我想動畫一個屬性,每個繪製時都會以OpenGL制服的形式傳遞。
我已經搜索和搜索,似乎無法找到任何一種方法來使用CoreAnimation動畫自定義類的對象上的屬性或第三方框架來完成任務。任何人都可以談談這個問題?任意對象和屬性的非CALayer動畫框架
我特別的用例是我想動畫一個屬性,每個繪製時都會以OpenGL制服的形式傳遞。
兩個細選項我發現:
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;
自定義子類是什麼?你想要哪些屬性動畫? 「OpenGL制服」是什麼意思?爲什麼不CALayer?這是_is_如何動畫UIView/CALayer的屬性。 – bshirley 2012-01-10 18:00:31
對不起,我感到困惑。回答你的問題:NSObject的一個子類;我創建的任意屬性; OpenGLES 2 GLSL着色器在使用glUniform1f()進行繪製之前設置的統一變量。可以爲CALayer子類上的自定義屬性設置動畫效果嗎?無論如何,我通過一個委託來控制一個通用的GLKView,所以我實際上沒有辦法在這個層上創建一個新的屬性,除非我做一些冗長的重構。我設想了一個沿着[ANAnimationClass animiationWithObject:someObject forKeyPath:「someproperty」startValue/timingFunction等]行的API – 2012-01-11 09:36:11
「可以在CALayer子類上設置動畫定製屬性」?當然。這是CALayer構建方式的主要優點之一。 (請參閱我的解釋:http://www.apeth.com/iOSBook/ch17.html#_making_a_property_animatable)然而,這並不意味着它可以爲_this_屬性完成,其性質我完全沒有理解。 – matt 2014-05-30 17:54:21