layer 的常用属性

 

  

layer的各种属性代码示例:

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     // Do any additional setup after loading the view.
 4     
 5     // 设置图片为圆角 (self.qweImageView.frame.size.width / 2 变成圆形)
 6     self.imageView.layer.cornerRadius = self.imageView.frame.size.width / 2;
 7 //    self.imageView.layer.masksToBounds = YES;
 8     // 注意:光设置上边一句代码是实现不了效果的(下边的maskToBounds这个属性影响layer层的阴影效果)
 9     // 设置layer的阴影颜色
10     self.imageView.layer.shadowColor = [UIColor blueColor].CGColor;
11     // 设置layer的透明度
12     self.imageView.layer.shadowOpacity = 0.5f;
13     // 设置阴影偏移量
14     self.imageView.layer.shadowOffset = CGSizeMake(-30, 20);
15     // 设置阴影的模糊度
16     self.imageView.layer.shadowRadius = 1;
17     
18     // 创建View
19     UIView *myView = [[UIView alloc] init];
20     myView.backgroundColor = [UIColor redColor];
21     // 设置frame
22     myView.frame = CGRectMake(100, 500, 100, 100);
23     // 设置视图圆角 (self.qweImageView.frame.size.width / 2 如果是方形视图变成圆形)
24     myView.layer.cornerRadius = myView.frame.size.width / 2;
25     // 设置阴影颜色
26     myView.layer.shadowColor = [UIColor lightGrayColor].CGColor;
27     // 设置阴影偏移量
28     myView.layer.shadowOffset = CGSizeMake(10, 10);
29     // 设置阴影的透明度
30     myView.layer.shadowOpacity = 0.8f;
31     // 设置阴影的模糊度
32     myView.layer.shadowRadius = 1;
33     // 添加到View上
34     [self.view addSubview:myView];
35     
36     [self customLayer];
37 }
38 
39 - (void)customLayer {
40     // 创建一个layer对象
41     CALayer *layer = [CALayer layer];
42     // 设置对象的位置和大小
43     layer.frame = CGRectMake(300, 280, 100, 100);
44     // 设置背景颜色
45     layer.backgroundColor = [UIColor redColor].CGColor;
46     // 设置锚点
47 //    layer.anchorPoint = CGPointMake(0, 0);
48     // 设置大小
49     layer.position = CGPointMake(100, 100);
50     // layer需要添加到layer层
51     [self.view.layer addSublayer:layer];
52 }

 

 

 1 #pragma mark - CABasicAnimation
 2 - (IBAction)CABasicAnimation:(id)sender {
 3     
 4     // 第一步:创建动画对象
 5     CABasicAnimation *basicAnimation = [CABasicAnimation animation];
 6     // 第二步:告诉layer层需要执行什么样的动画(后边设置的内容为CALayer的相关属性)
 7     basicAnimation.keyPath = @"position";  // position 改变位置的
 8     // 第三步:告诉layer从哪里来,到哪里去
 9     basicAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(100, 100)];
10     basicAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(300, 600)];
11     // 注意点: 如果要实现图片不会到原来点,需要以下两句代码
12     basicAnimation.removedOnCompletion = NO;
13     // 设置保存动画状态的内容
14     basicAnimation.fillMode = kCAFillModeForwards;
15     
16     // 第四步:设置动画持续的时长
17     basicAnimation.duration = 6.0f;
18     // 第五步:将要执行的动画添加到calayer上
19     [self.imageView.layer addAnimation:basicAnimation forKey:@"basic"];
20     // *************翻转效果
21     CABasicAnimation *basic = [CABasicAnimation animation];
22     basic.keyPath = @"transform";
23     // 设置翻转的地方
24     basic.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2, 0, 0, 1)];
25     basic.duration = 0.2f;
26     [self.imageView.layer addAnimation:basic forKey:@"aaaa"];
27     // 根据key去移除动画
28     //    [self.imageView.layer removeAnimationForKey:@"basic"];
29 }
30 
31 #pragma mark - CAKeyframeAnimation
32 - (IBAction)CAKeyAnimation:(id)sender {
33     // 第一步:创建对象
34     CAKeyframeAnimation *keyAnimation = [CAKeyframeAnimation animation];
35     // 第二步:设置动画轨迹
36     keyAnimation.keyPath = @"transform.rotation";
37     // 第三步:设置翻转的角度 (弧度计算公式:度数/180*M_PI)
38     keyAnimation.values = @[@(-300 / 180.0 * M_PI), @(300 / 180.0 * M_PI), @(-180 / 180.0 * M_PI)];
39     // 第四步:设置时长
40     keyAnimation.duration = 15.0f;
41     // 第五步:添加动画到layer层
42     [self.view.layer addAnimation:keyAnimation forKey:@"bbbb"];
43 }
44 
45 #pragma mark - CAAnimationGroup
46 - (IBAction)CAAnimationGroup:(id)sender {
47     // 平移动画
48     CABasicAnimation *basic1 = [CABasicAnimation animation];
49     basic1.keyPath = @"transform.translation.y";    // 按照y轴平移
50     basic1.toValue = @(400);
51     // 缩小动画
52     CABasicAnimation *basic2 = [CABasicAnimation animation];
53     basic2.keyPath = @"transform.scale";  // 缩小
54     basic2.toValue = @(0.3);
55     // 旋转动画
56     CABasicAnimation *basic3 = [CABasicAnimation animation];
57     basic3.keyPath = @"transform.rotation";   // 旋转
58     basic3.toValue = @(M_PI);
59     
60     // 需要创建管理各个动画的动画组
61     CAAnimationGroup *group = [CAAnimationGroup animation];
62     group.animations = @[basic1,basic2,basic3];
63     // group 会自动分配时间
64     group.duration = 5.0f;
65     
66     [self.imageView.layer addAnimation:group forKey:@"ccccc"];
67 }
68 
69 #pragma mark - CASpring
70 - (IBAction)CASpring:(id)sender {
71     // 设置对象
72     CASpringAnimation *spring = [CASpringAnimation animation];
73     spring.keyPath = @"transform.scale";
74     spring.fromValue = @1;
75     spring.toValue = @0.2;
76     spring.duration = 3.0f;
77     
78     [self.imageView.layer addAnimation:spring forKey:@"ddddd"];
79 }

 

posted @ 2016-05-28 16:03  Leo-Wmw  阅读(4319)  评论(0编辑  收藏  举报