1.继承链:NSObject

2.创建一个layer

    (1)+ (instancetype)layer  :创建和返回一个layer实例对象

    (2)- (instancetype)init  :返回一个初始化的calayer对象

    (3)- (instancetype)initWithLayer:(id)layer  :为一个视图对象初始化一个已经存在的layer对象,view.layer = layer

3.读取相关的layer 对象

    (1)- (id)presentationLayer  :返回一个复制当前显示layer对象的副本

    (2)- (id)modelLayer  :返回和接收者相关的model layer

4.读取委托

    (1)@property(weak) id delegate  :设置委托,遵守的协议为《CALayerDelegate

5.提供layer 内容

    (1)@property(strong) id contents  :一个提供layer目录的对象

    (2)@property CGRectcontentsRect  :返回目录内容的矩形

    (3)@property CGRectcontentsCenter  :这个矩形定义了layer内容是怎么样进行缩放的当他们的大小进行改变的时候

    (4)- (void)display  :不可以直接调用这个方法,当layer在合适的时间来更新layer的内容的时候 再调用

    (5)- (void)drawInContext:(CGContextRef)ctx  :使用指定的图像上下文来绘制layer的内容

6.修改layer的出现

    (1)@property(copy) NSString*contentsGravity  :决定了内容对齐与填充方式

    (2)@property float opacity  :设置透明度

    (3)@property(getter=isHidden) BOOL hidden  :是否让layer显示

    (4)@property BOOL masksToBounds  :指定子layer超过边界的时候是否省略超出的那部分

    (5)@property(strong) CALayer*mask  :用来掩盖layer内容的layer通道

    (6)@property(getter=isDoubleSided) BOOL doubleSided  :意思是图层有双面,是否都显示,设置NO意思背面看不到

    (7)@property CGFloatborderWidth  :layer边框的宽度

    (8)@property CGColorRefborderColor  :layer边框的颜色

    (9)@property CGColorRefbackgroundColor  :设置接收者背景的颜色

    (10)@property float shadowOpacity  ;layer阴影的透明度

    (11)@property CGFloatshadowRadius  :设置阴影的圆角的程度

    (12)@property CGSizeshadowOffset  :设置阴影的方向和大小

    (13)@property CGColorRefshadowColor  :设置阴影的颜色

    (14)@property CGPathRefshadowPath  :设置阴影的形状

    (15)@property(copy) NSDictionary*style  :An optional dictionary used to store property values that aren't explicitly defined by the layer

    (16)@property float minificationFilterBias  :缩放因子

    (17)@property(copy) NSString*minificationFilter  :设置缩小的模式

    (18)@property(copy) NSString*magnificationFilter  :设置放大的模式

7.配置layer的渲染行为

    (1)@property(getter=isOpaque) BOOL opaque  :是否为完全不透明

    (2)@property CAEdgeAntialiasingMaskedgeAntialiasingMask  :用于限定层的边缘是如何栅格化,默认值都是抗齿轮的

    (3)- (BOOL)contentsAreFlipped  :获取当前layer图层的y轴方向是否被翻转了

    (4)@property(getter=isGeometryFlipped) BOOL geometryFlipped  :表示layer是否被垂直旋转

    (5)@property BOOL drawsAsynchronously  :是否异步绘制,默认是no

    (6)@property BOOL shouldRasterize  :A Boolean that indicates whether the layer is rendered as a bitmap before compositing.

    (7)@property CGFloatrasterizationScale  :栅格化的比例

    (8)- (void)renderInContext:(CGContextRef)ctx  :显在指定的上下文中渲染接收者

8.修改layer的几何

    (1)@property CGRectframe  :设置layer的矩形

    (2)@property CGRectbounds  :layer边界的矩形

    (3)@property CGPointposition  :layer在父layer中的位置

    (4)@property CGFloatzPosition  :layer在z轴的位置

    (5)@property CGFloatanchorPointZ  :layer的锚点的z分量

    (6)@property CGPointanchorPoint  :限定层边界的锚点

    (7)@property CGFloatcontentsScale  :设置内容的缩放

