iOS 動畫實現

來源:互聯網
上載者:User
 轉載   http://blog.163.com/wangy_0223/blog/static/45014661201222694654895/

需要在frameworks中添加QuartzCore.framework在介面程式中加上標頭檔   #import <QuartzCore/QuartzCore.h>/*好多動畫效果*/    CATransition *transition = [CATransition animation];    transition.duration = 1.0f;         /* 間隔時間*/    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; /* 動畫的開始與結束的快慢*/    transition.type = @"rippleEffect"; /* 各種動畫效果*///@"cube" @"moveIn" @"reveal" @"fade"(default) @"pageCurl" @"pageUnCurl" @"suckEffect" @"rippleEffect" @"oglFlip"    transition.subtype = kCATransitionFromRight;   /* 動畫方向*/    transition.delegate = self;    [navigationController.view.layer /* 在想添加CA動畫的VIEW的層上添加此代碼*/addAnimation:transition forKey:nil];//另外加一句,transition在申請時用的是+方法,所以不需要自己進行release ,在層上添加後不要認為retainCount已經+1,就還要release//實際上CATransition類中還有一個屬性是removedOnCompletion,是此動畫執行完後會自動remove,預設值為true實現iphone漂亮的動畫效果主要有兩種方法,一種是UIView層面的,一種是使用CATransition進行更低層次的控制,第一種是UIView,UIView方式可能在低層也是使用CATransition進行了封裝,它只能用於一些簡單的、常用的效果展現,這裡寫一個常用的範例程式碼,供大家參考。[UIView beginAnimations:@"Curl"context:nil];//動畫開始[UIView setAnimationDuration:0.75];[UIView setAnimationDelegate:self];[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:myview cache:YES];[myview removeFromSuperview];[UIView commitAnimations];第二種方式相對複雜一些,但如果更好的進行控制,還是使用這種方法吧,基本使用方法可以看一下如下例子:CATransition *animation = [CATransition animation];[animation setDuration:1.25f];[animation setTimingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseIn]];[animation setType:kCATransitionReveal];[animation setSubtype: kCATransitionFromBottom];[self.view.layer addAnimation:animation forKey:@"Reveal"];這裡使用了setType與setSubtype組合,這使用個比較保險,因為他的參數就是官方API裡定義的,他們的參數說明可以參考如下:setType:可以返回四種類型:kCATransitionFade淡出kCATransitionMoveIn覆蓋原圖kCATransitionPush推出kCATransitionReveal底部顯出來setSubtype:也可以有四種類型:kCATransitionFromRight;kCATransitionFromLeft(預設值)kCATransitionFromTop;kCATransitionFromBottom還有一種設定動畫類型的方法,不用setSubtype,只用setType[animation setType:@"suckEffect"];這裡的suckEffect就是效果名稱,可以用的效果主要有:pageCurl   向上翻一頁pageUnCurl 向下翻一頁rippleEffect 滴水效果suckEffect 收縮效果,如一塊布被抽走cube 立方體效果oglFlip 上下翻轉效果

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.