深度解析iPhone开发动画过渡过程

移动开发 iOS
本文介绍的是深度解析iPhone开发动画过渡过程,详细的介绍了iphone开发中动画的操作,先来看内容。

深度解析iPhone开发动画过渡过程,主要讲解了iphone开发中动画过度的相关内容,不多说,先来看详细内容。

1:首先获取当前的图形上下文:

  1. CGContextRef context = UIGraphicsGetCurrentContext(); 

2:接着设置一些动画属性用于开始动画:

  1. [UIView beginAnimations:nil context:context];  
  2. [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  
  3. [UIView setAnimationDuration:1.0]; 

3:然后设置想要过度的对象的最终状态.

  1. [big setFrame:SMALLRECT];  
  2. [big setAlpha:0.5];  
  3. [little setFrame:BIGRECT];  
  4. [little setAlpha:1.0]; 

4:最后提交动画,这样一个动画就会自动生成了

  1. [UIView commitAnimations]; 

其中,setAnimationCurve是设置动画的方式,他有下面集中方式:

  1. UIViewAnimationCurveEaseInOut  //开始和结束时动画效果比较慢  
  2. UIViewAnimationCurveEaseIn       //开始动画效果比较慢  
  3. UIViewAnimationCurveEaseOut     //结束动画效果比较慢  
  4. UIViewAnimationCurveLinear         //平滑的动画效果 

而setAnimationDuration则是设置动画的持续时间.

下面是两个UIView之间的动画过度

  1.        // Start Animation Block  
  2. //CGContextRef context = UIGraphicsGetCurrentContext();  
  3. CGContextRef context = nil;  
  4. [UIView beginAnimations:nil context:context];  
  5. [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:[self superview] cache:YES];  
  6. [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  
  7. [UIView setAnimationDuration:1.0];  
  8. // Animations  
  9. [[self superview] exchangeSubviewAtIndex:0 withSubviewAtIndex:1];  
  10. // Commit Animation Block  
  11. [UIView commitAnimations]; 

页面之间的过度主要依靠UIView setAnimationTransition: forView: cache: 这个方法以及 exchangeSubviewAtIndex:withSubviewAtIndex:
前者通过UIView静态方法设置过度的动画种类,后者实现真正的过度函数掉用.种类有如下五种:

  1. typedef enum {  
  2.     UIViewAnimationTransitionNone,  
  3.     UIViewAnimationTransitionFlipFromLeft,  
  4.     UIViewAnimationTransitionFlipFromRight,  
  5.     UIViewAnimationTransitionCurlUp,  
  6.     UIViewAnimationTransitionCurlDown,  
  7. } UIViewAnimationTransition; 

除了这种简单的动画方式外,其实还有一种利用QuartzCore来做过度动画.不同的地方在于,这个过度动画作用于层,换句话说,他动画直接做用于整个UIView,而不像UIView的动画,可以作用于UIView局部或本身.当UIView作用与本身时,实际上也就相当于是对层的动画了.

  1. CATransition *animation = [CATransition animation];  
  2. [animation setDelegate:self];  
  3. [animation setDuration:1.0f];  
  4. [animation setTimingFunction:UIViewAnimationCurveEaseInOut];  
  5. [animation setType: kCATransitionMoveIn];  
  6. [animation setSubtype: kCATransitionFromBottom];  
  7. [[self superview] exchangeSubviewAtIndex:0 withSubviewAtIndex:1];  
  8. [[[self superview] layer] addAnimation:animation forKey:@"transitionViewAnimation"];  

setDuration:和UIView中的动画效果一样,持续时间.setTimingFunction:是动画的种类,和UIView一样,比如匀速动画,快速开始结束等.setType:是指定动画的类型,他有: kCATransitionFade (淡入淡出来补给动画)kCATransitionMoveIn(从一个方向覆盖的方式来补给动画)kCATransitionPush(推送的方式来补给动画)kCATransitionReveal(一个试图展现出另外另外一个试图的方式)当除了第一种方式外(淡入淡出),可以通过setSubType:来制定动画的方向(因为这些动画都是直接着用于层的,所以相当于只有试图间的切换过渡).动画方向有4个:kCATransitionFromRightkCATransitionFromLeftkCATransitionFromTopkCATransitionFromBotto

小结:深度解析iPhone开发动画过渡过程的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-12 14:54:45

iPhone委托

2011-06-07 17:16:47

iPhone 数据

2021-08-03 09:00:00

物联网工业4.0技术

2011-07-29 15:09:48

iPhone Category

2011-08-02 18:07:03

iPhone 内省 Cocoa

2011-12-25 21:00:30

iPhone

2021-10-12 11:07:33

动画深度Android

2011-08-12 11:23:47

iPhone窗口视图

2011-07-18 14:23:40

iPhone 多任务

2011-07-29 14:18:46

iPhone开发 动画

2011-08-19 14:47:48

iPhoneiPhone4iPad

2011-07-27 17:02:12

Xcode iPhone 单元测试

2011-08-19 13:45:14

iPhone应用iPhone OS数据

2022-01-16 12:10:18

腾讯动画组件PAG

2011-08-15 13:50:06

IPhone开发UIView动画

2011-08-12 14:04:53

iPhone动画

2011-07-25 17:13:31

iPhone 图形 动画

2010-02-22 17:20:45

Python开发

2011-07-27 17:24:31

iPhone NSXMLParse XML

2009-07-30 21:15:43

点赞
收藏

51CTO技术栈公众号