CAViewAnimation(动画实现)
, void* context){ CALabel* label = (CALabel*)context; if (label) { label->setRotation(180); }}这个样我们就可以获得Label并改变其属性,当然我们可以传入其他类型的参数。组合动画1同时执行默认情况下,CAView的属性变化写在一对beginAnimations()和commitAnimations()直接,这些所有的变化将是同时执行。2顺序执行方法一:延时利用延时,在上一个Animation时间结束后,再执行下一个Animation。//第一个AnimationCAViewAnimation::beginAnimations("", NULL); CAViewAnimation::setAnimationDuration(1.8); label->setRotation(180); CAViewAnimation::commitAnimations(); //第二个AnimationCAViewAnimation::beginAnimations("", NULL); CAViewAnimation::setAnimationDuration(2.8);CAViewAnimation::setAnimationDelay(1.8);//延时1.8秒 label->setScale(5); CAViewAnimation::commitAnimations();方法二:回调利用Animation的介绍回调CAViewAnimation::beginAnimations("animation1", NULL);//开始 /**CAView属性的改变:缩放、位置、旋转、透明度等等.*例如:label->setScale(5);*/ //结束回调,在Animation结束时调用CAViewAnimation::setAnimationDidStopSelector(this, CAViewAnimation0_selector(FirstViewController::callbackStopAnimation0)); CAViewAnimation::commitAnimations();//结束 在回调函数里实现另一个Animationvoid FirstViewController::callbackStopAnimation0(){ CAViewAnimation::beginAnimations("NextAnimation", NULL);//开始 /* *CAView属性的改变:缩放、位置、旋转、透明度等等. *例如:label->setRotation(180); */ CAViewAnimation::commitAnimations();//结束}CAViewAnimation 方法static void beginAnimations(const std::string& animationID, void* context);返回值:void参数:类型参数名说明const std::string&animationID动画标识符void*context用于回调函数的参数,一般为NULL解释:表示动画开始static void commitAnimations();返回值:void参数:解释:表示动画结束static void setAnimationDuration(float duration);返回值:void参数:类型参数名说明floatduration动画时间解释:动画所用的时间,默认为0.2秒static void setAnimationDelay(float delay);返回值:void参数:类型参数名说明floatdelay延迟时间解释:动画延时多长时间后开始播放,默认为0秒static void setAnimationCurve(const CAViewAnimationCurve& curve);返回值:void参数:类型参数名说明CAViewAnimationCurve&curve曲线解释:设置动画的曲线方式(就是动画的总体变化的时间曲线:开始快最后慢,开始慢最后快,最后慢,均匀线性)typedef enum{ CAViewAnimationCurveLinear = 0, // 均匀线性 CAViewAnimationCurveEaseOut, // 结束时缓慢 CAViewAnimationCurveEaseIn, // 开始时缓慢 CAViewAnimationCurveEaseInOut // 开始和结束时都慢,中间快}CAViewAnimationCurve;static void setAnimationRepeatCount(float repeatCount);返回值:void参数:类型参数名说明floatrepeatCount重复次数解释:动画的重复次数,默认1次static void setAnimationRepeatAutoreverses(bool repeatAutoreverses);返回值:void参数:类型参数名说明boolrepeatAutoreverses动画结束后,是否执行反向动作解释:动画结束后,是否执行反向动作,默认为falsestatic void setAnimationWillStartSelector(CAObject* target, SEL_CAViewAnimation0 selector);返回值:void参数:类型参数名说明CAObject* target目标SEL_CAViewAnimation0selector选择器解释:动画开始时,调用SEL_CAViewAnimation0函数,SEL_CAViewAnimation0函数是一个无参数的函数 static void setAnimationWillStartSelector(CAObject* target, SEL_CAViewAnimation2 selector);返回值:void参数:类型参数名说明CAObject* target目标SEL_CAViewAnimation2selector选择器解释:动画开始时,调用SEL_CAViewAnimation2函数,SEL_CAViewAnimation2函数是一个有两个参数的函数,分别是const std::string& animationID和void* context static void setAnimationDidStopSelector(CAObject* target, SEL_CAViewAnimation0 selector);返回值:void参数:类型参数名说明CAObject*target目标SEL_CAViewAnimation0selector选择器解释:动画结束时,调用SEL_CAViewAnimation0函数,SEL_CAViewAnimation0函数是一个无参数的函数static void setAnimationDidStopSelector(CAObject* target, SEL_CAViewAnimation2 selector);返回值:void参数:类型参数名说明CAObject*target目标SEL_CAViewAnimation2selector选择器解释:动画结束时,调用SEL_CAViewAnimation2函数,SEL_CAViewAnimation2函数是一个有两个参数的函数,分别是const std::string& animationID和void* contextstatic void removeAnimations(const std::string& animationID);返回值:void参数:类型参数名说明const std::string&animationID动画标识符解释:根据animationID移除对应的动画static void removeAnimationsWithView(CAView* view);返回值:void参数:类型参数名说明CAView*viewView动画解释:移除对应的CAView的动画static void setAnimationsEnabled(bool enabled);返回值:void参数:类型参数名说明boolenabled是否启用解释:设置是否禁用动画效 static bool areAnimationsEnabled();返回值:void参数:解释:动画是否被禁用static bool areBeginAnimations();返回值:void参数:解释:动画是否开始执行static bool areBeginAnimationsWithID(const std::string& animationID);返回值:void参数:类型参数名说明const std::string&animationID动画标识符解释:对应的animationID的动画是否开始执行
CAViewAnimation(动画实现)