拋物線動(dòng)畫

動(dòng)畫管理類Animal

/**

?*? 開始動(dòng)畫

?*

?*? @param?view? ? ? ? 添加動(dòng)畫的view

? ? ? ? view為button時(shí)? ? _layer.contents = (__bridge id)view.imageView.image.CGImage

?? ? ? ? view 為imageView時(shí)? ? _layer.contents = view.layer.contents

?*? @param?rect? ? ? ? view 的絕對frame

?*? @param?finishPoint 動(dòng)畫終點(diǎn)位置

?*? @param?animationFinisnBlock 動(dòng)畫完成回調(diào)

?*/

-(void)startAnimationandView:(UIButton*)view andRect:(CGRect)rect andFinisnRect:(CGPoint)finishPoint andFinishBlock:(animationFinisnBlock)completion{


?//圖層

? ? _layer= [CALayerlayer];

? ? _layer.contents = view.layer.contents;

? ? _layer.contentsGravity = kCAGravityResizeAspect;


? ? // 改變做動(dòng)畫圖片的大小

? ? rect.size.width=40;

? ? rect.size.height=40;? //重置圖層尺寸

? ? _layer.bounds= rect;

? ? _layer.cornerRadius = rect.size.width/2;

? ? _layer.masksToBounds=YES;? ? ? ? ? //圓角

? ? AppDelegate*delegate = (AppDelegate*)[UIApplicationsharedApplication].delegate;

? ? [delegate.window.layeraddSublayer:_layer];


? ? _layer.position=CGPointMake(rect.origin.x+view.frame.size.width/2,CGRectGetMidY(rect));//開始點(diǎn)

? ? // 路徑

? ? UIBezierPath *path = [UIBezierPath bezierPath];

? ? [pathmoveToPoint:_layer.position];


? ? //確定拋物線的最高點(diǎn)位置? controlPoint

? ? [pathaddQuadCurveToPoint:finishPoint controlPoint:CGPointMake(ScreenWidth/2+100 , rect.origin.y-80)];

? ? //關(guān)鍵幀動(dòng)畫

? ? CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

? ? pathAnimation.path= path.CGPath;

? ? // pathAnimation.delegate = self;


? ? //往下拋時(shí)旋轉(zhuǎn)小動(dòng)畫

? ? CABasicAnimation *rotateAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];

? ? rotateAnimation.removedOnCompletion=YES;

? ? rotateAnimation.fromValue= [NSNumbernumberWithFloat:0];

? ? rotateAnimation.toValue= [NSNumbernumberWithFloat:12];


? ? /**

?? ? *? kCAMediaTimingFunctionLinear? 動(dòng)畫從頭到尾的速度是相同的

?? ? kCAMediaTimingFunctionEaseIn? 動(dòng)畫以低速開始瓶竭。

?? ? kCAMediaTimingFunctionEaseOut? 動(dòng)畫以低速結(jié)束荤堪。

?? ? kCAMediaTimingFunctionEaseInEaseOut? 動(dòng)畫以低速開始和結(jié)束沟绪。

?? ? kCAMediaTimingFunctionDefault

?? ? */


? ? rotateAnimation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

? ? CAAnimationGroup *groups = [CAAnimationGroup animation];

? ? groups.animations=@[pathAnimation,rotateAnimation];

? ? groups.duration=1.2f;


? ? //設(shè)置之后做動(dòng)畫的layer不會(huì)回到一開始的位置

? ? groups.removedOnCompletion=NO;

? ? groups.fillMode=kCAFillModeForwards;


? ? //讓工具類成為組動(dòng)畫的代理

? ? groups.delegate=self;

? ? [_layer addAnimation:groups forKey:@"1"];

? ? if(completion) {

? ? ? ? _animationFinisnBlock= completion;

? ? }

}

//動(dòng)畫完成后代理

- (void)animationDidStop:(CAAnimation*)anim finished:(BOOL)flag

{

? ? //? ? [anim def];

? ? if(anim == [_layeranimationForKey:@"1"]) {


? ? ? ? [_layer removeFromSuperlayer];

? ? ? ? _layer=nil;

? ? ? ? if (_animationFinisnBlock) {

? ? ? ? ? ? _animationFinisnBlock(YES);

? ? ? ? }

? ? }

}

//上下抖動(dòng)動(dòng)畫

+(void)shakeAnimation:(UIView*)shakeView

{

? ? CABasicAnimation *shakeAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];

? ? shakeAnimation.duration=0.25f;

? ? shakeAnimation.fromValue= [NSNumbernumberWithFloat:-5];

? ? shakeAnimation.toValue= [NSNumbernumberWithFloat:5];

? ? shakeAnimation.autoreverses=YES;

? ? [shakeView.layeraddAnimation:shakeAnimationforKey:nil];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市彬檀,隨后出現(xiàn)的幾起案子甘萧,更是在濱河造成了極大的恐慌彩匕,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堪伍,死亡現(xiàn)場離奇詭異,居然都是意外死亡觅闽,警方通過查閱死者的電腦和手機(jī)帝雇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛉拙,“玉大人尸闸,你說我怎么就攤上這事≡谐” “怎么了吮廉?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長畸肆。 經(jīng)常有香客問我宦芦,道長,這世上最難降的妖魔是什么轴脐? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任调卑,我火速辦了婚禮,結(jié)果婚禮上大咱,老公的妹妹穿的比我還像新娘恬涧。我一直安慰自己,他們只是感情好碴巾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布气破。 她就那樣靜靜地躺著,像睡著了一般餐抢。 火紅的嫁衣襯著肌膚如雪现使。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天旷痕,我揣著相機(jī)與錄音碳锈,去河邊找鬼。 笑死欺抗,一個(gè)胖子當(dāng)著我的面吹牛售碳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贸人,長吁一口氣:“原來是場噩夢啊……” “哼间景!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起艺智,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤倘要,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后十拣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體封拧,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年夭问,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泽西。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缰趋,死狀恐怖捧杉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情秘血,我是刑警寧澤味抖,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站直撤,受9級特大地震影響非竿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谋竖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一红柱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蓖乘,春花似錦锤悄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至些侍,卻和暖如春隶症,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背岗宣。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工蚂会, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人耗式。 一個(gè)月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓胁住,卻偏偏與公主長得像趁猴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子彪见,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容