這期動畫是對基礎(chǔ)動畫的一個小結(jié)。
動畫的基本屬性請看:iOS動畫一
說到總結(jié)基礎(chǔ)動畫再總結(jié)下屬性吧。
想要的動畫的動畫屬性
typedef enum : NSUInteger {
Fade = 1, //淡入淡出
Push, //推擠
Reveal, //揭開
MoveIn, //覆蓋
Cube, //立方體
SuckEffect, //吮吸
OglFlip, //翻轉(zhuǎn)
RippleEffect, //波紋
PageCurl, //翻頁
PageUnCurl, //反翻頁
CameraIrisHollowOpen, //開鏡頭
CameraIrisHollowClose, //關(guān)鏡頭
CurlDown, //下翻頁
CurlUp, //上翻頁
FlipFromLeft, //左翻轉(zhuǎn)
FlipFromRight, //右翻轉(zhuǎn)
} AnimationType;
動畫順序速率的快慢
kCAMediaTimingFunctionLinear 線性,即勻速
kCAMediaTimingFunctionEaseIn 先慢后快
kCAMediaTimingFunctionEaseOut 先快后慢
kCAMediaTimingFunctionEaseInEaseOut 先慢后快再慢
kCAMediaTimingFunctionDefault 實(shí)際效果是動畫中間比較快.
動畫執(zhí)行的方向
kCATransitionFromLeft
kCATransitionFromBottom;
kCATransitionFromRight;
kCATransitionFromTop;
屏幕快照 2015-11-02 13.34.33.png
#pragma CATransition動畫剝離 傳入一個1.過度動畫類型和2.動畫方向,還有要在3.哪個視圖上顯示。
- (void) transitionWithType:(NSString *) type WithSubtype:(NSString *) subtype ForView : (UIView *) view
{
//創(chuàng)建CATransition對象
CATransition *animation = [CATransition animation];
//設(shè)置運(yùn)動時間
animation.duration = JFDURATION;
//設(shè)置運(yùn)動type
animation.type = type;
if (subtype != nil) {
//設(shè)置子類
animation.subtype = subtype;
}
//設(shè)置運(yùn)動速度
animation.timingFunction = UIViewAnimationOptionCurveEaseInOut;
[view.layer addAnimation:animation forKey:@"animation"];
}
#pragma UIView實(shí)現(xiàn)動畫
- (void) animationWithView : (UIView *)view WithAnimationTransition : (UIViewAnimationTransition) transition
{
[UIView animateWithDuration:JFDURATION animations:^{
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:transition forView:view cache:YES];
}];
}
基礎(chǔ)動畫效果圖.gif
2.gif
注本博文是參考一個小青玉伏案 的博友,在此感謝他的總結(jié)。
具體實(shí)現(xiàn)已經(jīng)在源碼里面解釋的很清楚了,不懂的話可以直接評論或者私信。