iOS中動(dòng)畫的類型

一. 實(shí)現(xiàn)動(dòng)畫基本步驟

  • 創(chuàng)建動(dòng)畫對(duì)象
  • 設(shè)置動(dòng)畫屬性
  • 把動(dòng)畫對(duì)象添加到某個(gè) CALayer 對(duì)象上
  • 需要停止動(dòng)畫:可以調(diào)用 remove 方法移除動(dòng)畫

二. iOS 中核心動(dòng)畫種類

  1. 基本動(dòng)畫(CABasicAnimation)

    • 平移動(dòng)畫
    CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"position"];
    // 動(dòng)畫持續(xù)1秒
    anim.duration = 1;
    // 因?yàn)镃GPoint是結(jié)構(gòu)體咒林,所以用NSValue包裝成一個(gè)OC對(duì)
    anim.fromValue = [NSValue valueWithCGPoint:CGPointMake(50, 50)];
    anim.toValue = [NSValue valueWithCGPoint:CGPointMake(100, 100)];
    [layer addAnimation:anim forKey:@"MyAnim"];
    // 通過MyAnim可以取回相應(yīng)的動(dòng)畫對(duì)象熬拒,比如用來中途取消動(dòng)畫
    
    • 縮放動(dòng)畫
    CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform"];
    

// 沒有設(shè)置fromValue說明當(dāng)前狀態(tài)作為初始值
// 寬度(width)變?yōu)樵瓉淼?倍,高度(height)變?yōu)樵瓉淼?.5倍
anim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(2, 1.5, 1)];
anim.duration = 1;
[layer addAnimation:anim forKey:nil];

```

* 旋轉(zhuǎn)動(dòng)畫
```objc
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform"];
// 這里是以向量(1, 1, 0)為軸映九,旋轉(zhuǎn)π/2弧度(90°)
// 如果只是在手機(jī)平面上旋轉(zhuǎn)梦湘,就設(shè)置向量為(0, 0, 1),即Z軸
anim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2, 1, 1, 0)];
anim.duration = 1;
[layer addAnimation:anim forKey:nil];

// 1. 創(chuàng)建核心動(dòng)畫的對(duì)象
CABasicAnimation* anim = [[CABasicAnimation alloc] init];
// 2. 設(shè)置核心動(dòng)畫的操作
anim.keyPath = @"transform.rotation";
// 從哪
anim.fromValue = @(100);
// 到哪
anim.toValue = @(300);
anim.byValue = @(M_PI_4);
// 動(dòng)畫完畢以后不回到原來的位置
anim.fillMode = kCAFillModeForwards;
anim.removedOnCompletion = NO;
// 3. 添加到layer上
[self.layer addAnimation:anim forKey:nil];

```
  1. 關(guān)鍵幀動(dòng)畫(CAKeyframeAnimation)

    • 關(guān)鍵幀動(dòng)畫:有兩種形式
      • 第一種是values的形式,
      • 第二種是path路徑的形式;
  2. 組動(dòng)畫(CAAnimationGroup)

    • 組動(dòng)畫: CAAnimation的子類,可以保存一組動(dòng)畫對(duì)象捌议,將CAAnimationGroup對(duì)象加入層后哼拔,組中所有動(dòng)畫對(duì)象可以同時(shí)并發(fā)運(yùn)行
    • 屬性解析:animations:用來保存一組動(dòng)畫對(duì)象的NSArray
      默認(rèn)情況下,一組動(dòng)畫對(duì)象是同時(shí)運(yùn)行的瓣颅,也可以通過設(shè)置動(dòng)畫對(duì)象的beginTime屬性來更改動(dòng)畫的開始時(shí)間
  3. 轉(zhuǎn)場(chǎng)動(dòng)畫(CATransition)

    • 轉(zhuǎn)場(chǎng)動(dòng)畫: CAAnimation的子類倦逐,用于做轉(zhuǎn)場(chǎng)動(dòng)畫,能夠?yàn)閷犹峁┮瞥銎聊缓鸵迫肫聊坏膭?dòng)畫效果

除了核心動(dòng)畫之外另外還有

  • 圖片幀動(dòng)畫:具體如下UIImageView可以讓一系列的圖片在特定的時(shí)間內(nèi)按順序顯示

  • 相關(guān)屬性解析:

    • animationImages:要顯示的圖片(一個(gè)裝著UIImage的NSArray)
    • animationDuration:完整地顯示一次animationImages中的所有圖片所需的時(shí)間
    • animationRepeatCount:動(dòng)畫的執(zhí)行次數(shù)(默認(rèn)為0宫补,代表無限循環(huán))相關(guān)方法解析:
// 動(dòng)畫的一些操作
- (void)startAnimating; 開始動(dòng)畫
- (void)stopAnimating;  停止動(dòng)畫
- (BOOL)isAnimating;  是否正在運(yùn)行動(dòng)畫

未完待續(xù).........

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末檬姥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子粉怕,更是在濱河造成了極大的恐慌健民,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贫贝,死亡現(xiàn)場(chǎng)離奇詭異秉犹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)稚晚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門崇堵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人客燕,你說我怎么就攤上這事鸳劳。” “怎么了也搓?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵赏廓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我还绘,道長(zhǎng)楚昭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任拍顷,我火速辦了婚禮抚太,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昔案。我一直安慰自己尿贫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布踏揣。 她就那樣靜靜地躺著庆亡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捞稿。 梳的紋絲不亂的頭發(fā)上又谋,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天拼缝,我揣著相機(jī)與錄音,去河邊找鬼彰亥。 笑死咧七,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的任斋。 我是一名探鬼主播继阻,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼废酷!你這毒婦竟也來了瘟檩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤澈蟆,失蹤者是張志新(化名)和其女友劉穎墨辛,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丰介,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡背蟆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哮幢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡志珍,死狀恐怖橙垢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伦糯,我是刑警寧澤柜某,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站敛纲,受9級(jí)特大地震影響喂击,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜淤翔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一翰绊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旁壮,春花似錦监嗜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至麦撵,卻和暖如春刽肠,著一層夾襖步出監(jiān)牢的瞬間溃肪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工音五, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惫撰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓放仗,卻偏偏與公主長(zhǎng)得像润绎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诞挨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 在iOS中隨處都可以看到絢麗的動(dòng)畫效果莉撇,實(shí)現(xiàn)這些動(dòng)畫的過程并不復(fù)雜,今天將帶大家一窺ios動(dòng)畫全貌惶傻。在這里你可以看...
    每天刷兩次牙閱讀 8,489評(píng)論 6 30
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫效果棍郎,實(shí)現(xiàn)這些動(dòng)畫的過程并不復(fù)雜,今天將帶大家一窺iOS動(dòng)畫全貌银室。在這里你可以看...
    F麥子閱讀 5,111評(píng)論 5 13
  • IOS動(dòng)畫+轉(zhuǎn)場(chǎng)動(dòng)畫 #import "ViewController.h" #import "secondView...
    iOS小開發(fā)閱讀 909評(píng)論 0 1
  • iOS動(dòng)畫篇之CoreAnimation動(dòng)畫 9月 22, 2016發(fā)布在Objective-C App如果想被大...
    白水灬煮一切閱讀 2,030評(píng)論 0 0
  • 在iOS實(shí)際開發(fā)中常用的動(dòng)畫無非是以下四種:UIView動(dòng)畫涂佃,核心動(dòng)畫,幀動(dòng)畫蜈敢,自定義轉(zhuǎn)場(chǎng)動(dòng)畫辜荠。 1.UIView...
    請(qǐng)叫我周小帥閱讀 3,097評(píng)論 1 23