核心動畫 基礎動畫

2021-07-11 05:52:29 字數 3290 閱讀 8920

一.簡單介紹

capropertyanimation的子類

屬性解析:

fromvalue:keypath相應屬性的初始值

tovalue:keypath相應屬性的結束值

隨著動畫的進行,在長度為duration的持續時間內,keypath相應屬性的值從fromvalue漸漸的變為tovalue。

如果fillmode=kcafillmodeforwards和removedoncomletion=no,那麼在動畫執行完畢後,圖層會保持顯示動畫執行後的狀態。但在實質上,圖層的屬性值還是動畫執行前的初始值,並沒有真正被改變。

比如,calayer的position初始值為(0,0),cabasicanimation的fromvalue為(10,10),tovalue為(100,100),雖然動畫執行完畢後圖層保持在(100,100)這個位置,實質上圖層的position還是為(0,0)。

二.平移動畫

#import "viewcontroller.h"

@inte***ce

viewcontroller ()

@property(nonatomic,strong) calayer *mylayer;

@end

@implementation

viewcontroller

- (void)viewdidload

- (void)didreceivememorywarning

//設定動畫(基礎動畫)

- (void)touchesbegan:(nsset*)touches withevent:(uievent *)event

@end

說明:

byvalue和tovalue的區別,前者是在當前的位置上增加多少,後者是到指定的位置。

設定**:設定動畫的**,可以監聽動畫的執行過程,這裡設定控制器為**。

**示例:

@inte***ce

viewcontroller ()

@property(nonatomic,strong) calayer *mylayer;

@end

@implementation

viewcontroller

- (void)viewdidload

- (void)didreceivememorywarning

//設定動畫(基礎動畫)

- (void)touchesbegan:(nsset*)touches withevent:(uievent *)event

#pragma mark -core animation delegate

- (void)animationdidstart:(caanimation *)anim

- (void)animationdidstop:(caanimation *)anim finished:(bool)flag

@end

通過列印結構可以看出,屬性值還是動畫執行前的初始值,並沒有真正被改變為。

三.縮放動畫

#import "viewcontroller.h"

@inte***ce

viewcontroller ()

@property(nonatomic,strong) calayer *mylayer;

@end

@implementation

viewcontroller

- (void)viewdidload

- (void)didreceivememorywarning

//設定動畫(基礎動畫)

- (void)touchesbegan:(nsset*)touches withevent:(uievent *)event

#pragma mark -core animation delegate

- (void)animationdidstart:(caanimation *)anim

- (void)animationdidstop:(caanimation *)anim finished:(bool)flag

@end

四.旋轉動畫

#import "viewcontroller.h"

@inte***ce

viewcontroller ()

@property(nonatomic,strong) calayer *mylayer;

@end

@implementation

viewcontroller

- (void)viewdidload

- (void)didreceivememorywarning

//設定動畫(基礎動畫)

- (void)touchesbegan:(nsset*)touches withevent:(uievent *)event

#pragma mark -core animation delegate

- (void)animationdidstart:(caanimation *)anim

- (void)animationdidstop:(caanimation *)anim finished:(bool)flag

@end

五.補充

可以通過transform (kvc)的方式來進行設定

@inte***ce

viewcontroller ()

@property(nonatomic,strong) calayer *mylayer;

@end

@implementation

viewcontroller

- (void)viewdidload

- (void)didreceivememorywarning

//設定動畫(基礎動畫)

- (void)touchesbegan:(nsset*)touches withevent:(uievent *)event

#pragma mark -core animation delegate

- (void)animationdidstart:(caanimation *)anim

- (void)animationdidstop:(caanimation *)anim finished:(bool)flag

@end

iOS核心動畫 基礎動畫

核心動畫 在ios中核心動畫分為幾類 基礎動畫 cabasicanimation 關鍵幀動畫 cakeyframeanimation 動畫組 caanimationgroup 轉場動畫 catransition caanimation 核心動畫的基礎類,不能直接使用,負責動畫執行時間 速度的控制,本...

(一二一)核心動畫基礎

核心動畫基於quartzcore框架,僅僅能用於calayer,能夠實現3d效果。它在子執行緒中執行動畫,不會堵塞主線程。要實現核心動畫,主要使用cabasicanimation實現單步動畫 使用cakeyframeanimation實現幀動畫。動畫的主要屬性有duration keypath va...

IOS開發核心動畫篇 核心動畫簡介

ios開發ui篇 核心動畫簡介 一 簡單介紹 core animation,中文翻譯為核心動畫,它是一組非常強大的動畫處理api,使用它能做出非常炫麗的動畫效果,而且往往是事半功倍。也就是說,使用少量的 就可以實現非常強大的功能。core animation是跨平台的,可以用在mac os x和io...