iOS動畫總結01

iOS 動畫:1.試圖動畫 :UIview動畫(動畫塊赏壹、過渡動畫)

? ? ? ? ? ? ? ? ? ?2.核心動畫Core Animation(縮寫CA):圖層動畫、隱式動? ? ? 畫泥彤、顯式動畫欲芹、關鍵幀動畫

注釋:其實UIview下的動畫本質上也是在UIKit和core Animation框架下進行封裝、優(yōu)化實現的吟吝。UIkit通常通過Bool值開啟動畫效果菱父,例如:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion?

? ? ? ? 每個視圖都關聯(lián)到一個圖層(CALayer)對象,視圖處理事件剑逃,圖層上的動畫浙宜、繪制可視效果都直接或間接的有圖層處理。

視圖支持動畫的屬性炕贵,包括frame梆奈、bounds、center称开、alpha亩钟、transform、 動畫延遲時間鳖轰、動畫曲線(淡入/淡清酥、淡入、淡出蕴侣、線性等)動畫過渡焰轻、重復次數、自動反轉等屬性昆雀。

一>.試圖動畫

1.動畫塊:

注釋:其中的一下屬性如動畫曲線辱志、過渡等屬性也適用于過渡動畫

[UIView beginAnimations:@"animation" context:nil];

/*動畫內容:*/

[UIView commitAnimations];

注釋:需要捕捉動畫開始和結束時間蝠筑,可設置UIView的動畫代理delegate ,在這兩個方法里實現回調? + (void)setAnimationWillStartSelector:(nullable SEL)selector;

? ? ? + (void)setAnimationDidStopSelector:(nullable SEL)selector;

由于上面的動畫實現方法揩懒,代碼量過多什乙,于是封裝的下面的實現動畫并帶有回調的代碼塊

UIView animateWithDuration: animations:

UIView animateWithDuration: animations: completion:

UIView animateWithDuration: delay: options: animations: completion:

2.過渡動畫

[UIView beginAnimations:@"animation" context:nil];

[UIView setAnimationTransition:過渡樣式枚舉值 ? forView:? cache:]; ?

[UIView commitAnimations];

為了創(chuàng)建過渡動畫的簡便,于是就有了下面的方法:

[UIView transitionWithView: duration: options: animations: completion:] //在指定的視圖容器內創(chuàng)建過渡動畫

[UIView transitionFromView: toView: duration: options: completion:]? //在指定的兩個視圖之間創(chuàng)建動畫過渡(duration:動畫的持續(xù)時間? view:需要進行轉場動畫的視圖已球、options:轉場動畫的類型臣镣、animations:將改變視圖屬性的代碼放在這個Block里、completion:動畫結束后智亮,自動調用的Block)

//說明:options的參數曲線常量有淡入淡出(UIViewAnimationCurveEaseInOut)忆某、淡入、淡出等阔蛉。過渡的常量有 上翻(UIViewAnimationTransitionCurlUp)弃舒、下翻 等

二>.核心動畫

說明:核心動畫、基礎動畫(CABasicAnimation)馍忽、關鍵幀動畫(CAKeyframeAnimation)棒坏、動畫組、轉場動畫(CATransition)

一>.核心動畫

準備:導入QuartzCore.framework框架

1.開發(fā)步聚

1>.初始化一個動畫對象(CAAnimation)并且設置一些動畫屬性

2>.CALayer中很多屬性都可以通過CAAnimation實現動畫效果遭笋,包括:opacity、position徒探、transform瓦呼、bounds、contents等(可以在API文檔中搜索:CALayer Animatable Properties)

3>.添加動畫對象圖層(CALayer)中测暗,開始執(zhí)行動畫

4>.通過調用CALayer的addAnimation:forKey添加動畫到(CALayer)中央串,就這樣能觸發(fā)動畫。通過調用removeAnimationForKey可以停止層中的動畫

5>.Core Animation的動畫執(zhí)行過程都是后臺操作的碗啄,不會阻塞線程

2.屬性

1>.duration: 動畫的持續(xù)時間

2>.repeatCount: 重復次數(HUGE_VALF质和、MAX FLOAT無限重復)

3>.repeatDuration: 重復時間(這個屬性用的比較少)

4>.removedOnCompletion: 默認為yes.動畫執(zhí)行完成后默認從圖層中移除掉

5>.fillModel :填充模式

6>.biginTime:開始時間

7.timingFunction: 速度控制函數,控制動畫節(jié)湊

8.delegate:動畫相關的代理(遵從代理后可實現代理的方法)

二 >.基礎動畫(CABasicAnimation)

說明:如果只是實現簡單屬性變化的動畫效果稚字,可以使用UIView的塊動畫替代基本動畫

1.屬性說明

-fromValue:keyPath 相關的屬性的初始值

-toValue:keyPath相應屬性的結束值

