亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOSCoreAnimation學習總結(3)--動畫的基本類型

2019-11-14 18:07:57
字體:
來源:轉載
供稿:網友

一. CABasicAnimation (基礎動畫)

移位:

    CABasicAnimation *animation = [CABasicAnimation animation];    //keyPath指定動畫類別,position表示移位    animation.keyPath = @"position";    //移動到x=200,y=200的位置    animation.toValue = [NSValue valueWithCGPoint:CGPointMake(200, 200)];    animation.duration = 2;    //動畫執行完畢后不刪除動畫    animation.removedOnCompletion = NO;    //保持最新的狀態    animation.fillMode = @"forwards";    //添加動畫    [self.layer addAnimation:animation forKey:nil];

縮放:

    CABasicAnimation *animation = [CABasicAnimation animation];    //keyPath指定動畫類別,bounds表示縮放    animation.keyPath = @"bounds";    //縮放到width=50,height=50    animation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 50, 50)];    animation.duration = 2;    //動畫完成不刪除動畫    animation.removedOnCompletion = NO;    //保持最新的狀態    animation.fillMode = @"forwards";        [self.layer addAnimation:animation forKey:nil];

旋轉:

    CABasicAnimation *animation = [CABasicAnimation animation];    //keyPath指定動畫類別,transform表示旋轉    animation.keyPath = @"transform";    //沿x,y軸順時針旋轉45度    animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_4, 1, 1, 0)];    animation.duration = 2;    animation.removedOnCompletion = NO;    animation.fillMode = @"forwards";        [self.layer addAnimation:animation forKey:nil];

 

二.  CAKeyframeAnimation (關鍵幀動畫)

    CAKeyframeAnimation *anim = [CAKeyframeAnimation animation];        anim.keyPath = @"position";    anim.removedOnCompletion = NO;    anim.fillMode = kCAFillModeForwards;    anim.duration = 2.0;        //設置圓形軌跡,并繞圓形軌跡移動    CGMutablePathRef path = CGPathCreateMutable();    CGPathAddEllipseInRect(path, NULL, CGRectMake(100, 100, 200, 200));    anim.path = path;    CGPathRelease(path);            // 設置動畫的執行節奏    // kCAMediaTimingFunctionEaseInEaSEOut : 一開始比較慢, 中間會加速,  臨近結束的時候, 會變慢    anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];    anim.delegate = self;    [anim setValue:@"aaa" forKey:@"TAG"];    [self.layer addAnimation:anim forKey:nil];

設置代理的回調方法,讓動畫結束后彈出提示

- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{    NSString *strTag = [anim valueForKey:@"TAG"];    if ([strTag isEqualToString:@"aaa"]) {        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Animation Done" message:@"動作完成" delegate:self cancelButtonTitle:nil otherButtonTitles:@"確定", nil];        [alert show];    }}

 

三. CATransition(轉場動畫)

(1)視圖跳轉

    _newView = [[UIView alloc] init];    _newView.frame = CGRectMake(100, 100, 100, 100);    [self.view addSubview:_newView];        UIView *view1 = [[UIView alloc] init];    view1.frame = CGRectMake(0, 0, 100, 100);    view1.backgroundColor = [UIColor yellowColor];    [_newView addSubview:view1];        UIView *view2 = [[UIView alloc] init];    view2.frame = CGRectMake(0, 0, 100, 100);    view2.backgroundColor = [UIColor greenColor];    [_newView addSubview:view2];

添加轉場按鈕事件處理:

- (IBAction)exchangeView {    // 轉場動畫    CATransition *transition = [CATransition animation];    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];    transition.type = @"pageCurl";    transition.subtype = kCATransitionFromRight;    transition.duration = 1;    [_newView exchangeSubviewAtIndex:0 withSubviewAtIndex:1];    [_newView.layer addAnimation:transition forKey:@"myAnimation"];}

(2)控制器跳轉

- (IBAction)pushView {    CATransition *transition = [CATransition animation];    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];    //立體動畫效果    transition.type = @"cube";    [self.navigationController.view.layer addAnimation:transition forKey:@"navAnimation"];    TestViewController *testVC = [[TestViewController alloc] init];    [self.navigationController showViewController:testVC sender:nil];}

四. CAAnimationGroup (組合動畫)

    //添加圖片    UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"curry.jpg"]];    imgView.frame = CGRectMake(100, 100, imgView.frame.size.width, imgView.frame.size.height);    [self.view addSubview:imgView];        //貝塞爾曲線路徑    UIBezierPath *movePath = [UIBezierPath bezierPath];    [movePath moveToPoint:CGPointMake(10.0, 10.0)];    [movePath addQuadCurveToPoint:CGPointMake(100, 300) controlPoint:CGPointMake(300, 100)];        //以下必須導入QuartzCore包    //關鍵幀動畫(位置)    CAKeyframeAnimation * posAnim = [CAKeyframeAnimation animationWithKeyPath:@"position"];    posAnim.path = movePath.CGPath;    posAnim.removedOnCompletion = YES;        //縮放動畫    CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"];    scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];    scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)];    scaleAnim.removedOnCompletion = YES;        //透明動畫    CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@"alpha"];    opacityAnim.fromValue = [NSNumber numberWithFloat:1.0];    opacityAnim.toValue = [NSNumber numberWithFloat:0.1];    opacityAnim.removedOnCompletion = YES;        //動畫組    CAAnimationGroup *animGroup = [CAAnimationGroup animation];    animGroup.animations = [NSArray arrayWithObjects:posAnim, scaleAnim, opacityAnim, nil];    animGroup.duration = 1;        [imgView.layer addAnimation:animGroup forKey:nil];

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品久久久久久久久| 精品国产31久久久久久| 国产中文日韩欧美| 国产精品a久久久久久| 亚洲福利视频久久| 成人久久一区二区| 成人做爽爽免费视频| 爽爽爽爽爽爽爽成人免费观看| 国产69精品99久久久久久宅男| 亚洲精品白浆高清久久久久久| 91精品国产91| 久久久久久久久久久国产| 亚洲天堂久久av| 热草久综合在线| 亚洲自拍在线观看| 色悠久久久久综合先锋影音下载| 欧洲亚洲女同hd| 精品国产一区二区三区久久狼黑人| 亚洲天堂av在线播放| 国产精品成人一区| 国内免费久久久久久久久久久| 久久九九全国免费精品观看| 久久久噜噜噜久久| 激情懂色av一区av二区av| 成人黄色免费看| 精品国偷自产在线视频| 91久久精品国产91久久| 国产日韩欧美中文| 国产欧美精品在线| 欧美专区在线播放| 亚洲成人久久久久| 国产精品 欧美在线| 国产精品久久久久9999| 国产成人精品视| 国产精品极品在线| 成人福利视频在线观看| 国产一区二区三区久久精品| 亚洲欧美999| 久久久久久久香蕉网| 亚洲人成在线一二| 97视频在线看| 国产日产欧美a一级在线| 亚洲少妇激情视频| 国产性猛交xxxx免费看久久| 日韩免费在线观看视频| 欧美午夜精品久久久久久浪潮| 人九九综合九九宗合| 成人国产精品一区二区| 久久99热精品这里久久精品| 色中色综合影院手机版在线观看| 成人在线播放av| 91香蕉嫩草影院入口| 国产精品香蕉国产| 亚洲精品美女在线观看播放| 久久久精品一区| 一道本无吗dⅴd在线播放一区| 色综合视频网站| 中文字幕日韩av电影| 国产精品第8页| 97人人做人人爱| 久久伊人色综合| 亚洲男人的天堂在线播放| 国产精品老女人精品视频| 久久精品色欧美aⅴ一区二区| 亚洲美女久久久| 国语自产精品视频在线看一大j8| 成人黄色中文字幕| 亚洲欧美精品伊人久久| 久久99国产精品自在自在app| 欧美大尺度电影在线观看| 欧美高清在线播放| 亚洲精品成人久久久| 日韩黄色高清视频| 日韩精品中文字| 久久久免费观看视频| 国内精品久久久久久久久| 久久精品视频在线| 日本高清久久天堂| 午夜精品www| 91精品免费久久久久久久久| 精品视频一区在线视频| 欧美成人一区在线| 欧美大片欧美激情性色a∨久久| 欧美精品成人在线| 久久久97精品| 国产精品video| 国产亚洲一区精品| 亚洲国产精品悠悠久久琪琪| 国产欧美日韩丝袜精品一区| 青草青草久热精品视频在线网站| 国产精品极品美女在线观看免费| 国产美女搞久久| 欧美午夜片欧美片在线观看| 精品福利一区二区| 91在线视频精品| 国产精品ⅴa在线观看h| 欧美中文在线字幕| 国产精品青青在线观看爽香蕉| 欧美有码在线视频| 亚洲91精品在线| 国产精品专区h在线观看| 国产视频丨精品|在线观看| 最近中文字幕mv在线一区二区三区四区| 日韩亚洲国产中文字幕| 亚洲欧美日韩中文在线| 欧美激情综合色综合啪啪五月| 国产精品视频久久| 亚洲va国产va天堂va久久| 午夜精品在线观看| 成人黄色大片在线免费观看| 亚洲美女性生活视频| 欧美日韩国产精品一区二区不卡中文| 精品亚洲一区二区三区在线播放| 欧美高清第一页| 精品magnet| 日本一区二区不卡| 欧美日韩性视频在线| 欧美精品久久一区二区| 亚洲精品视频久久| 欧美在线一级va免费观看| 九九热精品视频国产| 日本19禁啪啪免费观看www| 精品国产乱码久久久久久婷婷| 亚洲精品suv精品一区二区| 26uuu久久噜噜噜噜| 欧美精品成人91久久久久久久| 精品美女永久免费视频| 久久频这里精品99香蕉| 国产精品久久久久久久久久久久| 91tv亚洲精品香蕉国产一区7ujn| 日韩美女在线观看| 久久国产精品亚洲| 国产精品一区二区久久国产| 日韩福利在线播放| 欧美黑人一区二区三区| 日本欧美一级片| 亚洲第一页中文字幕| 黄网站色欧美视频| 亚洲精品动漫100p| 日韩亚洲第一页| 日韩视频中文字幕| 日韩成人在线播放| 国产精品一区二区三区成人| 国产成人极品视频| 国产精品网站入口| 色先锋资源久久综合5566| 成人福利视频网| 日韩中文第一页| 亚洲区一区二区| 91亚洲精品视频| 色妞色视频一区二区三区四区| 亚洲精品成人av| 97国产真实伦对白精彩视频8| 欧美性一区二区三区| 亚洲欧美自拍一区| 性亚洲最疯狂xxxx高清| 亚洲最新中文字幕| 国产一区二区三区视频免费| 欧美国产日产韩国视频| 欧美午夜性色大片在线观看| 日韩在线视频观看| 欧美日韩久久久久| 亚洲毛片在线观看| 日韩小视频在线观看|