- -(void)leftClick{
- [UIViewbeginAnimations:nilcontext:nil];
- //displaymode,slowatbeginningandend
- [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
- //动画时间
- [UIViewsetAnimationDuration:1.0f];
- //使用当前正在运行的状态开始下一段动画
- [UIViewsetAnimationBeginsFromCurrentState:YES];
- //给视图添加过渡效果
- [UIViewsetAnimationTransition:UIViewAnimationTransitionFlipFromLeftforView:imageViewcache:YES];
- [UIViewcommitAnimations];
- }
- -(void)rightClick{
- [UIViewbeginAnimations:nilcontext:nil];
- //displaymode,slowatbeginningandend
- [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
- //动画时间
- [UIViewsetAnimationDuration:1.0f];
- //使用当前正在运行的状态开始下一段动画
- [UIViewsetAnimationBeginsFromCurrentState:YES];
- //给视图添加过渡效果
- [UIViewsetAnimationTransition:UIViewAnimationTransitionFlipFromRightforView:imageViewcache:YES];
- [UIViewcommitAnimations];
- }
- -(void)upClick{
- [UIViewbeginAnimations:nilcontext:nil];
- //displaymode,slowatbeginningandend
- [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
- //动画时间
- [UIViewsetAnimationDuration:1.0f];
- //使用当前正在运行的状态开始下一段动画
- [UIViewsetAnimationBeginsFromCurrentState:YES];
- //给视图添加过渡效果
- [UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUpforView:imageViewcache:YES];
- [UIViewcommitAnimations];
- }
- -(void)downClick{
- [UIViewbeginAnimations:nilcontext:nil];
- //displaymode,slowatbeginningandend
- [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
- //动画时间
- [UIViewsetAnimationDuration:1.0f];
- //使用当前正在运行的状态开始下一段动画
- [UIViewsetAnimationBeginsFromCurrentState:YES];
- //给视图添加过渡效果
- [UIViewsetAnimationTransition:UIViewAnimationTransitionCurlDownforView:imageViewcache:YES];
- [UIViewcommitAnimations];
- }
- /*
- CATransition的type属性
- 1.#define定义的常量
- kCATransitionFade交叉淡化过渡
- kCATransitionMoveIn新视图移到旧视图上面
- kCATransitionPush新视图把旧视图推出去
- kCATransitionReveal将旧视图移开,显示下面的新视图
- 2.用字符串表示
- pageCurl向上翻一页
- pageUnCurl向下翻一页
- rippleEffect滴水效果
- suckEffect收缩效果,如一块布被抽走
- cube立方体效果
- oglFlip上下翻转效果
- */
- -(void)MyCAnimation1{
- CATransition*animation=[CATransitionanimation];
- //动画时间
- animation.duration=1.0f;
- //displaymode,slowatbeginningandend
- animation.timingFunction=UIViewAnimationCurveEaseInOut;
- //过渡效果
- animation.type=kCATransitionMoveIn;
- //过渡方向
- animation.subtype=kCATransitionFromTop;
- //添加动画
- [imageView.layeraddAnimation:animationforKey:nil];
- }
- -(void)MyCAnimation2{
- CATransition*animation=[CATransitionanimation];
- //动画时间
- animation.duration=1.0f;
- //displaymode,slowatbeginningandend
- animation.timingFunction=UIViewAnimationCurveEaseInOut;
- //在动画执行完时是否被移除
- animation.removedOnCompletion=NO;
- //过渡效果
- animation.type=@"pageCurl";
- //过渡方向
- animation.subtype=kCATransitionFromRight;
- //暂时不知,感觉与Progress一起用的,如果不加,Progress好像没有效果
- animation.fillMode=kCAFillModeForwards;
- //动画停止(在整体动画的百分比).
- animation.endProgress=0.7;
- [imageView.layeraddAnimation:animationforKey:nil];
- }
- -(void)MyCAnimation3{
- CATransition*animation=[CATransitionanimation];
- //动画时间
- animation.duration=1.0f;
- //displaymode,slowatbeginningandend
- animation.timingFunction=UIViewAnimationCurveEaseInOut;
- //过渡效果
- animation.type=@"pageUnCurl";
- //过渡方向
- animation.subtype=kCATransitionFromRight;
- //暂时不知,感觉与Progress一起用的,如果不加,Progress好像没有效果
- animation.fillMode=kCAFillModeBackwards;
- //动画开始(在整体动画的百分比).
- animation.startProgress=0.3;
- [imageView.layeraddAnimation:animationforKey:nil];
- }
- -(void)MyCAnimation4{
- [NSTimerscheduledTimerWithTimeInterval:3.0ftarget:selfselector:@selector(updateButterfly)userInfo:nilrepeats:YES];
- }
- -(void)updateButterfly{
- butterflyView.animationDuration=0.75f;
- [self.viewaddSubview:butterflyView];
- [butterflyViewstartAnimating];
- butterflyView.center=[butterflyViewrandomCenterInView:self.viewwithInset:10.0f];
- }
-
CATransition比较强大,一般可以使用CATransition模拟UIView的动画。
/*过渡效果
fade//交叉淡化过渡(不支持过渡方向)
push//新视图把旧视图推出去
moveIn//新视图移到旧视图上面
reveal//将旧视图移开,显示下面的新视图
cube//立方体翻滚效果
oglFlip//上下左右翻转效果
suckEffect//收缩效果,如一块布被抽走(不支持过渡方向)
rippleEffect//滴水效果(不支持过渡方向)
pageCurl//向上翻页效果
pageUnCurl//向下翻页效果
cameraIrisHollowOpen//相机镜头打开效果(不支持过渡方向)
cameraIrisHollowClose//相机镜头关上效果(不支持过渡方向)
*/
/*过渡方向
fromRight;
fromLeft;
fromTop;
fromBottom;
*/
CATransition*animation=[CATransitionanimation];
animation.delegate=self;
animation.duration=0.5f;//动画时长
animation.timingFunction=UIViewAnimationCurveEaseInOut;
animation.fillMode=kCAFillModeForwards;
animation.type=@"cube";//过度效果
animation.subtype=@"formLeft";//过渡方向
animation.startProgress=0.0//动画开始起点(在整体动画的百分比)
animation.endProgress=1.0;//动画停止终点(在整体动画的百分比)
animation.removedOnCompletion=NO;
[self.view.layeraddAnimation:animationforKey:@"animation"];