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

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

iOS-CALayer&&CAAnimation

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

一、CALayer

1.CALayer

CALayer屬于QuartzCore.framework框架,從Xcode5起我們不必要手動導入這個庫。

CALayer我們可以簡單理解為一個層。當我們繪制的UIView能在屏幕顯示,其實質是因為這個層。

我們下面通過代碼理解一下CALayer的基本用法。

    CALayer *caLayer = [CALayer layer];    caLayer.backgroundColor = [UIColor cyanColor].CGColor;    caLayer.frame = CGRectMake(10, 20, 100, 100);    caLayer.cornerRadius = 20;
caLayer.masksToBounds = YES; [self.view.layer addSublayer:caLayer];

 當我們執行上述代碼的時候,會在view上添加一個layer層。其效果如下圖所示。

其中cornerRadius值的大小決定layer的形狀,在四個角用它的長度做半切圓。我們也可以設置邊框,邊框顏色等信息。

    CALayer *caLayer1 = [CALayer layer];    caLayer1.frame = CGRectMake(10, 20, 200, 200);    caLayer1.contents = (id)[UIImage imageNamed:@"health.jpg"].CGImage;    caLayer1.cornerRadius = 100;    caLayer1.masksToBounds = YES;    caLayer1.borderWidth = 10;    caLayer1.borderColor = [UIColor greenColor].CGColor;    [self.view.layer addSublayer:caLayer1];

 效果如下:

 

CALayer還有一個重要的屬性position(錨點默認0.5,0.5),和caLayer.anchorPoint(0-1)

我們可以通過下圖理解:

執行下面代碼:

    CALayer *caLayer = [CALayer layer];    caLayer.backgroundColor = [UIColor cyanColor].CGColor;    caLayer.cornerRadius = 20;    caLayer.bounds = CGRectMake(200, 20, 200, 200);    caLayer.position = CGPointMake(100, 100);    caLayer.anchorPoint = CGPointMake(0.5, 0);    caLayer.masksToBounds = YES;    [self.view.layer addSublayer:caLayer];

效果為:

2.CATextLayer

CATextLayer是CALayer的子類。我們可以在上面寫文字,設置字體等信息。

    CATextLayer *caTextlayer = [CATextLayer layer];    caTextlayer.frame = CGRectMake(10, 20, 300, 100);    caTextlayer.string = @"Roy says hello";    caTextlayer.foregroundColor = [UIColor orangeColor].CGColor;    [self.view.layer addSublayer:caTextlayer];

 

3.CAGradientLayer

這個類也是繼承CALayer.可以實現顏色漸變。

    CAGradientLayer *dLayer = [CAGradientLayer layer];    dLayer.colors = @[(id)[UIColor yellowColor].CGColor,(id)[UIColor grayColor].CGColor,(id)[UIColor redColor].CGColor,(id)[UIColor greenColor].CGColor];    dLayer.startPoint = CGPointMake(0, 0);    dLayer.endPoint = CGPointMake(1, 1);    dLayer.locations = @[@0.0,@0.2,@0.5,@01];//0-1    dLayer.frame = CGRectMake(10, 20, 320, 100);    [self.view.layer addSublayer:dLayer];

二、CAAnimation

 關于CAAnimation,能夠看懂下面一幅圖和下面的代碼即可。