9.管理layer的变形

    (1)@property CATransform3D transform  :3d变换,用于层边界相对于锚点的变换

    (2)@property CATransform3D sublayerTransform  :3d变换,用于指定子层边界相对于锚点的变换

    (3)- (CGAffineTransform)affineTransform  :用于访问变换属性,

    (4)- (void)setAffineTransform:(CGAffineTransform)m  :仿射变换的存取方法

10.管理layer 链

    (1)@property(copy) NSArray<CALayer *> *sublayers  :获取layer包含的所有子层

    (2)@property(readonly) CALayer*superlayer  :返回layer的父层

    (3)- (void)addSublayer:(CALayer *)aLayer  :为layer添加子层

    (4)- (void)removeFromSuperlayer  :从父层中移除该layer

    (5)- (void)insertSublayer:(CALayer *)aLayer
               atIndex:(unsigned int)index  ;在指定的索引插入子层

    (6)- (void)insertSublayer:(CALayer *)aLayer
                 below:(CALayer *)sublayer  :在指定子层的下面插入层

    (7)- (void)insertSublayer:(CALayer *)aLayer
                 above:(CALayer *)sublayer  :在指定的子层上面插入层

    (8)- (void)replaceSublayer:(CALayer *)oldLayer
                   with:(CALayer *)newLayer  :为指定的子层替换为其他的层

11.更新layer的显示

    (1)- (void)setNeedsDisplay  :设置有需要的视图重新绘制

    (2)- (void)setNeedsDisplayInRect:(CGRect)theRect  :设置在某一个区域的内容需要重新绘制

    (3)@property BOOL needsDisplayOnBoundsChange  :是否让layer的内容进行更新档边界矩形发生改变的时候

    (4)- (void)displayIfNeeded  :如果有需要进行内容重新绘制

    (5)- (BOOL)needsDisplay  :是否允许重新绘制

    (6)+ (BOOL)needsDisplayForKey:(NSString *)key  :指定是否改变key的值来重新进行绘制

12.layer动画

    (1)- (void)addAnimation:(CAAnimation *)anim
              forKey:(NSString *)key  :通过key值来取得一个动画对象并添加

    (2)- (CAAnimation *)animationForKey:(NSString *)key  :通过key值来获取动画对象

    (3)- (void)removeAllAnimations  :移除所有的动画

    (4)- (void)removeAnimationForKey:(NSString *)key  :移除指定的动画

    (5)- (NSArray<NSString *> *)animationKeys  :获取动画化的key

13.管理layer调整大小和布局

    (1)@property(strong) id layoutManager  :该对象用来对子层进行布局

    (2)- (void)setNeedsLayout  :取消旧的布局,根据需要新型更新布局

    (3)- (void)layoutSublayers  :通知layer来更新布局

    (4)- (void)layoutIfNeeded  :重新计算接收者的布局,如果有需要的话

    (5)- (BOOL)needsLayout  :是否需要布局

    (6)@property CAAutoresizingMaskautoresizingMask  :设置自动大小调整遮罩

    (7)- (void)resizeWithOldSuperlayerSize:(CGSize)size  :通知接收者父层的大小发生改变

    (8)- (void)resizeSublayersWithOldSize:(CGSize)size  :设置子层的大小

14.获取layer的动作

    (1)- (id<CAAction>)actionForKey:(NSString *)key  :通过指定的key来获取action对象

     (2)@property(copy) NSDictionary<NSString *,id<CAAction>> *actions  :返回由layer动作组成的字典

    (3)+ (id<CAAction>)defaultActionForKey:(NSString *)key  :返回当前类的默认动作

15.映射坐标和时间

    (1)- (CGPoint)convertPoint:(CGPoint)aPoint
              fromLayer:(CALayer *)layer  :把点从指定的layer坐标系统转换到接收者的坐标系统中

    (2)- (CGPoint)convertPoint:(CGPoint)aPoint
                toLayer:(CALayer *)layer  :把点从接收者坐标系统中转换到指定layer坐标系统中

    (3)- (CGRect)convertRect:(CGRect)aRect
            fromLayer:(CALayer *)layer  :把矩形从指定的layer坐标系统中转换到接收者坐标系统中

    (4)- (CGRect)convertRect:(CGRect)aRect
              toLayer:(CALayer *)layer  :把矩形从接收者坐标系统转换到layer坐标系统中

    (5)- (CFTimeInterval)convertTime:(CFTimeInterval)timeInterval
                    fromLayer:(CALayer *)layer  :Converts the time interval from the specified layer’s time space to the receiver’s time space.

    (6)- (CFTimeInterval)convertTime:(CFTimeInterval)timeInterval
                      toLayer:(CALayer *)layer  :Converts the time interval from the receiver’s time space to the specified layer’s time space

