IOS中的動畫屬性

核心動畫

特點 1. 自己去 自己可以回來
    2. 動畫移動的圖層, 真實的位置 沒有改變

CALayer

基本屬性

backergroundColor 背景顏色 [UIColor redColor].CGColor
anchorPoint 錨點CGPoint值得范圍是0到1之間
position 位置 CGPoint
bounds 大小 CGRect
opacity 透明度
contents 內容id類型

其他屬性

邊框

borderWidth 邊框寬度
borderColor 邊框顏色

陰影

shadowColor 陰影顏色
shadowOffset 陰影位置
shadowRadius 陰影半徑
==需要設置陰影的透明度==
shadowOpacity 陰影透明度

圓角

cornerRadius 設置圓角
masksToBounds 周圍的遮罩 ==如果去掉遮罩那么陰影效果就不會顯示==

隱式動畫

自帶隱式動畫,不過可以手動關閉

[CATransaction begin];          開啟事務
[CATransaction setDisableActions:YES];         關閉動畫
[CATransaction commit];       提交事物

Transform屬性

self.layer.transform = CATransform3DTranslate(self.layer.transform, 30, 0, 0);   平移
self.layer.transform = CATransform3DScale(self.layer.transform, 0.5, 0.5, 0);    縮放
self.layer.transform = CATransform3DRotate(self.layer.transform, M_PI_4, 1, 1, 1);  旋轉

基本動畫(CABasicAnimation)

因為是NSOBjiet的分類所以不需要設置代理
repeatCount 循環次數
duration 單次運行完畢所需時間

Position(X軸 Y軸)

CABasicAnimation  *basic = [CABasicAnimation animationWithKeyPath:@"position.y"],
 key:表示你想讓它產生那個屬性的動畫,    position界面的移動使用
basic.toValue = [NSValue valueWithCGPoint:CGPointMake(200, 500)];  移動的位置

basic.removedOnCompletion = NO;   到了那個移動位置后,是否返回
basic.fillMode = kCAFillModeForwards; 動畫的階段模式,在動畫還沒開始前  和上面的一起搭配使用,固定用法

Transform(Rotation And Scale)

CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];   旋轉
basic.toValue = @(M_PI * 2.5);  設置屬性  即旋轉的角度
[self.layer addAnimation:basic forKey:nil];  需要添加到layer上面
CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.scale"];     縮放

    basic.toValue = @(0.5);                     設置屬性
    basic.repeatCount = MAXFLOAT;  
    basic.duration = 2.0;
    [self.layer addAnimation:basic forKey:nil]; 添加

關鍵幀動畫(CAKeyframeAnimation)

Values 屬性可以包含多個動作
Path 屬性可以設置他的移動路徑

沿著固定的點進行移動
CAKeyframeAnimation *key = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    
//設置屬性
NSValue *value1 =  [NSValue valueWithCGPoint:CGPointMake(30, 30)];
NSValue *value2 =  [NSValue valueWithCGPoint:CGPointMake(30, 500)];
    
NSValue *value3 =  [NSValue valueWithCGPoint:CGPointMake(360, 500)];
    
NSValue *value4 =  [NSValue valueWithCGPoint:CGPointMake(360, 30)];
    
    
key.values = @[value1,value2,value3,value4,value1];
key.repeatCount = MAXFLOAT;
key.duration = 3.0;
    
//2.添加
[self.layer addAnimation:key forKey:nil];
沿繪制路徑移動
CAKeyframeAnimation *key = [CAKeyframeAnimation animationWithKeyPath:@"position"];
        
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(30, 400, 100, 300)];
    
key.path = path.CGPath;
key.duration = 2.0;
    
//2.添加
[self.layer addAnimation:key forKey:nil];
平面的抖動 (通過旋轉實現)
CAKeyframeAnimation *key = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation"];
        
key.values = @[@(-M_PI_4 * 0.03),@(M_PI_4 * 0.03),@(M_PI_4 * 0.03)];
    
key.repeatCount = 30;
    
//2.添加
[self.layer addAnimation:key forKey:nil];

轉場動畫(CATransition)

CATransition *sition = [CATransition animation];
 //設置屬性
    //樣式
sition.type = kCATransitionMoveIn;
    //方向
sition.subtype = kCATransitionFromBottom;
        
[self.myImageView.layer addAnimation:sition forKey:nil];

組動畫(CAAnimationGroup)

//1.創建動畫對象
    CAAnimationGroup *group = [CAAnimationGroup animation];
       
//1.創建動畫
CAKeyframeAnimation *key = [CAKeyframeAnimation animationWithKeyPath:@"position"];   
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(30, 300, 300, 200)];    
key.path = path.CGPath;

     
//1.創建動畫對象
CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
//設置屬性
basic.toValue = @(0.1);
   
    
//1.旋轉
//1.創建動畫 基本動畫 transform.rotation 默認是繞著Z軸
CABasicAnimation *basic1 = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];    
//設置屬性
basic1.toValue = @(M_PI * 10);
    
    
//包含多個動畫對象
group.animations = @[key,basic,basic1];    
group.duration = 3;
group.repeatCount = 30;
   
//2.添加動畫
[self.layer addAnimation:group forKey:nil];

[TOC]

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,380評論 2 379

推薦閱讀更多精彩內容

  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,548評論 6 30
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,139評論 5 13
  • 書寫的很好,翻譯的也棒!感謝譯者,感謝感謝! iOS-Core-Animation-Advanced-Techni...
    錢噓噓閱讀 2,314評論 0 6
  • Core Animation Core Animation,中文翻譯為核心動畫,它是一組非常強大的動畫處理API,...
    45b645c5912e閱讀 3,047評論 0 21
  • "小畫板程序"完成"小畫板"程序。 下載地址:http://git.oschina.net/changyou/my...
    _淺墨_閱讀 701評論 0 5