(轉(zhuǎn))iOS那些簡(jiǎn)單的動(dòng)畫(huà)

關(guān)于 Core Animation

Core Animation是一組非常強(qiáng)大的動(dòng)畫(huà)處理API,使用它能做出很多優(yōu)雅的動(dòng)畫(huà)效果预柒。能用的動(dòng)畫(huà)類(lèi)有4個(gè)子類(lèi):CABasicAnimation蟆融、CAKeyframeAnimation洒疚、CATransition朱巨、CAAnimationGroup

開(kāi)發(fā)步驟:
**

  1. 初始化一個(gè)動(dòng)畫(huà)對(duì)象(CAAnimation)并設(shè)置一些動(dòng)畫(huà)相關(guān)屬性.
  2. 添加動(dòng)畫(huà)對(duì)象到層(CALayer)中,開(kāi)始執(zhí)行動(dòng)畫(huà).

CALayer中很多屬性都可以通過(guò)CAAnimation實(shí)現(xiàn)動(dòng)畫(huà)效果, 包括opacity, position, transform, bounds, contents等呀潭,具體可以在API文檔中查找
通過(guò)調(diào)用CALayer的addAnimation:forKey:增加動(dòng)畫(huà)到層(CALayer)中,這樣就能觸發(fā)動(dòng)畫(huà)了.通過(guò)調(diào)用removeAnimationForKey:可以停止層中的動(dòng)畫(huà).


注:Core Animation的動(dòng)畫(huà)執(zhí)行過(guò)程都是在后臺(tái)操作的,不會(huì)阻塞主線程.

1.png

巧妙的運(yùn)用這些可以屬性實(shí)現(xiàn)很棒的動(dòng)畫(huà)效果械蹋,比如下面:用CABasicAnimation實(shí)現(xiàn)的動(dòng)畫(huà)

CABasicAnimation動(dòng)畫(huà)

簡(jiǎn)單的呼吸和搖擺動(dòng)畫(huà)

簡(jiǎn)單的代碼

1.呼吸動(dòng)畫(huà)
CABasicAnimation *animation =[CABasicAnimation animationWithKeyPath:@"opacity"];
animation.fromValue = [NSNumber numberWithFloat:1.0f];
animation.toValue = [NSNumber numberWithFloat:0.0f];
animation.autoreverses = YES;    //回退動(dòng)畫(huà)(動(dòng)畫(huà)可逆,即循環(huán))
animation.duration = 1.0f;
animation.repeatCount = MAXFLOAT;
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;//removedOnCompletion,fillMode配合使用保持動(dòng)畫(huà)完成效果
animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
[self.alphaTagButton.layer addAnimation:animation forKey:@"aAlpha"];
2.搖擺動(dòng)畫(huà)
//設(shè)置旋轉(zhuǎn)原點(diǎn)
self.sharkTagButton.layer.anchorPoint = CGPointMake(0.5, 0);
CABasicAnimation* rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
//角度轉(zhuǎn)弧度(這里用1绸硕,-1簡(jiǎn)單處理一下)
rotationAnimation.toValue = [NSNumber numberWithFloat:1];
rotationAnimation.fromValue = [NSNumber numberWithFloat:-1];
rotationAnimation.duration = 1.0f;
rotationAnimation.repeatCount = MAXFLOAT;
rotationAnimation.removedOnCompletion = NO;
rotationAnimation.autoreverses = YES;
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
rotationAnimation.fillMode = kCAFillModeForwards;
[self.sharkTagButton.layer addAnimation:rotationAnimation forKey:@"revItUpAnimation"];

CATransition之簡(jiǎn)單的轉(zhuǎn)場(chǎng)動(dòng)畫(huà)

CAAnimation的子類(lèi)堂竟,用于做轉(zhuǎn)場(chǎng)動(dòng)畫(huà)魂毁,能夠?yàn)閷犹峁┮瞥銎聊缓鸵迫肫聊坏膭?dòng)畫(huà)效果。

2.png

常用動(dòng)畫(huà)類(lèi)型:

3.png

注:私有API只能通過(guò)字符串使用

