`
844604778
  • 浏览: 549860 次
文章分类
社区版块
存档分类
最新评论

CATransition 的初级应用及type属…

 
阅读更多

需要在frameworks中添加QuartzCore.framework

<wbr></wbr>

在接口程序中加上头文件<wbr><wbr> #import &lt;QuartzCore/QuartzCore.h&gt;</wbr></wbr>

<wbr></wbr>

<wbr><wbr><wbr> CATransition *transition = [CATransition animation];<br><wbr><wbr><wbr> transition.duration = 1.0f;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr> transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEa<wbr>seInEaseOut];<br><wbr><wbr><wbr> transition.type = @"rippleEffect";<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

//@"cube" @"moveIn" @"reveal" @"fade"(default) @"pageCurl" @"pageUnCurl" @"suckEffect" @"rippleEffect" @"oglFlip"

<wbr><wbr><wbr> transition.subtype = kCATransitionFromRight;<wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr> transition.delegate = self;<br><wbr><wbr><wbr> [navigationController.view.layer<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
addAnimation:transition forKey:nil];

<wbr></wbr>

//另外加一句,transition在申请时用的是+方法,所以不需要自己进行release ,在层上添加后不要认为retainCount已经+1,就还要release

//实际上CATransition类中还有一个属性是removedOnCompletion,是此动画执行完后会自动remove,默认值为true



CATransition的type属性

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

<wbr></wbr>

[c]<wbr><a href="http://blog.csdn.net/silva_831/article/details/7377668#" title="view plain">view plain</a><a href="http://blog.csdn.net/silva_831/article/details/7377668#" title="copy">copy</a> <div> <embed allowscriptaccess="never" allownetworking="internal" autostart="0" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#FFFFFF" width="18" height="18" name="ZeroClipboardMovie_1" align="middle" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&amp;width=18&amp;height=18" wmode="transparent"></embed> </div> </wbr>
  1. <strong>setType<span<wbr>style=</wbr>"color:#339933">:</span>可以返回四种类型:</strong><wbr><wbr></wbr></wbr>
  2. kCATransitionFade淡出<wbr><wbr></wbr></wbr>
  3. kCATransitionMoveIn覆盖原图<wbr><wbr></wbr></wbr>
  4. kCATransitionPush推出<wbr><wbr></wbr></wbr>
  5. kCATransitionReveal底部显出来<wbr><wbr></wbr></wbr>
  6. <strong>setSubtype<span<wbr>style=<span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"color:#339933"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">&gt;:&lt;/span&gt;也可以有四种类型:&lt;/strong&gt;<wbr><wbr></wbr></wbr></span></wbr>
  7. kCATransitionFromRight;<wbr><wbr></wbr></wbr>
  8. kCATransitionFromLeft<span<wbr>style=<span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"color:#009900"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">&gt;(&lt;/span&gt;默认值&lt;span<wbr>style=</wbr></span><span style="margin: 0px; padding: 0px; border: none; color: blue; background-color: inherit;">"color:#009900"</span><span style="margin: 0px; padding: 0px; border: none; background-color: inherit;">&gt;)&lt;/span&gt;<wbr><wbr></wbr></wbr></span></wbr>
  9. kCATransitionFromTop;<wbr><wbr></wbr></wbr>
  10. kCATransitionFromBottom<wbr><wbr></wbr></wbr>

<wbr></wbr>

还有一种设置动画类型的方法,不用setSubtype,只用setType

<wbr></wbr>

[c]<wbr><a href="http://blog.csdn.net/silva_831/article/details/7377668#" title="view plain">view plain</a><a href="http://blog.csdn.net/silva_831/article/details/7377668#" title="copy">copy</a> <div> <embed allowscriptaccess="never" allownetworking="internal" autostart="0" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#FFFFFF" width="18" height="18" name="ZeroClipboardMovie_2" align="middle" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&amp;width=18&amp;height=18" wmode="transparent"></embed> </div> </wbr>
  1. animation.type=@"pageCurl";<wbr><wbr></wbr></wbr>
[c]<wbr><a href="http://blog.csdn.net/silva_831/article/details/7377668#" title="view plain">view plain</a><a href="http://blog.csdn.net/silva_831/article/details/7377668#" title="copy">copy</a> <div> <embed allowscriptaccess="never" allownetworking="internal" autostart="0" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#FFFFFF" width="18" height="18" name="ZeroClipboardMovie_3" align="middle" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=3&amp;width=18&amp;height=18" wmode="transparent"></embed> </div> </wbr>
  1. pageCurl<wbr><wbr><wbr>向上翻一页<wbr><wbr></wbr></wbr></wbr></wbr></wbr>
  2. pageUnCurl<wbr>向下翻一页<wbr><wbr></wbr></wbr></wbr>
  3. rippleEffect<wbr>滴水效果<wbr><wbr></wbr></wbr></wbr>
  4. suckEffect<wbr>收缩效果,如一块布被抽走<wbr><wbr></wbr></wbr></wbr>
  5. cube<wbr>立方体效果<wbr><wbr></wbr></wbr></wbr>
  6. oglFlip<wbr>上下翻转效果<wbr><wbr></wbr></wbr></wbr>

<wbr></wbr>


<wbr><wbr> 示例</wbr></wbr>

CATransition *animation=[CATransition animation];
<wbr>animation.delegate=self;<br><wbr>animation.duration=1.0f;</wbr></wbr>

animation.timingFunction=UIViewAnimationCurveEase<wbr>InOut;</wbr>

animation.type=kCATransitionMoveIn;
animation.subtype=kCATransitionFromTop;
<wbr>[myView.layer addAnimation:animation forKey:@"move in"];</wbr>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics