#pargma mark - Layer

1. 设置当前视图的背景颜色

self.view.backgroundColor = [UIColor lightGrayColor];

2. 创建一个视图,并且设置frame

UIView *myView = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 100, 100)];

3. 将创建的视图添加到当前视图

[self.view addSubview:myView];

4. 设置创建视图的背景颜色

myView.backgroundColor = [UIColor blueColor];

5. 设置视图的层属性,每个视图都关联着一个Layer

设置 创建视图图层 的 背景颜色,即为 视图 本身 的 背景颜色 可通过Debug查看

myView.layer.backgroundColor = [UIColor redColor].CGColor;

// myView.backgroundColor = [UIColor yellowColor];

设置图层的边界宽度

myView.layer.borderWidth = 10;

设置图层的边界颜色 ,默认为黑色

myView.layer.borderColor = [UIColor whiteColor].CGColor;

设置拐点的圆角半径, 可以巧妙的利用该方法画圆(将圆角半径设置为视图宽度的一般即可)

myView.layer.cornerRadius = 50;

添加一张图片

myView.layer.contents = (__bridge id _Nullable)([UIImage imageNamed:@"btn_02"].CGImage);

将图片超出圆角半径的内容裁剪掉

myView.clipsToBounds = YES;

//myView.layer.masksToBounds = YES;

6.基础动画: 3种方式 --> 中心点移动/大小变化/旋转

CABasicAnimation *basicAnimation = [CABasicAnimation animation];

动画时间

basicAnimation.duration = 2;

动画重复次数

basicAnimation.repeatCount = 3;

basicAnimation.removedOnCompletion = YES;

//填充模式4中 至今木有弄懂  `backwards', `forwards', `both' and `removed'

// basicAnimation.fillMode = @"backwards";

6.1 中心点移动动画

basicAnimation.fromValue = [NSValue valueWithCGPoint: CGPointMake(50, 50) ];

basicAnimation.byValue = [NSValue valueWithCGPoint:CGPointMake(200, 200)];

basicAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(300, 300)];

basicAnimation.keyPath = @"position";

6.2 大小变化动画

basicAnimation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 300, 400)];

basicAnimation.keyPath = @"bounds";

6.3 旋转

basicAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_4 + M_PI_2, 0, 0, 1)];

basicAnimation.keyPath = @"transform";

//注意:设置完动画后要添加动画

[myLayer addAnimation:basicAnimation forKey:nil];

7. 关键帧动画: 两种方式 --> 定义关键点/定义路径

CAKeyframeAnimation *keyFrameAni = [CAKeyframeAnimation animation];

keyFrameAni.duration = 2;

keyFrameAni.repeatCount = 3;

7.1 定义关键点

NSValue *value1 = [NSValue valueWithCGPoint: CGPointMake(50, 50) ];

NSValue *value2 = [NSValue valueWithCGPoint:CGPointMake(100, 200)];

NSValue *value3 = [NSValue valueWithCGPoint:CGPointMake(300, 300)];

keyFrameAni.keyPath = @"position";

keyFrameAni.values = @[value1,value2,value3];

7.2 定义路径

CGMutablePathRef path = CGPathCreateMutable();

//CGPathAddEllipseInRect(path, nil, CGRectMake(50, 50, 300, 400));

CGPathAddArc(path, nil, 100, 100, 50, M_PI_2, M_PI, YES);

keyFrameAni.path = path;

CGPathRelease(path);

keyFrameAni.keyPath = @"position";

[myLayer addAnimation:keyFrameAni forKey:nil];

8. 转换动画 --> 可有立体效果

CATransition *transAnimaiton = [CATransition animation];

transAnimaiton.duration = 3;

transAnimaiton.type = @"cube";

transAnimaiton.subtype = @"fromTop";

[myLayer addAnimation:transAnimaiton forKey:nil];

UI- Layer的使用总结(附动画)的更多相关文章

  1. iOS开发笔记7:Text、UI交互细节、两个动画效果等

    Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中 ...

  2. 教你避雷!网页设计中常见的17个UI设计错误集锦(附赠设计技巧)

    以下内容由摹客团队翻译整理,仅供学习交流,摹客iDoc是支持智能标注和切图的产品协作设计神器. 精心设计的用户界面对网站意义重大.具备所有最新功能和响应式设计有助于提高网站的搜索引擎排名,从而增加受众 ...

  3. UI控件之UIView与动画

    UIView:用来展示用户的界面,响应用户的操作(继承自UIResponder) UIView的作用:绘图.动画.处理事件 UIView可以包含和管理子视图,并且决定子视图的位置大小 获取所有的子视图 ...

  4. Core Animation 文档翻译—附录A(Layer样貌相关属性动画)

    前言   在渲染过程中,核心动画获取Layer的各种属性并以特定的顺序渲染他们.这个顺序决定了Layer的最终的样貌.本节将会阐述通过设置不同的Layer样貌相关属性对应产生的渲染结果. 注意:Mac ...

  5. NGUI Camera's raycast hit through the UI Layer issue

    Raycast into GUI?http://forum.unity3d.com/threads/raycast-into-gui.263397/ << ; Ray myray = UI ...

  6. Android开发UI之给ListView设置布局动画效果

    1.通过JAVA代码添加,资源文件基本上不修改 XML文件,只添加了一个ListView,就不贴XML文件的代码了. java代码: public class MainActivity extends ...

  7. UI设计篇·入门篇·简单动画的实现,为布局设置动画,用XML布置布局动画

    不仅仅控件可以设置动画,一个布局也可以设置动画, 当给一个布局设置了动画的时候,这个布局里所包含的控件都会依赖执行这些动画. 为布局设置动画的实现步骤: 1.新建一个动画,设置需要实现的形式 2.新建 ...

  8. UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法

    基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...

  9. iOS CoreAnimation详解(一) 有关Layer的动画

    以前由于项目需要 也写了一些动画 ,但是知识不系统,很散.这段时间趁着项目完成的空袭,来跟着大神的脚步系统的总结一下iOS中Core Animation的知识点. 原博客地址:http://blog. ...

随机推荐

  1. 自己定义图片的progressbar

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zpf8861/article/details/36183455 Android系统自带的Progre ...

  2. keras中 LSTM 的 [samples, time_steps, features] 最终解释

    I am going through the following blog on LSTM neural network:http://machinelearningmastery.com/under ...

  3. MariaDB复制架构中应该注意的问题

    一.复制架构中应该注意的问题: 1.限制从服务器只读 在从服务器上设置read_only=ON,此限制对拥有SUPPER权限的用户均无效: 阻止所有用户(在从服务器执行一下命令并保持此线程,也就是执行 ...

  4. Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"

    Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索" //匹配右边 var   reg: TPerlRegEx; begin   ...

  5. HZNUOJ 2508:双峰插云

    我们注意到总的颜色种类只有200,故我们可以先处理出所有云朵中每一种颜色有多少朵云朵拥有,此处我们约定用$cnt[] 表示$ 然后暴力枚举将哪朵云分给老薛,记录三个临时变量$Max_{kk}, Max ...

  6. HDU - 6321 Problem C. Dynamic Graph Matching (状压dp)

    题意:给定一个N个点的零图,M次操作,添加或删除一条边,每一次操作以后,打印用1,2,...N/2条边构成的匹配数. 分析:因为N的范围很小,所以可以把点的枚举状态用二进制表示集合.用一维数组dp[S ...

  7. maven项目,去除jar包中的不想要的依赖关系

    解释:就是说项目中要用到某一个a.jar包,通过maven引入了之后,也自动的导入了该jar包所依赖的包,这里就会存在一个问题,如果a.jar包依赖b.jar这个项目的1.0版本,可是我的项目中已经有 ...

  8. Android bluetooth介绍

    Android bluetooth介绍(一):基本概念及硬件接口Android bluetooth介绍(二): android 蓝牙代码架构及其uart 到rfcomm流程Android blueto ...

  9. 自动回复之实现随机回复与常用Mapper XML标签

    [常用Mapper XML标签] 1.基本的:select.insert.update 等 2.可读性.方便拼SQL:where.set.trim 3.减少重复:sql 4.逻辑控制:if.choos ...

  10. python的正则表达式捕获组命名问题