16.hit testing

    (1)- (CALayer *)hitTest:(CGPoint)thePoint  :Returns the farthest descendant of the receiver in the layer hierarchy (including itself) that contains the specified point

    (2)- (BOOL)containsPoint:(CGPoint)thePoint  :返回布尔值,判断接收者是否包含有指定的点

17.滚动

    (1)@property(readonly) CGRectvisibleRect  :读取可见的区域

    (2)- (void)scrollPoint:(CGPoint)thePoint  :想要滚动到的点

    (3)- (void)scrollRectToVisible:(CGRect)theRect  :滚动到指定的区域

18.标志layer

    (1) @property(copy) NSString*name  :接收者的名字

19.键值对编码扩展

    (1)- (BOOL)shouldArchiveValueForKey:(NSString *)key  :返回一个布尔值指定是否保存key指定的值

    (2)+ (id)defaultValueForKey:(NSString *)key  :指定和指定key相关的默认值

20.常量

    (1)CAAutoresizingMask的常量

      kCALayerNotSizable = 0,  :接收者不可以调整大小

      kCALayerMinXMargin = 1U << 0,  :父视图和接受者之间的左边界是可调整的

      kCALayerWidthSizable = 1U << 1,  :接收者的宽度是可调整的

      kCALayerMaxXMargin = 1U << 2,  :父视图和接收者之间的右边界是可调整的

      kCALayerMinYMargin = 1U << 3,  :父视图和接收者之间的底部是可调整的

      kCALayerHeightSizable = 1U << 4,  :接收者的高度是可调整的

      kCALayerMaxYMargin = 1U << 5  :父视图和接收者之间的顶部是可调整的

    (2)CAEdgeAntialiasingMask的常量

      kCALayerLeftEdge = 1U << 0,  :左边的边缘设置为抗齿轮属性

      kCALayerRightEdge = 1U << 1,  :右边的边缘设置为抗齿轮属性

      kCALayerBottomEdge = 1U << 2,  :底部的边缘设置为抗齿轮属性

      kCALayerTopEdge = 1U << 3,  :顶部的边缘设置为抗齿轮属性

    (3)Contents Gravity Values的常量

      NSString * const kCAGravityCenter;  :重力中心在中心

      NSString * const kCAGravityTop;  :重力中心在顶部

      NSString * const kCAGravityBottom;  :重力中心在底部

      NSString * const kCAGravityLeft;  :重力中心在左边

      NSString * const kCAGravityRight;  :重力中心在右边

      NSString * const kCAGravityTopLeft;  :重力中心在左上方

      NSString * const kCAGravityTopRight;  :重力重力在右上方

      NSString * const kCAGravityBottomLeft;  :重力中心在左下角

      NSString * const kCAGravityBottomRight;  :重力中心在右下角

      NSString * const kCAGravityResize;  :

      NSString * const kCAGravityResizeAspect;

      NSString * const kCAGravityResizeAspectFill;

    

