隱式動畫:不指定任何動畫類型撬码,僅改變非根層layer(手動創(chuàng)建的layer)動畫屬性,coreAnimation會決定如何何時去做動畫错蝴,你不用做額外操作
顯式動畫:需要創(chuàng)建一個動畫對象,并設置開始和結束值香椎,直到把動畫應用到某圖層上漱竖,動畫才開始執(zhí)行
隱式動畫
根層與非根層:
每一個UIView內(nèi)部都默認關聯(lián)著一個CALayer,我們可用稱這個Layer為Root Layer(根層)
所有的非Root Layer畜伐,也就是手動創(chuàng)建的CALayer對象馍惹,都存在著隱式動畫
當對非Root Layer的部分屬性進行修改時,默認會自動產(chǎn)生一些動畫效果玛界,而這些屬性稱為Animatable Properties(可動畫屬性)万矾。
常見的幾個可動畫屬性:
bounds:用于設置CALayer的寬度和高度。修改這個屬性會產(chǎn)生縮放動畫
backgroundColor:用于設置CALayer的背景色慎框。修改這個屬性會產(chǎn)生背景色的漸變動畫
position:用于設置CALayer的位置良狈。修改這個屬性會產(chǎn)生平移動畫
隱式動畫的創(chuàng)建
//實例化自定義圖層 CALayer *myLayer = [CALayer layer];
//設置大小 [myLayer setBounds:CGRectMake(0, 0, 100, 100)];
//設置背景顏色 [myLayer setBackgroundColor:[UIColor redColor].CGColor];
[myLayer setPosition:CGPointMake(50, 50)];
[self.view.layer addSublayer:myLayer];
顯式動畫Animation
當需要對非Root Layer進行動畫或者需要對動畫做更多自定義的行為的時候,就必須使用到顯式動畫了,顯式動畫的基類為CAAnimation,常用的是CABasicAnimation,CAKeyframeAnimation有時候還會使用到CAAnimationGroup,CATransition(注意不是CATransaction,Transition是過渡的意思).