UIViewAnimation动画与Core Animation的CATransition类动画

- (void)leftClick {   

  

    [UIView beginAnimations:nil context:nil];  

    //display mode, slow at beginning and end  

    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  

    //动画时间  

    [UIView setAnimationDuration:1.0f];  

    //使用当前正在运行的状态开始下一段动画  

    [UIView setAnimationBeginsFromCurrentState:YES];  

    //给视图添加过渡效果  

    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:imageView cache:YES];  

    [UIView commitAnimations];  

}  

  

- (void)rightClick {  

      

    [UIView beginAnimations:nil context:nil];  

    //display mode, slow at beginning and end  

    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  

    //动画时间  

    [UIView setAnimationDuration:1.0f];  

    //使用当前正在运行的状态开始下一段动画  

    [UIView setAnimationBeginsFromCurrentState:YES];  

    //给视图添加过渡效果  

    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:imageView cache:YES];  

    [UIView commitAnimations];  

      

}  

  

- (void)upClick {   

      

    [UIView beginAnimations:nil context:nil];  

    //display mode, slow at beginning and end  

    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  

    //动画时间  

    [UIView setAnimationDuration:1.0f];  

    //使用当前正在运行的状态开始下一段动画  

    [UIView setAnimationBeginsFromCurrentState:YES];  

    //给视图添加过渡效果  

    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:imageView cache:YES];  

    [UIView commitAnimations];  

}  

- (void)downClick {   

      

    [UIView beginAnimations:nil context:nil];  

    //display mode, slow at beginning and end  

    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  

    //动画时间  

    [UIView setAnimationDuration:1.0f];  

    //使用当前正在运行的状态开始下一段动画  

    [UIView setAnimationBeginsFromCurrentState:YES];  

    //给视图添加过渡效果  

    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:imageView cache:YES];  

    [UIView commitAnimations];  

}  

  

/*    

 CATransition的type属性 

  

 1.#define定义的常量 

     kCATransitionFade   交叉淡化过渡 

     kCATransitionMoveIn 新视图移到旧视图上面 

     kCATransitionPush   新视图把旧视图推出去 

     kCATransitionReveal 将旧视图移开,显示下面的新视图 

  

 2.用字符串表示 

     pageCurl            向上翻一页 

     pageUnCurl          向下翻一页 

     rippleEffect        滴水效果 

     suckEffect          收缩效果,如一块布被抽走 

     cube                立方体效果 

     oglFlip             上下翻转效果   

*/  

- (void)MyCAnimation1 {   

      

    CATransition *animation = [CATransition animation];  

    //动画时间  

    animation.duration = 1.0f;  

    //display mode, slow at beginning and end  

    animation.timingFunction = UIViewAnimationCurveEaseInOut;  

    //过渡效果  

    animation.type = kCATransitionMoveIn;  

    //过渡方向  

    animation.subtype = kCATransitionFromTop;  

    //添加动画  

    [imageView.layer addAnimation:animation forKey:nil];  

}  

  

- (void)MyCAnimation2 {   

      

    CATransition *animation = [CATransition animation];  

    //动画时间  

    animation.duration = 1.0f;  

    //display mode, slow at beginning and end  

    animation.timingFunction = UIViewAnimationCurveEaseInOut;  

    //在动画执行完时是否被移除  

    animation.removedOnCompletion = NO;  

    //过渡效果  

    animation.type = @"pageCurl";  

    //过渡方向  

    animation.subtype = kCATransitionFromRight;  

    //暂时不知,感觉与Progress一起用的,如果不加,Progress好像没有效果  

    animation.fillMode = kCAFillModeForwards;  

    //动画停止(在整体动画的百分比).  

    animation.endProgress = 0.7;  

    [imageView.layer addAnimation:animation forKey:nil];  

}  

  

- (void)MyCAnimation3 {   

      

    CATransition *animation = [CATransition animation];  

    //动画时间  

    animation.duration = 1.0f;  

    //display mode, slow at beginning and end  

    animation.timingFunction = UIViewAnimationCurveEaseInOut;  

    //过渡效果  

    animation.type = @"pageUnCurl";  

    //过渡方向  

    animation.subtype = kCATransitionFromRight;  

    //暂时不知,感觉与Progress一起用的,如果不加,Progress好像没有效果  

    animation.fillMode = kCAFillModeBackwards;  

    //动画开始(在整体动画的百分比).  

    animation.startProgress = 0.3;  

    [imageView.layer addAnimation:animation forKey:nil];  

}  

  

- (void)MyCAnimation4 {   

      

    [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(updateButterfly) userInfo:nil repeats:YES];  

}  

  

- (void)updateButterfly {  

  

    butterflyView.animationDuration = 0.75f;  

    [self.view addSubview:butterflyView];  

    [butterflyView startAnimating];  

    butterflyView.center = [butterflyView randomCenterInView:self.view withInset:10.0f];  

  

}  

posted @ 2012-05-10 10:14  星泥  阅读(251)  评论(0编辑  收藏  举报