IOS 核心動畫之CAKeyframeAnimation - iBaby

- IOS 核心動畫之CAKeyframeAnimation 數組

- 簡單介紹 動畫

是CApropertyAnimation的子類,跟CABasicAnimation的區別是:CABasicAnimation只能從一個數值(fromValue)變到另外一個數值(toValue),而CAKeyframeAnimation會使用一個NSArray保存這些數值 orm

- 屬性解析: 對象

- values:就是上述的NSArray對象。裏面的元素稱爲」關鍵幀」(keyframe)。動畫對象會在指定的時間(duration)內,依次顯示values數組中的每個關鍵幀 ip

- path:能夠設置一個CGPathRef\CGMutablePathRef,讓層跟着路徑移動。path只對CALayer的anchorPoint和position起做用。若是你設置了path,那麼values將被忽略 ci

- keyTimes:能夠爲對應的關鍵幀指定對應的時間點,其取值範圍爲0到1.0,keyTimes中的每個時間值都對應values中的每一幀.當keyTimes沒有設置的時候,各個關鍵幀的時間是平分的 rem

- 說明:CABasicAnimation可看作是最多隻有2個關鍵幀的CAKeyframeAnimation animation

- Values方式: it

- CAKeyframeAnimation *animation = [CAKeyframeAnimation animation]; io

animation.keyPath = @"position";

NSValue *value1=[NSValue valueWithCGPoint:CGPointMake(100, 100)];

NSValue *value2=[NSValue valueWithCGPoint:CGPointMake(200, 100)];

NSValue *value3=[NSValue valueWithCGPoint:CGPointMake(200, 200)];

NSValue *value4=[NSValue valueWithCGPoint:CGPointMake(100, 200)];

NSValue *value5=[NSValue valueWithCGPoint:CGPointMake(100, 100)];

animation.values=@[value1,value2,value3,value4,value5]; animation.repeatCount=MAXFLOAT;

animation.removedOnCompletion = NO;

animation.fillMode = kCAFillModeForwards;

animation.duration = 4.0f;

animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

animation.delegate=self;

[self.myView.layer addAnimation:animation forKey:nil];

- Path方式:

- CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];

animation.keyPath = @"position";

CGMutablePathRef path=CGPathCreateMutable();

CGPathAddEllipseInRect(path, NULL, CGRectMake(150, 100, 100, 100));

animation.path=path;

CGPathRelease(path);

animation.repeatCount=MAXFLOAT;

animation.removedOnCompletion = NO;

animation.fillMode = kCAFillModeForwards;

animation.duration = 4.0f;

animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

animation.delegate=self;

[self.myView.layer addAnimation:animation forKey:nil];

- keyPath能夠使用的key

- #define angle2Radian(angle) ((angle)/180.0*M_PI)

- transform.rotation.x 圍繞x軸翻轉 參數:角度 angle2Radian(4)

transform.rotation.y 圍繞y軸翻轉 參數:同上

transform.rotation.z 圍繞z軸翻轉 參數:同上

transform.rotation 默認圍繞z軸

transform.scale.x x方向縮放 參數:縮放比例 1.5

transform.scale.y y方向縮放 參數:同上

transform.scale.z z方向縮放 參數:同上

transform.scale 全部方向縮放 參數:同上

transform.translation.x x方向移動 參數:x軸上的座標 100

transform.translation.y x方向移動 參數:y軸上的座標

transform.translation.z x方向移動 參數:z軸上的座標

transform.translation 移動 參數:移動到的點 (100,100)

opacity 透明度 參數:透明度 0.5

backgroundColor 背景顏色 參數:顏色 (id)[[UIColor redColor] CGColor]

cornerRadius 圓角 參數:圓角半徑 5

borderWidth 邊框寬度 參數:邊框寬度 5

bounds 大小 參數:CGRect

contents 內容 參數:CGImage

contentsRect 可視內容 參數:CGRect 值是0~1之間的小數

hidden 是否隱藏

position

shadowColor

shadowOffset

shadowOpacity

shadowRadius

*

相關文章
相關標籤/搜索