- - (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];
- }
-
CATransition比较强大,一般可以使用CATransition模拟UIView的动画。
/* 过渡效果
fade //交叉淡化过渡(不支持过渡方向)
push //新视图把旧视图推出去
moveIn //新视图移到旧视图上面
reveal //将旧视图移开,显示下面的新视图
cube //立方体翻滚效果
oglFlip //上下左右翻转效果
suckEffect //收缩效果,如一块布被抽走(不支持过渡方向)
rippleEffect //滴水效果(不支持过渡方向)
pageCurl //向上翻页效果
pageUnCurl //向下翻页效果
cameraIrisHollowOpen //相机镜头打开效果(不支持过渡方向)
cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
*/
/* 过渡方向
fromRight;
fromLeft;
fromTop;
fromBottom;
*/
CATransition *animation = [CATransition animation];
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.layer addAnimation:animation forKey: @" animation "];