2.動畫過程說明

隨著動畫的執(zhí)行饲宿,在duration的持續(xù)時間內,keyPath相應的屬性從fromValue漸漸變?yōu)閠oValue胆描,-keyPath內容是CALayer的可動畫Animation屬性瘫想,-如果fillMode=kCAFillModeForwards同時removedOnCompletion=NO,那么在動畫執(zhí)行完畢后昌讲,圖層會保持顯示動畫執(zhí)行后的狀態(tài)国夜,但在實質上,圖層的屬性值還是動畫執(zhí)行前的初始值短绸,并沒有真正改變车吹。

三 >筹裕、關鍵幀動畫

說明:關鍵幀動畫只能從一個值到另外一個值,關鍵幀動畫可以用一個數組保存一系列值

1. 屬性說明

- values:所有的值(使用的較少)

-path:路線(如果設置了path窄驹,那么values將被忽略)

-keyTimes:可以為對應的關鍵幀制定對應的時間點饶碘,取值范圍是0到1.0

2.動畫過程分類

1>.初始化自定義視圖,店家屏幕執(zhí)行動畫

2>.指定點路徑平移動畫(values)

3>.貝塞爾曲線動畫 (path C語言框架CGMutablePathRef)馒吴,需要手動釋放內存)

4>.搖晃動畫(修改旋轉角度)

四>.動畫組

說明:動畫是可以并發(fā)執(zhí)行的扎运,-定義一個group組,定義動畫饮戳,將動畫加入到動畫組中豪治,可以給組設置屬性

五.轉場動畫-CATransition

1.屬性說明

-type:動畫過渡類型

- startProgress: 動畫起點(在整體動畫的百分比)

- endProgress:動畫終點(在整體動畫的百分比)

-增加一個轉場演示視圖

-增加輕掃手勢

-在輕掃手勢方法中

1. 更改演示視圖內容?

2. 創(chuàng)建轉場動畫效果

3.將轉場動畫添加到視圖的圖層

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市扯罐,隨后出現的幾起案子负拟,更是在濱河造成了極大的恐慌,老刑警劉巖歹河,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掩浙,死亡現場離奇詭異,居然都是意外死亡秸歧,警方通過查閱死者的電腦和手機厨姚,發(fā)現死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來键菱,“玉大人谬墙,你說我怎么就攤上這事【福” “怎么了拭抬?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長侵蒙。 經常有香客問我造虎,道長,這世上最難降的妖魔是什么纷闺? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任算凿,我火速辦了婚禮,結果婚禮上急但,老公的妹妹穿的比我還像新娘澎媒。我一直安慰自己,他們只是感情好波桩,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布戒努。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪储玫。 梳的紋絲不亂的頭發(fā)上侍筛,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音撒穷,去河邊找鬼匣椰。 笑死,一個胖子當著我的面吹牛端礼,可吹牛的內容都是我干的禽笑。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼蛤奥,長吁一口氣:“原來是場噩夢啊……” “哼佳镜!你這毒婦竟也來了?” 一聲冷哼從身側響起凡桥,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤蟀伸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缅刽,有當地人在樹林里發(fā)現了一具尸體啊掏,經...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年衰猛,在試婚紗的時候發(fā)現自己被綠了迟蜜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡腕侄,死狀恐怖小泉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情冕杠,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布酸茴,位于F島的核電站分预,受9級特大地震影響,放射性物質發(fā)生泄漏薪捍。R本人自食惡果不足惜笼痹,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酪穿。 院中可真熱鬧凳干,春花似錦、人聲如沸被济。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽只磷。三九已至经磅,卻和暖如春泌绣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背预厌。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工阿迈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人轧叽。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓苗沧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親炭晒。 傳聞我的和親對象是個殘疾皇子待逞,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內容

  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜腰埂,今天將帶大家一窺ios動畫全貌飒焦。在這里你可以看...
    每天刷兩次牙閱讀 8,465評論 6 30
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜屿笼,今天將帶大家一窺iOS動畫全貌牺荠。在這里你可以看...
    F麥子閱讀 5,094評論 5 13
  • 在iOS實際開發(fā)中常用的動畫無非是以下四種:UIView動畫,核心動畫驴一,幀動畫休雌,自定義轉場動畫。 1.UIView...
    請叫我周小帥閱讀 3,078評論 1 23
  • 如果想讓事情變得順利肝断,只有靠自己--夏爾·紀堯姆 上一章介紹了隱式動畫的概念杈曲。隱式動畫是在iOS平臺創(chuàng)建動態(tài)用戶界...
    夜空下最亮的亮點閱讀 1,925評論 0 1
  • 前言 本文只要描述了iOS中的Core Animation(核心動畫:隱式動畫、顯示動畫)胸懈、貝塞爾曲線担扑、UIVie...
    GitHubPorter閱讀 3,600評論 7 11