一砍的、UIView與CALayer
UIView實(shí)現(xiàn)繪制自定義任務(wù)時(shí)拭嫁,調(diào)用-drawRect:方法惕医,為關(guān)聯(lián)的圖層設(shè)置contents屬性的內(nèi)容意鲸。
二烦周、隱式動(dòng)畫
當(dāng)改變CALayer的一個(gè)可做動(dòng)畫的屬性時(shí),屬性目標(biāo)值不會(huì)立刻在屏幕上顯示出來怎顾,而是從先前得值平滑過渡到新的值
1读慎、獲取行為(改變屬性時(shí)CALayer自動(dòng)應(yīng)用的動(dòng)畫)的流程:
當(dāng)圖層的一個(gè)可做動(dòng)畫的屬性被修改時(shí),圖層的-actionForKey:方法被調(diào)用槐雾,參數(shù)為屬性名稱夭委,
然后,觸發(fā)以下流程:
2蚜退、動(dòng)畫實(shí)現(xiàn):
(1)默認(rèn)情況下闰靴,在當(dāng)前線程的棧頂事物中被調(diào)用執(zhí)行
(2)修改默認(rèn)行為,示例如下:
[CATransaction begin];
[CATransaction setAnimationDuration:2.0];
self.colorLayer.backgroundColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0].CGColor;
if (self.flag) {
self.colorLayer.position = CGPointMake(self.colorLayer.position.x + 50, self.colorLayer.position.y);
}else{
self.colorLayer.position = CGPointMake(100, 100);
}
self.flag = !self.flag;
[CATransaction commit];
3、UIView關(guān)聯(lián)的圖層钻注,隱式動(dòng)畫被禁用,因?yàn)?actionForLayer:forKey:返回值為nil
三配猫、顯示動(dòng)畫
相關(guān)的類對象關(guān)系圖
添加顯示動(dòng)畫的方法:-addAnimation:forKey:(備注:該方法調(diào)用的時(shí)候幅恋,應(yīng)該會(huì)創(chuàng)建CATransaction實(shí)例對象)
四、備注:相關(guān)委托方法