#import "ViewController.h"@interface ViewController (){    CALayer *layer;}@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.    layer = [CALayer layer];    layer.frame = CGRectMake(10, 20, 60, 60);    layer.backgroundColor = [UIColor grayColor].CGColor;    [self.view.layer addSublayer:layer];        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];    button.frame = CGRectMake(10, 20, 100, 30);    button.backgroundColor = [UIColor purpleColor];    [button addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:button];   // [self basicAnimation];   // [self keyframeAnimation];   // [self groupAnimation];   }-(void)btnClick{    //過渡動畫,只有在點擊事件中才能執行     [self transitionAnimation];}//基礎動畫,繼承屬性動畫-(void)basicAnimation{    /*           //背景顏色變換動畫        CABasicAnimation *animation = [CABasicAnimation animation];        //The key-path describing the PRoperty to be animated        animation.keyPath = @"backgroundColor";        //動畫周期        animation.duration = 2;        //從哪個屬性開始動畫        animation.fromValue = (id)[UIColor grayColor].CGColor;        //到哪個屬性結束動畫        animation.toValue = (id)[UIColor greenColor].CGColor;        [layer addAnimation:animation forKey:nil];     */        //位置移動        CABasicAnimation *animation = [CABasicAnimation animation];    animation.keyPath = @"position";    animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(10, 20)];    animation.toValue = [NSValue valueWithCGPoint:CGPointMake(100, 200)];    animation.duration = 3;    [layer addAnimation:animation forKey:nil];}//幀動畫,繼承屬性動畫-(void)keyframeAnimation{    /*    CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];    //動畫的屬性    animation.keyPath = @"backgroundColor";    //動畫過渡值    animation.values = @[(id)[UIColor redColor].CGColor,(id)[UIColor greenColor].CGColor,(id)[UIColor purpleColor].CGColor];    //動畫過渡時間    animation.keyTimes = @[@0.0,@0.5,@1];    animation.duration = 2;    [layer addAnimation:animation forKey:nil];     */        CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];    animation.keyPath = @"position";    animation.values = @[[NSValue valueWithCGPoint:CGPointMake(10, 20)],[NSValue valueWithCGPoint:CGPointMake(10, 300)],[NSValue valueWithCGPoint:CGPointMake(200, 300)],[NSValue valueWithCGPoint:CGPointMake(10, 300)],[NSValue valueWithCGPoint:CGPointMake(10, 20)],[NSValue valueWithCGPoint:CGPointMake(50, 50)]];    animation.autoreverses = YES;    animation.duration = 2;    [layer addAnimation:animation forKey:nil];}//組動畫,組合動畫,多個動畫同時執行-(void)groupAnimation{    //移動    CABasicAnimation *basic =[CABasicAnimation animation ];    basic.keyPath = @"position";    basic.duration = 2;    basic.autoreverses = YES;    basic.fromValue = [NSValue valueWithCGPoint:layer.position];    basic.byValue = [NSValue valueWithCGPoint:CGPointMake(20, 0)];    //顏色變化    CAKeyframeAnimation *keyframe = [CAKeyframeAnimation animation];    keyframe.keyPath = @"backgroundColor";    keyframe.values =  @[(id)[UIColor redColor].CGColor,(id)[UIColor yellowColor].CGColor,(id)[UIColor greenColor].CGColor];    keyframe.duration = 2;    keyframe.autoreverses = YES;            CAAnimationGroup *group = [CAAnimationGroup animation];    group.animations = @[basic,keyframe];    //這邊時間是以group的時間為主的    group.duration = 4;    [layer addAnimation:group forKey:nil];}//過渡動畫- (void)transitionAnimation{    CATransition *animation = [CATransition animation];    animation.type = @"pageUnCurl";    animation.delegate = self;    animation.duration = 2;    animation.autoreverses = YES;    [layer addAnimation:animation forKey:nil];    }- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end
Animation

 其中過度動畫的類型,我們可以使用下面的效果。

cube 方塊

?suckEffect 三角

?rippleEffect 水波抖動?

pageCurl 上翻頁?

pageUnCurl 下翻頁?

cameraIrisHollowOpen 鏡頭快門開?