過(guò)渡方向參數(shù):

4.png

簡(jiǎn)單的CATransition動(dòng)畫(huà)

-(void)animationWithType:(NSString*)type
{
//- 創(chuàng)建一個(gè)轉(zhuǎn)場(chǎng)動(dòng)畫(huà):
CATransition *transition = [CATransition animation];
transition.repeatCount = 5;
//    - 確定動(dòng)畫(huà)類(lèi)型:
transition.type = type;
//    - 確定子類(lèi)型(方向等)
transition.subtype = kCATransitionFromLeft;
//    - 確定動(dòng)畫(huà)時(shí)間
transition.duration = 1;
//    - 添加動(dòng)畫(huà)
[self.imageView.layer addAnimation:transition forKey:nil];
}

使用時(shí)只用傳你的想要的動(dòng)畫(huà)類(lèi)型就好跃捣,私有API只能通過(guò)字符串使用哈漱牵。

[self animationWithType:self.dataArray[indexPath.row]];

DEMO地址:https://github.com/yongliangP/CATransitionDemo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市疚漆,隨后出現(xiàn)的幾起案子酣胀,更是在濱河造成了極大的恐慌,老刑警劉巖娶聘,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闻镶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡丸升,警方通過(guò)查閱死者的電腦和手機(jī)铆农,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)狡耻,“玉大人墩剖,你說(shuō)我怎么就攤上這事∫恼” “怎么了岭皂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)沼头。 經(jīng)常有香客問(wèn)我爷绘,道長(zhǎng),這世上最難降的妖魔是什么进倍? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任土至,我火速辦了婚禮,結(jié)果婚禮上猾昆,老公的妹妹穿的比我還像新娘陶因。我一直安慰自己,他們只是感情好垂蜗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布坑赡。 她就那樣靜靜地躺著,像睡著了一般么抗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上亚铁,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天蝇刀,我揣著相機(jī)與錄音,去河邊找鬼徘溢。 笑死吞琐,一個(gè)胖子當(dāng)著我的面吹牛捆探,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播站粟,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼黍图,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了奴烙?” 一聲冷哼從身側(cè)響起助被,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎切诀,沒(méi)想到半個(gè)月后揩环,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡幅虑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年丰滑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倒庵。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡褒墨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出擎宝,到底是詐尸還是另有隱情郁妈,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布认臊,位于F島的核電站圃庭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏失晴。R本人自食惡果不足惜剧腻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涂屁。 院中可真熱鬧书在,春花似錦、人聲如沸拆又。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)帖族。三九已至栈源,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間竖般,已是汗流浹背甚垦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人艰亮。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓闭翩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親迄埃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疗韵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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

  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜侄非,今天將帶大家一窺ios動(dòng)畫(huà)全貌蕉汪。在這里你可以看...
    每天刷兩次牙閱讀 8,495評(píng)論 6 30
  • 在iOS實(shí)際開(kāi)發(fā)中常用的動(dòng)畫(huà)無(wú)非是以下四種:UIView動(dòng)畫(huà),核心動(dòng)畫(huà)彩库,幀動(dòng)畫(huà)肤无,自定義轉(zhuǎn)場(chǎng)動(dòng)畫(huà)。 1.UIView...
    請(qǐng)叫我周小帥閱讀 3,101評(píng)論 1 23
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果骇钦,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜宛渐,今天將帶大家一窺iOS動(dòng)畫(huà)全貌。在這里你可以看...
    F麥子閱讀 5,113評(píng)論 5 13
  • 目錄: UIView動(dòng)畫(huà) Core Animation 自定義轉(zhuǎn)場(chǎng)動(dòng)畫(huà) UIDynamicAnimator彈簧動(dòng)畫(huà)...
    Ryan___閱讀 629評(píng)論 0 5
  • 前言 本文只要描述了iOS中的Core Animation(核心動(dòng)畫(huà):隱式動(dòng)畫(huà)眯搭、顯示動(dòng)畫(huà))窥翩、貝塞爾曲線、UIVie...
    GitHubPorter閱讀 3,628評(píng)論 7 11