iOS CALayer总结——图层几何】的更多相关文章

最近看了一下关于图层和动画的内容,所以写了一份总结,算是对这些内容的汇总吧,都是一些简单的基础知识,不知道大家都了不了解. 除了和用户的交互之外,图层的很多属性和视图基本上都是一样的,今天就先从CALayer的一些基础的属性入手,没有套路和技巧,只是对属性的介绍: 一.contents contents是CALayer的一个属性:@property(nullable, strong) id contents;它的类型是id,使用contents我们可以为一个普通的图层添加一张图片,但是在赋值的时…
1.CALayer 绘图层 在 iOS 系统中,你能看得见摸得着的东西基本上都是 UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是 UIView.其实 UIView 之所以能显示在屏幕上,完全是因为它内部的一个层.在创建 UIView 对象时,UIView 内部会自动创建一个层(即 CALayer 对象),通过 UIView 的 layer 属性可以访问这个层.当 UIView 需要显示到屏幕上时,会调用 drawRect: 方法进行绘图,并且会将所有内容绘制在自…
iOS开发UI篇—CAlayer(创建图层) 一.添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控制器view的layer上)  1 // 2 // YYViewController.m 3 // 01-创建一个简单的图层 4 // 5 // Created by apple on 14-6-21. 6 // Copyright (c) 2014年 itcase. All rights rese…
一.图层的几何 图层的几何简单通俗,图层的所有几何属性(包括矩阵变换),都可以有隐式和显式动画. 图层几何的属性: 1.position是CGPoint值,她指定图层相对于她图层的位置,该值基于父图层的坐标系. 2.bounds是CGRect值,她指定图层的原点(bounds.size)和图层的原点(bounds.origin - 当重写图层的drawRect的时候,bounds.origin可以作为图形上下文的原点). 3.frame是隐式的属性,她是position,bounds,ancho…
一.CALayer的常用属性 1.@propertyCGPoint position; 图层中心点的位置,类似与UIView的center:用来设置CALayer在父层中的位置:以父层的左上角为原点(0,0): 2. @property CGPoint anchorPoint; 称『定位点』.『锚点』,该描述是相对于x.y位置比例而言的默认在图像中心点(0.5.0.5)的位置:决定着CALayer身上的哪个点会再position属性所指的位置,以自己的左上角为原点(0,0):它的x.y取值范围都…
专用图层 复杂的组织都是专门化的 Catharine R. Stimpson 到目前为止,我们已经探讨过CALayer类了,同时我们也了解到了一些非常有用的绘图和动画功能.但是Core Animation图层不仅仅能作用于图片和颜色而已.本章就会学习其他的一些图层类,进一步扩展使用Core Animation绘图的能力. CAShapeLayer 在第四章『视觉效果』我们学习到了不使用图片的情况下用CGPath去构造任意形状的阴影.如果我们能用同样的方式创建相同形状的图层就好了. CAShape…
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // 创建一个图层 CALayer *layer = [CALayer layer]; // 设置尺寸 layer.bounds = CGRectMake(, , , ); // 设置位置 layer.position = CGPointMake(, ); // 设置…
● 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层(CALayer) ● 在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView 的layer属性可以访问这个层 @property(nonatomic,readonly,retain) CALayer *layer; ● 当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在 自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了U…
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIView *redView; @property (weak, nonatomic) IBOutlet UIImageView *imageV; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]…
跟着大神一起进步,本篇博客原文地址:http://blog.csdn.net/hello_hwc?viewmode=contents 一 CALayer是什么? Layers是绘图和动画的基础,  Layer是在3D空间中的2D平面.Layer管理的几何(例如rotate,transfrom),内容(image等),和可视属性(backgroundColor,alpha)等信息.Layer主要通过管理bitmap来维护自己的状态信息,从这一点上来说,Layer可以看作对象模型,因为他们主要用来管…
UIview内部有个默认的CALayer对象层,虽然我门不可以重新创建它,但是我门可以再其上面添加子层. 我们知道,UIView有 addSubview:方法,同样,CALayer也有addSublayer:方法.我门可以通过addSublayer:再已有layer上添加自层. 下面我门演示如何添加自层. // // ViewController.m // CX - CALayer(二) // // Created by ma c on 16/3/19. // Copyright © 2016年…
大家在开发IOS程序时,经常会遇到self.view.layer这个东西,我以前也是不求甚解,后来觉得有必要整理下. 简单介绍layer: 在IOS中,你能看得见摸得着的东西都是UIView,比如一个按钮.一个文本标签.一个图标等等,这些都是UIView.但是UIView只是构建模型,并不具有显示功能,那么UIview怎么显示在屏幕上来呢? 这里就引进了CALayer概念,学过PS的同学都知道图层的概念,它是图片显示的载体,CALayer就是UIView显示的载体,负责对UIView进行显示和管…
注:本文翻译自:https://developers.arcgis.com/ios/objective-c/guide/creating-a-graphics-layer.htm        创建图形图层 图形图层可以使你在地图上动态的展示图形.图形图层可以用来存储用户绘制的多边形.线条,或者展示例如查询或是地理编码结果的属性信息.下图中,图形图层用于突出展示每平方里超过200人的人口密度状态: 当你想在地图中添加一个图形图层,可以利用AGSGraphicsLayer 类来创建图层.该类的实例…
一.添加一个图层  添加图层的步骤:  1.创建layer  2.设置layer的属性(设置了颜色,bounds才能显示出来)  3.将layer添加到界面上(控制器view的layer上) @interface ViewController () @property(nonatomic,strong) UIView *customView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]…
CALayer使用 iOS的设备中,我们之所以能看到各种各样的控件.文字.图片,都是Core Animation框架的功劳.它通过图层的合成,最终显示在屏幕上.而今天这篇文章讲的就是Core Animation使用的图层— CALayer.每一个UIView都有一个对应的一个CALayer,这个CALayer可能是一个图层,也可能是多个图层的叠加.事实上,在很多复杂的页面中,我们应该使用图层的叠加来显示,这样做的好处是保证显示的逻辑结构清晰.这篇文章主要介绍CALayer的一些属性以及它的使用,…
代码如下 typedef enum { GradientLayerKindLeftRight = , GradientLayerKindUpDown, GradientLayerKindLBRT,//左下-右上 GradientLayerKindLTRB //左上-右下 }GradientLayerKind; //-------------------------------------------------------------- // 创建矩形渐变图层 // // @param fram…
对于一个app的好坏,我们首要判断的便是app的界面,而界面的建立则是在图形的处理基础上的,说到图形处理又不得不提及Quartz2D,CALayer. 在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个层. 在创建UIView对象时,UIView内部会自动创建一个层(即CALayer对象),通过UIView的layer属性可以访问这个层.当UI…
在网上经常看到关于layer的tree的描述,不太理解,今天找到了官方文档,原文在Core Animation Programming Guide 中. Layer Trees Reflect Different Aspects of the Animation State An app using Core Animation has three sets of layer objects. Each set of layer objects has a different role in m…
1:自定义图层,在图层中画图 #import <QuartzCore/QuartzCore.h> @interface MJLayer : CALayer @end #import "MJLayer.h" @implementation MJLayer #pragma mark 在这个方法中所画的动画都会显示到MJLayer上面 - (void)drawInContext:(CGContextRef)ctx { // 在这里不能使用跟UIKit相关的东西 // [[UICo…
图层和VIEW的区别 1:view不具备显示功能,是因view内部有一个图层,才能显示出来 2:图层不具备事件功能,VIEW继承UIRespone具有处理事件功能 3:自定义的图层有一个影式动画,VIEW中图层没有隐式动画(影式动画:改变图层的某个属性,会发生动画,uiview内部图层没有影视动画) 自定义图层 #import <QuartzCore/QuartzCore.h> @interface MJViewController () @end @implementation MJView…
12.22笔记 pdf下载文件:https://www.evernote.com/shard/s227/sh/f81ba498-41aa-443b-81c1-9b569fcc34c5/f033b89a4394b20921fcb8489066acbc 笔记的文本摘要如下所示: 注意:以下仅仅是文本摘要,没有贴图,出现右边的图标()表示笔记中此处有图片,完整笔记请前往pdf链接中观看或下载观看. 1.渐变效果例子 首先:自定义一个渐变视图,在自定义视图中重写drawRect 获取上下文 实例化色彩空…
https://www.jianshu.com/p/c54ffd7412e7 想必以前QQ空间的点赞效果大家都知道吧,点赞之后按钮周围会有一圈爆裂的小圆点:还有微信的红包雨表情动画等,以及烟花,火焰效果.这些看似很炫酷的动画可能让我们敬而远之,但是其实iOS封装的很好,利用简单的几行代码就能完成很炫酷的动画效果.由于目前正在玩儿iOS动画的内容,利用iOS的CAEmitterLayer结合CAEmitterCell能够达这些效果.不BB了,先上几个效果图.代码已传githubEmitterAni…
参考博客:http://blog.csdn.net/hello_hwc?viewmode=list 如果你对CALayer 还没有一个清晰的理解,欢迎看一下前面的博客: http://www.cnblogs.com/huanying2000/p/6244673.html 如果你对Layer有一定的了解 请直接看下面的文章 一 提供CALayer内容的单中方式 1>把一个图像对象直接赋值给contents属性(这是提供CALayer内容的最好方式) 2>设置delegate,让代理绘制layer…
CALayer *sublayer = [CALayer layer]; sublayer.backgroundColor = [UIColor purpleColor].CGColor; sublayer.shadowOffset = CGSizeMake(, ); sublayer.shadowRadius = 5.0; sublayer.shadowColor = [UIColor blackColor].CGColor; sublayer.shadowOpacity = 0.8; sub…
CALayer的隐式动画属性: •每一个UIView内部都默认关联着一个CALayer,称这个Layer为Root Layer.所有的非Root Layer都存在着隐式动画,隐式动画的默认时长为1/4秒. •当修改非Root Layer的部分属性时,相应的修改会自动产生动画效果,能执行隐式动画的属性被称为“可动画属性”,诸如: 1.bounds: 缩放动画 2.position: 平移动画 3.opacity: 淡入淡出动画(改变透明度) •在文档中搜素animatable可以找到所有可动画属性…
在CALayer中绘制图形会出现锯齿和模糊,同样绘图在UIView中就没有问题.经查资料发现不自动处理两倍像素的情况. 解决方案为:设置layer的contentsScale属性为[[UIScreen mainScreen] scale];…
CALayer层的位置主要和position和anchorPoint有关.其中它们在一起才能决定层在视图中的具体位置. @property CGPoint position;         //位置 @property CGPoint anchorPoint;  //锚点 锚点的范围:(0.0~1.0) 具体的演示如下: 1.采用默认的锚点(0.5,0.5) - (void)viewDidLoad { [super viewDidLoad]; //添加子层 CALayer *subLayer…
方式1: @interface NJViewController () @end @implementation NJViewController - (void)viewDidLoad { [super viewDidLoad]; // 如果一个控制是另外一个控件的子控件, 那么这个控件中的layer也是另外一个控件的子layer // NSLog(@"star - %@", self.view.layer.sublayers); CALayer *layer = [CALayer…
https://www.jianshu.com/p/09f4e36afd66 什么是CALayer: 总结:能看到的都是uiview,uiview能显示在屏幕上是因为它内部的一个层calyer层. 在创建uiview的时候,uiview的内部会自动创建一个层(calayer对象)通过uiview的layer属性可以访问这个层.当uiview需要显示在屏幕上时,会调用drawrect 方法进行绘制,并将所有的内容绘制在自己的层上,绘制完毕之后,系统会将层拷贝到屏幕上,于是uiview就显示了. 换…
@property(nullable) CGColorRef shadowColor; /* The opacity of the shadow. Defaults to 0. Specifying a value outside the * [0,1] range will give undefined results. Animatable. */ @property float shadowOpacity; /* The shadow offset. Defaults to (0, -3)…