cameraIrisHollowClose 鏡頭快門開

 

 

 

 

 

 
 
 
 
 
 
 
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产欧美精品| 亚洲福利在线观看| 色天天综合狠狠色| 俺也去精品视频在线观看| 2019中文字幕在线| 亚洲精品98久久久久久中文字幕| 欧美视频在线免费| 欧美成人精品激情在线观看| 久久99精品视频一区97| 国产精品日韩在线| 日韩欧美大尺度| 国产一区二区三区三区在线观看| 亚洲美女又黄又爽在线观看| 成人精品一区二区三区电影免费| 亚洲国产成人av在线| 国产亚洲精品久久| 日韩精品极品在线观看| 亚洲人成网站色ww在线| 欧美网站在线观看| 亚洲国产高清自拍| 在线观看亚洲视频| 91国偷自产一区二区三区的观看方式| 亚洲人成欧美中文字幕| 亚洲一区中文字幕在线观看| 成人国产精品av| 日韩大陆欧美高清视频区| 欧美诱惑福利视频| 亚洲视频在线观看视频| 55夜色66夜色国产精品视频| 国产精品久久久久久婷婷天堂| 欧美性生交大片免网| 中文字幕精品一区久久久久| 成人国产在线激情| 亚洲成人av在线播放| 91地址最新发布| 欧美大片大片在线播放| 国产ts一区二区| 欧美成人免费一级人片100| 中文字幕在线观看亚洲| 日韩视频亚洲视频| 国产精品久久久久久av下载红粉| 欧美日韩亚洲国产一区| 91产国在线观看动作片喷水| 午夜精品久久久久久久99黑人| 日韩免费在线观看视频| 播播国产欧美激情| 国产裸体写真av一区二区| 国产性猛交xxxx免费看久久| 欧美裸身视频免费观看| 45www国产精品网站| 国产日韩精品入口| 久久精品久久久久久| 中文字幕av一区| 精品国产成人在线| 国产成人aa精品一区在线播放| 2019av中文字幕| 日韩精品视频免费在线观看| 欧美另类极品videosbestfree| 欧美又大又硬又粗bbbbb| 成人av电影天堂| 日韩成人av在线播放| 国产亚洲精品高潮| 国产成人免费av电影| 91豆花精品一区| 日本欧美一二三区| 国产xxx69麻豆国语对白| 中文字幕亚洲综合久久筱田步美| 国产视频丨精品|在线观看| 亚洲一区二区三区四区在线播放| 国产日韩中文在线| 国产视频综合在线| 高清欧美性猛交| 亚洲一区二区中文字幕| 亚洲欧美成人在线| 欧美精品在线看| 国产精品视频播放| 久久99亚洲热视| 久久五月天综合| 国产精品亚洲片夜色在线| 国产视频999| 国产精自产拍久久久久久| 狠狠爱在线视频一区| 国产精品久久999| 国产精品96久久久久久| 91精品久久久久久久久久久久久| 38少妇精品导航| 欧美日韩中文字幕日韩欧美| 精品视频在线导航| 亚洲色图五月天| 亚洲综合色av| 91九色精品视频| 国产91精品久久久| 日韩精品亚洲元码| 国产一区二区黄| 亚洲欧洲高清在线| 午夜精品久久久久久久99热浪潮| 亚洲精品久久久久久久久久久| 国产成人中文字幕| 日韩成人在线播放| 日韩欧美黄色动漫| 精品无人区乱码1区2区3区在线| 国产亚洲欧美视频| 国产成人av网址| 在线日韩中文字幕| 国产情人节一区| 国产福利精品视频| 国产成人精品视频在线观看| 欧美日韩性视频在线| 色999日韩欧美国产| 81精品国产乱码久久久久久| 国产精品亚洲第一区| 国产91精品高潮白浆喷水| 日韩av不卡在线| 国内免费久久久久久久久久久| 国产精品久久一区主播| 欧美午夜精品久久久久久久| 91社影院在线观看| 欧美激情亚洲综合一区| 国产精品一区二区三区成人| 九九热这里只有精品6| 亲爱的老师9免费观看全集电视剧| 国产精品久久久久av| 成人激情视频在线观看| 欧美野外wwwxxx| 欧美日产国产成人免费图片| 亚洲欧美日韩综合| 日韩成人中文电影| 少妇精69xxtheporn| 色婷婷av一区二区三区在线观看| 欧美福利视频在线观看| 欧美怡红院视频一区二区三区| 日韩毛片中文字幕| 国产精品久久久久99| 日韩中文第一页| 亚洲图中文字幕| 久久99久国产精品黄毛片入口| 日韩精品在线影院| 91精品国产综合久久香蕉的用户体验| 亚洲欧美日韩精品久久奇米色影视| 亚洲国产日韩欧美在线动漫| 欧美激情免费视频| 亚洲最大福利网站| 亚洲电影免费观看高清完整版在线观看| 亚洲人午夜精品| 久久久久国产精品免费网站| 国产精品女人网站| 欧美精品激情blacked18| 在线精品播放av| 国产精品三级久久久久久电影| 欧美精品在线免费| 欧美极品美女电影一区| 亚洲美女激情视频| 欧美大片免费观看在线观看网站推荐| 清纯唯美日韩制服另类| 亚洲激情第一页| xxxxx成人.com| 亚洲色图第一页| 亚洲男人第一av网站| 伊人成人开心激情综合网| 综合激情国产一区| 精品久久久久久电影| 中文字幕av一区中文字幕天堂| 午夜精品一区二区三区在线视| 日本一本a高清免费不卡|