zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Atitit sql计划任务与查询优化器统计信息模块
    Atitit  数据库的事件机制触发器与定时任务attilax总结
    Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx
    Atitit 图像处理 深刻理解梯度原理计算.v1 qc8
    Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx
    Atitit Mysql查询优化器 存取类型 范围存取类型 索引存取类型 AND or的分析
    Atitit View事件分发机制
    Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结
    Atitti 存储引擎支持的国内点与特性attilax总结
    Atitit 深入理解软件的本质 attilax总结 软件三原则"三次原则"是DRY原则和YAGNI原则的折
  • 原文地址:https://www.cnblogs.com/crazygeek/p/5532834.html
Copyright © 2011-2022 走看看