ios動畫基礎是core animation核心動畫。core animation是ios平台上負責圖形渲染與動畫的基礎設施。由於核心動畫的實現比較複雜,蘋果提供了實現簡單動畫的介面—uiview動畫。uiview動畫封裝在uiview的category中,主要實現一些簡單和常用的動畫。uiview動畫是對核心動畫進行了一層封裝,所以最終動畫還是通過core animation的介面實現。
主要的動畫效果都可以通過uiview動畫和core animation實現,在技術上如何選擇呢?
1、簡單的、只執行一次的動畫使用uiview動畫,如頁面切換。uiview動畫效能上比核心動畫差,如果動畫簡單的話效能損失可以忽略不計,而uiview使用起來很方便。
2、多次或無限次重複的動畫使用core animation。這個時候使用uiview動畫會有效能問題。
3、uiview實現不了的動畫。uiview對core animation的常用動畫進行了封裝,不能解決所有的問題。
uiview動畫有兩種呼叫方式
不推薦使用下面這種動畫塊的方式。12
34[uiview beginanimations:
nil
context:
nil
];
[uiview setanimationduration:1.0];
self
.view.alpha = 0.0;
[uiview commitanimations];
推薦使用帶block的方法12
3[uiview animatewithduration:1.0 animations:^ completion:^(
bool
finshed)];
下面三個類方法其實是乙個方法,方法2和3省略了方法1的一些引數。
1+ (
void
)animatewithduration:(
nstimeinterval
)duration delay:(
nstimeinterval
)delay options:(uiviewanimationoptions)options animations:(
void
(^)(
void
))animations completion:(
void
(^)(
bool
finished))completion
1+ (
void
)animatewithduration:(
nstimeinterval
)duration animations:(
void
(^)(
void
))animations completion:(
void
(^)(
bool
finished))completion
1+ (
void
)animatewithduration:(
nstimeinterval
)duration animations:(
void
(^)(
void
))animations
duration 動畫持續的時間
delay 動畫延遲的時間
options 如何執行動畫的一些選項,比如先快後慢的執行動畫。
animations 動畫block,在這裡對要進行動畫變換的view進行形變、位移、旋轉、漸變等操作
completion 動畫完成後呼叫的block
容器檢視動畫,這個引數view的所有subview都將跟隨這個view一起變化。
1+ (
void
)transitionwithview:(uiview *)view duration:(
nstimeinterval
)duration options:(uiviewanimationoptions)options animations:(
void
(^)(
void
))animations completion:(
void
(^)(
bool
finished))completion
兩個view的過渡動畫,從fromview切換到toview。注意:這個動畫作用的不是fromview和toview本身,而是兩個view的共同的superview。
1+ (
void
)transitionfromview:(uiview *)fromview toview:(uiview *)toview duration:(
nstimeinterval
)duration options:(uiviewanimationoptions)options completion:(
void
(^)(
bool
finished))completion
options定義:12
3456
78910
1112
1314
1516
1718
1920
2122
2324
2526
27enum
;
typedef
nsuinteger
uiviewanimationoptions;
uiviewanimationoptionlayoutsubviews 所有子view跟父view作為乙個整體一起動畫。此方式為預設方式
uiviewanimationoptionallowuserinteraction 在動畫執行過程中接收使用者操作
uiviewanimationoptionbeginfromcurrentstate 從當前的狀態開始執行動畫。設定
動畫1 UIView動畫
uiview動畫簡單易用,可以滿足普通的動畫需求 寫法1 uiview beginanimations animationid context null 動畫效果 uiview commitanimations 寫法2 uiview animatewithduration 1.0 animation...
iOS 動畫 UIView動畫
viewcontroller.m ui 23 動畫 import viewcontroller.h inte ce viewcontroller property strong,nonatomic iboutlet uiview opeview1 property strong,nonatomic ...
iOS 動畫總結 UIView動畫
1.概述 uikit直接將動畫整合到uiview類中,實現簡單動畫的建立過程。uiview類定義了幾個內在支援動畫的屬性宣告,當這些屬性發生改變時,檢視為其變化過程提供內建的動畫支援。執行動畫所需要的工作由uiview類自動完成,但仍要在希望執行動畫時通知檢視,為此需要將改變屬性的 包裝到乙個 塊中...