需引入quartzcore.framework
, 並在相關檔案中加入
#import "quartzcore/quartzcore.h"
定義
shakefeedbackoverlay為uiimageview
設定self.shakefeedbackoverlay.alpha = 0.0;
self.shakefeedbackoverlay.layer.cornerradius = 10.0; //設定圓角半徑
1、影象左右抖動
cabasicanimation* shake = [cabasicanimation animationwithkeypath:@"transform.rotation.z"];
shake.fromvalue = [nsnumber numberwithfloat:-m_pi/32];
shake.tovalue = [nsnumber numberwithfloat:+m_pi/32];
shake.duration = 0.1;
shake.autoreverses = yes; //是否重複
shake.repeatcount = 4;
[self.shakefeedbackoverlay.layer addanimation:shake forkey:@"shakeanimation"];
self.shakefeedbackoverlay.alpha = 1.0;
[uiview animatewithduration:2.0 delay:0.0 options:uiviewanimationoptioncurveeasein | uiviewanimationoptionallowuserinteraction animations:^ completion:nil];
2、影象順時針旋轉
cabasicanimation* shake = [cabasicanimation animationwithkeypath:@"transform.rotation.z"];
shake.fromvalue = [nsnumber numberwithfloat:0];
shake.tovalue = [nsnumber numberwithfloat:2*m_pi];
shake.duration = 0.8; shake.autoreverses = no;
shake.repeatcount = 1;
[self.shakefeedbackoverlay.layer addanimation:shake forkey:@"shakeanimation"];
self.shakefeedbackoverlay.alpha = 1.0;
[uiview animatewithduration:10.0 delay:0.0 options:uiviewanimationoptioncurveeasein | uiviewanimationoptionallowuserinteraction animations:^ completion:nil];
3、影象關鍵幀動畫
cakeyframeanimation*animation = [cakeyframeanimation animation];
cgmutablepathrefapath =cgpathcreatemutable();
cgpathmovetopoint(apath, nil, 20, 20);
cgpathaddcurvetopoint(apath, nil, 160, 30, 220, 220, 240, 420);
animation.path = apath;
animation.autoreverses = yes;
animation.duration = 2;
animation.timingfunction= [camediatimingfunction functionwithname:kcamediatimingfunctioneaseout];
animation.rotationmode = @"auto";
[ballview.layer
addanimation:animationforkey:@"position"];
4、組合動畫 caanimationgroup
cabasicanimation*flip = [cabasicanimation animationwithkeypath:
@"transform.rotation.y"];
flip.tovalue= [nsnumbernumberwithdouble:-
m_pi];
cabasicanimation*scale= [cabasicanimation animationwithkeypath:
@"transform.scale"];
scale.tovalue= [nsnumbernumberwithdouble:12];
scale.duration = 1.5;
scale.autoreverses = yes;
caanimationgroup
*group = [caanimationgroup animation];
group.animations= [nsarray arraywithobjects:flip, scale,
nil];
group.timingfunction= [camediatimingfunction functionwithname:kcamediatimingfunctioneaseineaseout];
group.duration = 3;
group.fillmode= kcafillmodeforwards;
group.removedoncompletion=no;
[ballview.layer
addanimation:groupforkey:@"position"];
5、指定時間內旋轉
//啟動定時器旋轉光圈
- (void)startrotate
//關閉定時器
- (void)stoptimer
}//旋轉動畫
- (void)rotategraduation
else ;
}呼叫方法
self.timecount = 25; //動畫執行25次
[self startrotate];
注:本文部分**摘抄自《ios5核心框架》一書,原文有改動
//7向右下角縮小移動
- (ibaction)buttonclick:(id)sender
//向右邊旋轉
- (ibaction)rightrotatebtnclick:(id)sender
8:
旋轉360度
//旋轉360度
- (ibaction)rota360btnclick:(id)sender
常見的動畫效果(二)
使用前 需引入quartzcore.framework,並在相關檔案中加入 import quartzcore quartzcore.h 定義 shakefeedbackoverlay為uiimageview 設定 self.shakefeedbackoverlay.alpha 0.0 self.s...
Flex的動畫效果與變換 二
本文出自 在上篇文章 flex的動畫效果與變換 一 中講到了使用flex系統裡面自帶的一些動來效果的使用,但很多開發者都並不滿足flex裡提供的簡單的漸變大小,透明,移動,遮罩等的效果,如果是flash的開發者的話,更不用說了,在flash,多數人都是隨意的製作一些動畫效果等,而且形態多變。但是不是...
Flex動畫效果與變換 二
很多開發者都並不滿足flex裡提供的簡單的漸 變大小,透明,移動,遮罩等的效果,如果是flash的開發者的話,更不用說了,在flash,多數人都是隨意的製作一些動畫效果等,而且形態多變。但是 不是flex裡就不能實現呢?肯定不是,在flex裡也可以自定義動畫效果,只不過就是沒有flash裡面那麼簡單...