Quartz Core框架之CALayer的更多相关文章

  1. Quartz Core框架之core animation

    1.时间功能 (1)CFTimeIntervalCACurrentMediaTime ( void ); :返回当前的绝对时间 2.转换功能 (1)bool CATransform3DIsIdenti ...

  2. 基于Asp.Net Core 5.0依赖Quartz.Net框架编写的任务调度web管理平台

    源码地址: https://github.com/246850/Calamus.TaskScheduler 演示地址:http://47.101.47.193:1063/ 1.Quartz.NET框架 ...

  3. GPS部标平台的架构设计(三) 基于struts+spring+hibernate+ibatis+quartz+mina框架开发GPS平台

    注意,此版本是2014年研发的基于Spring2.5和Struts2的版本,此版本的源码仍然销售,但已不再提供源码升级的服务,因为目前我们开发的主流新版本是2015-2016年近一年推出的基于spri ...

  4. 基于Quartz.NET框架的WinForm任务计划管理工具

    最近接到一个小需求 ——可以定期同步20个Sql Server 7.0数据库里的数据(数据量会预计>10000),并保存为cvs格式文件 ——可以设置保存文件数据量 ——该应用需要用WinFor ...

  5. 一个Mini的ASP.NET Core框架的实现

    一.ASP.NET Core Mini 在2019年1月的微软技术(苏州)俱乐部成立大会上,蒋金楠老师(大内老A)分享了一个名为“ASP.NET Core框架揭秘”的课程,他用不到200行的代码实现了 ...

  6. 200行代码,7个对象——让你了解ASP.NET Core框架的本质

    2019年1月19日,微软技术(苏州)俱乐部成立,我受邀在成立大会上作了一个名为<ASP.NET Core框架揭秘>的分享.在此次分享中,我按照ASP.NET Core自身的运行原理和设计 ...

  7. ASP.NET Core 框架源码地址

    ASP.NET Core 框架源码地址 https://github.com/dotnet/corefx 这个是.net core的 开源项目地址 https://github.com/aspnet  ...

  8. 了解ASP.NET Core框架的本质

    了解ASP.NET Core框架的本质 ASP.NET Core自身的运行原理和设计思想创建了一个 “迷你版” 的ASP.NET Core框架,并且利用这个 “极简” 的模拟框架阐述了ASP.NET ...

  9. 基于spring的quartz定时框架,实现简单的定时任务功能

    在项目中,经常会用到定时任务,这就需要使用quartz框架去进行操作. 今天就把我最近做的个人主页项目里面的定时刷新功能分享一下,很简单. 首先需要配置一个配置文件,因为我是基于spring框架的,所 ...

随机推荐

  1. js递归方法创建节点

    var jsonData = [{,,"subnetRemark":"状态自带","subnetName":"中心网络" ...

  2. 数据库大作业--由python+flask

    这个是项目一来是数据库大作业,另一方面也算是再对falsk和python熟悉下,好久不用会忘很快. 界面相比上一个项目好看很多,不过因为时间紧加上只有我一个人写,所以有很多地方逻辑写的比较繁琐,如果是 ...

  3. 斐讯k1路由器刷Breed BootLoader(不死UBoot)教程

    刷入Breed BootLoader: 因为这个K1路由器可以开启telnet服务,所以此处刷Breed可以不使用编程器刷Flash芯片的方法进行. 1.打开K1路由器的Telnet服务. 电脑通过有 ...

  4. 优化Google字体 全面加速WordPress

    从5月27号起,由于某些原因,Google服务在大陆的崩溃影响了数百万的站长,因为很多wordpress主题都在使用Google的在线字体方案-google fonts包括新版的WordPress 后 ...

  5. C++中的一些小知识

    判断字符是否为数字 在C/C++中有isdigit()来判断一个字符是否为数字 原型:int isdigit(char c); 用法:#include <ctype.h> (C语言):#i ...

  6. cookie详解

    一.cookie详解 (1)设置cookie 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie: document.cookie="userId ...

  7. Sass预一:

    为什么使用Sass 作为前端(html.javascript.css)的三大马车之一的css,一直以静态语言存在,HTML5火遍大江南北了.javascript由于NODE.JS而成为目前前后端统一开 ...

  8. 学习记录之APPCan

    2015年5月28的笔记,整理笔记搬了过来,好坏是自己当时的小成果,以后有想法继续补充 APPCan移动开发服务平台,有内置模板,列表样式,主页样式等供选择,适合开发简单布局或与内置模板布局相同的项目 ...

  9. F2工作流引擎这工作流引擎体系架构(二)

    F2工作流体系架构概览图 为了能更好的了解F2工作流引擎的架构体系,花了些时间画了整个架构的体系图.F2工作流引擎遵循参考WFCM规范,目标是实现轻量级的工作流引擎,支持多种数据库及快速应用到任何基于 ...

  10. fileupload图片预览功能

    FileUpload上传图片前首先预览一下 看看效果: 在专案中,创建aspx页面,拉上FileUpload控件一个Image,将用来预览上传时的图片. <%@ Page Language=&q ...