iphone的动画效果类型及实现方法

转载 2012年03月27日 17:04:50

iphone的动画效果类型及实现方法

 

 

实现iphone漂亮的动画效果主要有两种方法,

   一种是UIView层面的,

  一种是使用CATransition进行更低层次的控制,

 

      第一种是UIView,UIView方式可能在低层也是使用CATransition进行了封装,它只能用于一些简单的、常用的效果展现,这里写一个常用的示例代码,供大家参考。

 

Cpp代码 
  1.  [UIView beginAnimations:@"Curl"context:nil];//动画开始   
  2.  [UIView setAnimationDuration:0.75];   
  3.  [UIView setAnimationDelegate:self];  
  4.  [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:myview cache:YES];   
  5. [myview removeFromSuperview];   
  6. [UIView commitAnimations];  

 

 

       第二种方式相对复杂一些,但如果更好的进行控制,还是使用这种方法吧,

基本使用方法可以看一下如下例子:

 

Cpp代码 
  1. CATransition *animation = [CATransition animation];  
  2. [animation setDuration:1.25f];   
  3. [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];   
  4. [animation setType:kCATransitionReveal];  
  5. [animation setSubtype: kCATransitionFromBottom];  
  6. [self.view.layer addAnimation:animation forKey:@"Reveal"];  

 

这里使用了setType与setSubtype组合,这使用个比较保险,因为他的参数就是官方API里定义的,他们的参数说明可以参考如下:

 

[animation setType:@"suckEffect"];

这里的suckEffect就是效果名称,可以用的效果主要有:

Cpp代码 
  1. pageCurl 向上翻一页   
  2.   
  3. pageUnCurl 向下翻一页   
  4.   
  5. rippleEffect 滴水效果   
  6.   
  7. suckEffect 收缩效果,如一块布被抽走   
  8.   
  9. cube 立方体效果   
  10.   
  11. oglFlip 上下翻转效果   

 

最后再给出一种常用代码供大家参考。

Cpp代码 
  1. // Curl the image up or down  
  2.   
  3.  CATransition *animation = [CATransition animation];  
  4.  [animation setDuration:0.35];  
  5.  [animation setTimingFunction:UIViewAnimationCurveEaseInOut];  
  6.   
  7.  if (!curled)  
  8.    {   
  9.        //animation.type = @"mapCurl";   
  10.          animation.type = @"pageCurl";  
  11.          animation.fillMode = kCAFillModeForwards;   
  12.          animation.endProgress = 0.99;  
  13.     } else {   
  14.       //animation.type = @"mapUnCurl";  
  15.         animation.type = @"pageUnCurl";  
  16.         animation.fillMode = kCAFillModeBackwards; animation.startProgress = 0.01;   
  17.  }   
  18.   
  19. [animation setRemovedOnCompletion:NO];  
  20. [view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];   
  21. [view addAnimation:animation forKey"pageCurlAnimation"];   
  22. // Disable user interaction where necessary   
  23.   
  24. if (!curled) {   
  25. }   
  26.   
  27.  else {   
  28.   
  29.  }   
  30.   
  31. curled = !curled;  

iPhone的动画效果类型及实现方法

实现iphone漂亮的动画效果主要有两种方法,一种是UIView层面的,一种是使用CATransition进行更低层次的控制, 第一种是UIView,UIView方式可能在低层也是使用CATrans...
  • Matthew_Chen1008
  • Matthew_Chen1008
  • 2013年01月25日 10:16
  • 228

iPhone的动画效果类型及实现方法

实现iphone漂亮的动画效果主要有两种方法,一种是UIView层面的,一种是使用CATransition进行更低层次的控制, 第一种是UIView,UIView方式可能在低层也是使用CATrans...
  • wangkai598
  • wangkai598
  • 2013年12月05日 14:37
  • 410

ECLIPSE @OVERRIDE报错解决 必须覆盖超类方法

原文地址:http://justdo2008.javaeye.com/blog/433579   我想这个问题肯定困扰了很多人,我也不例外。新公司用的东西多多少少会与我们以前公司的有所...
  • cqy13368060030
  • cqy13368060030
  • 2015年08月16日 00:23
  • 1827

ReactNative使用支付宝支付报错:方法不会覆盖或实现超类型的方法

根据项目需求需要集成支付宝支付 我使用的是 react-native-yunpeng-alipay 当根据文档在Android上集成的时候,运行时报错:如下: /Users/abysskitty...
  • sinat_30949835
  • sinat_30949835
  • 2017年12月26日 15:46
  • 1798

css3 iphone实现页面

body{ background-color:#aaa; } .iphone{ width:300px; height:600px; margin:50px auto;...
  • luman1991
  • luman1991
  • 2017年01月31日 11:40
  • 219

如何判断iphone设备型号和ios系统版本号

判断IOS设备类型一般会使用 //设备名称 return [UIDevice currentDevice].name; //设备型号,只可得到是何设备,无法得到是第几代设备 return [UI...
  • u010810493
  • u010810493
  • 2014年03月21日 16:45
  • 3178

IPhone开发工具篇-charles proxy的使用

软件Charle 是一个HTTP代理服务器,HTTP监视器,反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信.这些包括request, response现HTTP headers...
  • wildfireli
  • wildfireli
  • 2014年02月11日 17:35
  • 2063

iterator类的方法说明

迭代对于我们搞Java的来说绝对不陌生。我们常常使用JDK提供的迭代接口进行Java集合的迭代。 [java] view plain copy  print? ...
  • qq_15037231
  • qq_15037231
  • 2016年04月22日 20:49
  • 1155

[贝聊科技]贝聊 iPhone X 适配实战

@NewPan 贝聊科技 iOS 菜鸟工程师这款为天猫定制的 iPhone,你买了吗?由于没摸过真机,所以严格意义上来说,这篇文章应该有一个更加接地气的名字:“模拟器适配实战”。01.适配原则由于这篇...
  • fzhlee
  • fzhlee
  • 2017年11月06日 10:40
  • 694

聊一聊xcode中的iphone模拟器cpu与真机cpu的区别

简述 ARM处理器,因其功耗低和尺寸小而闻名,几乎所有的手机处理器都基于ARM,苹果当然也不例外。 armv6、armv7、armv7s、arm64都是ARM处理器的指令集,所有指令集原则上都...
  • u014773226
  • u014773226
  • 2016年10月28日 15:13
  • 1294
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iphone的动画效果类型及实现方法
举报原因:
原因补充:

(最多只允许输入30个字)