最普通動畫:
//開始動畫
[uiview beginanimations:nil context:nil];
//設定動畫持續時間
[uiview setanimationduration:2];
//動畫的內容
frame.origin.x += 150;
[img setframe:frame];
//動畫結束
[uiview commitanimations];
連續動畫:乙個接乙個地顯示一系列的影象
nsarray *myimages = [nsarray arraywithobjects:
[uiimage imagenamed:@"myimage1.png"],
[uiimage imagenamed:@"myimage2.png"],
[uiimage imagenamed:@"myimage3.png"],
[uiimage imagenamed:@"myimage4.gif"], nil];
uiimageview *myanimatedview = [uiimageview alloc];
[myanimatedview initwithframe:[self bounds]];
myanimatedview.animationimages = myimages; //animationimages屬性返回乙個存放動畫的陣列
myanimatedview.animationduration = 0.25; //瀏覽整個一次所用的時間
myanimatedview.animationrepeatcount = 0; // 0 = loops forever 動畫重複次數
[myanimatedview startanimating];
[self addsubview:myanimatedview];
[myanimatedview release];
catransition public api動畫:
catransition *animation = [catransition animation];
//動畫時間
animation.duration = 0.5f;
//先慢後快
animation.timingfunction = uiviewanimationcurveeaseinout;
animation.fillmode = kcafillmodeforwards;
= no;
//各種動畫效果
/* kcatransitionfade;
kcatransitionmovein;
kcatransitionpush;z
kcatransitionreveal;
*/ /*
kcatransitionfromright;
kcatransitionfromleft;
kcatransitionfromtop;
kcatransitionfrombottom;
*/ //各種組合
animation.type = kcatransitionpush;
animation.subtype = kcatransitionfromright;
[self.view.layer addanimation:animation forkey:@"animation"];
catransition private api動畫:
animation.type可以設定為以下效果
動畫效果彙總:
/* suckeffect(三角)
rippleeffect(水波抖動)
pagecurl(上翻頁)
pageuncurl(下翻頁)
oglflip(上下翻轉)
camerairis/camerairishollowopen/camerairishollowclose (鏡頭快門,這一組動畫是有效果,只是很難看,不建議使用
而以下為則黑名單:
speweffect: 新版面在螢幕下方中間位置被釋放出來覆蓋舊版面.
- genieeffect: 舊版面在螢幕左下方或右下方被吸走, 顯示出下面的新版面 (阿拉丁燈神?).
- ungenieeffect: 新版面在螢幕左下方或右下方被釋放出來覆蓋舊版面.
- twist: 版面以水平方向像龍捲風式轉出來.
- tubey: 版面垂直附有彈性的轉出來.
- swirl: 舊版面360度旋轉並淡出, 顯示出新版面.
- charminultra: 舊版面淡出並顯示新版面.
- zoomyin: 新版面由小放大走到前面, 舊版面放大由前面消失.
- zoomyout: 新版面螢幕外面縮放出現, 舊版面縮小消失.
*/ uiview animations 動畫:
[uiview beginanimations:@"animationid" context:nil];
[uiview setanimationduration:0.5f];
[uiview setanimationcurve:uiviewanimationcurveeaseinout];
[uiview setanimationrepeatautoreverses:no];
//以下四種效果
/* [uiview setanimationtransition:uiviewanimationtransitionflipfromleft forview:self.view cache:yes];//oglflip, fromleft
[uiview setanimationtransition:uiviewanimationtransitionflipfromright forview:self.view cache:yes];//oglflip, fromright
[uiview setanimationtransition:uiviewanimationtransitioncurlup forview:self.view cache:yes];
[uiview setanimationtransition:uiviewanimationtransitioncurldown forview:self.view cache:yes];
*/ [self.view exchangesubviewatindex:1 withsubviewatindex:0];
[uiview commitanimations];
ios4.0新方法:
方法: +(void)animatewithduration:(nstimeinterval)duration animations:(void (^)(void))animations;
+ (void)animatewithduration:(nstimeinterval)duration animations:(void (^)(void))animations completion:(void (^)(bool finished))completion; //多乙個動畫結束後可以執行的操作.
//下邊是巢狀使用,先變大再消失的動畫效果.
[uiview animatewithduration:1.25 animations:^
completion:^(bool finished) completion:^(bool finished)];
}];
cocoachina有乙個例子uiviewdemo,傳送門:
iOS 動畫效果
最普通動畫 開始動畫 uiview beginanimations nil context nil 設定動畫持續時間 uiview setanimationduration 2 動畫的內容 frame.origin.x 150 img setframe frame 動畫結束 uiview commi...
iOS 動畫效果
最普通動畫 開始動畫 uiview beginanimations nil context nil 設定動畫持續時間 uiview setanimationduration 2 動畫的內容 frame.origin.x 150 img setframe frame 動畫結束 uiview commi...
IOS各種動畫
1。html view plain copy uibezierpath movepath uibezierpath bezierpath movepath movetopoint center movepath addquadcurvetopoint topos controlpoint cgpoi...