CALayer *transitionLayer = [[CALayer alloc] init];
//開啟一個動畫事務(wù)
[CATransaction begin];
//CATransaction 事務(wù)類,可以對多個layer的屬性同時進(jìn)行修改.它分隱式事務(wù),和顯式事務(wù).kCATransactionDisableActions
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
transitionLayer.opacity = 0.6;
//contents是layer的一個屬性
UIImageView *tempimgview;
for (UIView *aView in [picView subviews]) // picView代表需要執(zhí)行動畫的視圖
{
if([aView isKindOfClass:[UIImageView class]]){
//NSLog(@"=====找到imageview");
tempimgview = (UIImageView*)aView;
break;
}
}
//設(shè)置CALayer的內(nèi)容
transitionLayer.contents = (id)tempimgview.layer.contents;
//父類不同,所以需要坐標(biāo)系統(tǒng)的轉(zhuǎn)換峻黍,必須是處于同一window內(nèi)
transitionLayer.frame = [[UIApplication sharedApplication].keyWindow convertRect:tempimgview.bounds fromView:tempimgview];
[[UIApplication sharedApplication].keyWindow.layer addSublayer:transitionLayer];
[UIView beginAnimations:@"imageViewAnimation" context:(__bridge void *)(tempimgview)];
/// 提交事務(wù)
[CATransaction commit];
//路徑曲線:貝塞爾曲線钠绍,使動畫按照你所設(shè)定的貝塞爾曲線運(yùn)動
UIBezierPath *movePath = [UIBezierPath bezierPath];
[movePath moveToPoint:transitionLayer.position];
//傳入購物車的坐標(biāo)(X,Y)
CGPoint toPoint = CGPointMake(self.view.frame.size.width-20, 40);
//
[movePath addQuadCurveToPoint:toPoint
controlPoint:CGPointMake(self.view.frame.size.width-50,transitionLayer.position.y-50)];
//關(guān)鍵幀
CAKeyframeAnimation *positionAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
positionAnimation.path = movePath.CGPath;
positionAnimation.removedOnCompletion = YES;
//縮小動畫
CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"];
scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)];
//縮小動畫結(jié)束移除
scaleAnim.removedOnCompletion = YES;
NSLog(@"=====in enjoy55555");
//將拋物動畫和縮小動畫加入動畫組,可以執(zhí)行多個動畫谜酒,并且設(shè)置動畫的執(zhí)行時間
CAAnimationGroup *group = [CAAnimationGroup animation];
group.beginTime = CACurrentMediaTime();
group.duration = 0.7;
group.animations = [NSArray arrayWithObjects:positionAnimation,scaleAnim,nil];
group.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
//group.fillMode = kCAFillModeForwards;
group.removedOnCompletion = YES;
group.autoreverses= NO;
group.delegate=self;
[transitionLayer addAnimation:group forKey:@"opacity"];
關(guān)鍵幀動畫
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門趋急,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喝峦,“玉大人,你說我怎么就攤上這事呜达∫ゴ溃” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵查近,是天一觀的道長眉踱。 經(jīng)常有香客問我,道長霜威,這世上最難降的妖魔是什么谈喳? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮侥祭,結(jié)果婚禮上叁执,老公的妹妹穿的比我還像新娘茄厘。我一直安慰自己,他們只是感情好谈宛,可當(dāng)我...
- 文/花漫 我一把揭開白布次哈。 她就那樣靜靜地躺著,像睡著了一般吆录。 火紅的嫁衣襯著肌膚如雪窑滞。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼共啃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了暂题?” 一聲冷哼從身側(cè)響起移剪,我...
- 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎薪者,沒想到半個月后纵苛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡言津,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年攻人,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纺念。...
- 正文 年R本政府宣布烟逊,位于F島的核電站,受9級特大地震影響铺根,放射性物質(zhì)發(fā)生泄漏宪躯。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一位迂、第九天 我趴在偏房一處隱蔽的房頂上張望访雪。 院中可真熱鬧详瑞,春花似錦、人聲如沸臣缀。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽精置。三九已至计寇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脂倦,已是汗流浹背番宁。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長得像火欧,于是被迫代替她去往敵國和親播聪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 額...... 簡書居然沒有復(fù)制富文本的功能, 我在有道上記的筆記, 拷到這里就純文本了布隔。离陶。。不過還好衅檀,后來花了些...
- A-關(guān)鍵幀動畫 關(guān)鍵幀動畫就是在動畫控制過程中開發(fā)者指定主要的動畫狀態(tài)招刨,各個狀態(tài)間動畫如何進(jìn)行則由系統(tǒng)自動運(yùn)算補(bǔ)充...
- 補(bǔ)上:Demo地址 一.關(guān)鍵幀動畫 效果如下(模仿Twitter的啟動動畫) 需要知道的 什么是CAKeyfram...
- 先說下基本動畫部分基本動畫部分比較簡單, 但能實(shí)現(xiàn)的動畫效果也很局限使用方法大致為: 創(chuàng)建原始UI或者畫面 創(chuàng)建C...
- 首先web工程一般的啟動方式是web容器,如tomcat,jetty哀军。然后由于使用了spring的配置中心沉眶,你需要...