iOS開發CoreAnimation解讀之五——高級動畫技巧

iOS開發CoreAnimation解讀之五——高級動畫技巧

1、事務類

        CoreAnimation中還有一個很是重要的類:CATransaction事物類,這個能夠同時設置多個layer層的動畫效果。能夠經過隱式和顯式兩種方式來進行動畫操做。安全

2、CATransaction屬性

        對layer層的屬性操做,都會造成隱式動畫,要使用隱式動畫,須要關閉layer層的animation動畫屬性,使用下面的方法:多線程

//關閉animation動畫效果,開啓隱式動畫
+ (BOOL)disableActions;
+ (void)setDisableActions:(BOOL)flag;

 

CATransaction用類方式經過設置key-value來進行動畫的屬性設置:動畫

+ (nullable id)valueForKey:(NSString *)key;
+ (void)setValue:(nullable id)anObject forKey:(NSString *)key;

 

支持的key值以下:spa

//設置動畫持續時間
 NSString * const kCATransactionAnimationDuration;
 //設置停用animation類動畫
 NSString * const kCATransactionDisableActions;
 //設置動畫時序效果
 NSString * const kCATransactionAnimationTimingFunction;
 //設置動畫完成後的回調
 NSString * const kCATransactionCompletionBlock;

 

除了隱式的展現動畫外,也能夠顯式的經過調用CATransaction的相關方法進行顯示的提交動畫:線程

//動畫開始
+ (void)begin;
//提交動畫
+ (void)commit;
//當即進行動畫渲染 通常不需調用
+ (void)flush;
//下面這兩個方法用於動畫事物的加鎖與解鎖 在多線程動畫中,保證修改屬性的安全
+ (void)lock;
+ (void)unlock;

 

示例以下:code

    [CATransaction begin];
    [CATransaction setValue:@1 forKey:kCATransactionAnimationDuration];
    layer.backgroundColor = [UIColor blueColor].CGColor;
    [CATransaction commit];

 

專一技術,熱愛生活,交流技術,也作朋友。事務

——琿少 QQ羣:203317592開發

相關文章
相關標籤/搜索