CALayer的认识

1.iOS中所有看得见的控件都需要UIView 包括UIwindow也是一个特殊的UIView

2.UIview对象在创建的时候  UIView内部回会去自动创建一个图层 CALayer对象

举个例子 就是可以通过UIview的layer属性去访问他

3.UIview的现实过程

UIview需要显示在屏幕上的时候 会调用drawRect方法进行绘图  并且将所绘制的内容放在自己的图层上面,绘图完毕后,系统会讲图层拷贝到屏幕上  完成屏幕显示

UIview本身不能显示  是calayer完成的显示

4 ,举个例子 开发过程中 可以通过CALyaer对象去 很方便的调整UIView的外观属性

圆角  影音 边框 contents需要强转维CGImage   还可以添加一些自定义的动画

5.自定义layer   可以实现和UIview一样的展示效果

我们自定义CALayer   正常的View自己有一个的一个layer 属性

我们可以通过CALayer的类方法自己去自定义个

设置了属性后 最后别忘了  [self.view.layer addSublayer:layer]

又一个细节点值得注意的是  如果一个控件 是另外一个控件的子控件  那么控件中的layer也是另外一个控件的子layer  最简单的例子就是截屏操作的时候 为什么能够全部

6.CALyaer是QuarzCore框架中的   CGImageRef和CGCoreRef是定义在CoreGrapgics中的

前面的两个都是跨平台的

UIColor和UIimage是定义在的 UIKit中的  专属于iOS的

如果你能用UIColre和UIimage

QuarzCore 不恩能够使用uUIColor和UIImage 只能使用CGColorRef和 CGImageRef

UIview比CALayer多了一个事件处理的功能    为什么?????

因为他是继承自那个  NSObject的   不是继承自UIResponder

CALyaer的性能高一代呢    少了处理事件的处理

一般的时候是用不着的

7.CALayer有两个属性      position和  anchorpoint(取值是0-1)

anchorpoint决定了哪个点移动到 (100,100)的位置  不是默认的 左上角 00到那个位子

时间: 2024-08-25 20:15:10

CALayer的认识的相关文章

CALayer与UIBezierPath

UIView继承于UIResponder CALayer继承于nsobject 创建UIView创建一个layer,通过UIView的layer属性可依访问它的图层.UIView具有事件处理功能,可以与用户交互,layer负责显示和动画任务. 要显示一个UIView,会自动调用起drawRect方法绘画所有内容,然后字啊将图层拷贝到屏幕上,完成UICView的显示. frame不能作动画  修改大小bounds  修改位子position CALayer不能直接使用UIColer.UIImage

CALayer 与 UIView

1.关系 On iOS, every UIView is backed by a Core Animation CALayer. Simply speaking,UIView inherit from NSResponder,handle events from users, contains CALayer,which inherit from NSObject,mainly focus on rendering,animation etc. One thing UIViews provide

CALayer初认识

CALayer :CA就是coreAnimation 核心动画 它是同时支持 Mac OS 和 iOS系统的 所有的核心动画都是通过CALayer来实现的 UIView本身是不具备显示功能的 是它内部的layer层才有显示功能 UIView之所以能被看到 就是因为内部层的存在: CZLayer的功能: 可以设置阴影 圆角大小 边框宽度和背景颜色 可以给图层添加动画 实现一些比较炫酷的效果 czlayer与uiview的比较 共同点 都能尽兴界面展示 不同点 CALayer不接收用户的触摸事件 u

通过 CALayer 修改 UIImageView 的界面属性

界面属性的修改是每一个开发者必须知道的,为什么我就记不住呢, shit, 又耽误了时间,为了防止再找不到,特把一些常用的 CALayer属性记在这里,顺便分享 1.设置阴影 1 imageView.layer.shadowColor = [UIColor grayColor].CGColor; 2 imageView.layer.shadowOffset = CGSizeMake(10, 10); 3 imageView.layer.shadowOpacity = 0.5; * 第1行设置阴影的

CALayer的使用

CALayer简介 1.CALayer一般作为UIView的容器而使用 2.CALayer是一个管理着图片载体(image-based content)的层结构 3.直接修改单独创建出的CALayer的属性可以出发隐式动画 4.UIView中的CALayer动画必须显示出发才能生效 CALayer实现自定义进度条 - (void)viewDidLoad { [super viewDidLoad]; UIView *containerView = [[UIView alloc] initWithF

IOS CALayer(二)

UIview内部有个默认的CALayer对象层,虽然我门不可以重新创建它,但是我门可以再其上面添加子层. 我们知道,UIView有 addSubview:方法,同样,CALayer也有addSublayer:方法.我门可以通过addSublayer:再已有layer上添加自层. 下面我门演示如何添加自层. // // ViewController.m // CX - CALayer(二) // // Created by ma c on 16/3/19. // Copyright ? 2016年

CALayer 的 position和anchorPoint属性

在iOS 中,UIButton.UIImage等UIView 之所以能够显示在屏幕上,是因为其内部有一个图层(CALayer).通过UIView的layer 属性可以访问这个图层: @property(nonatomic,readonly,retain) CALayer *layer; 当UIView需要显示到屏幕上时,会调用 drawRect: 方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝的屏幕上,于是就完成了UIView的显示. UIView中有两个容易混淆

iOS Core Animation之CALayer心得

使用CALayer的mask实现注水动画效果 Core Animation一直是iOS比较有意思的一个主题,使用Core Animation可以实现非常平滑的炫酷动画.Core animtion的API是较高级的封装,使用便捷,使得我们免于自己使用OpenGL实现动画.本文主要介绍如何使用CALayer的mask实现一个双向注水动画(姑且这么叫吧). 了解CALayer的mask 以上是CALayer的头文件关于mask的说明,mask实际上layer内容的一个遮罩. 如果我们把mask是透明的

让CALayer的shadowPath跟随bounds一起做动画改变-b

在iOS开发中,我们经常需要给视图添加阴影效果,最简单的方法就是通过设置CALayer的shadowColor.shadowOpacity.shadowOffset和shadowRadius这几个属性可以很方便的为 UIView 添加阴影效果.但是如果单用这几个属性会导致离屏渲染(Offscreen Rendering),而且CoreAnimation在每一帧绘制阴影的时候都需要递归遍历所有sublayer的alpha通道从而精确的计算出阴影的轮廓,这是非常消耗性能的,从而导致了动画的卡顿. 为

GIF动画,菊花动画,UIView动画,CoreAnimation动画(CALayer动画)的用法

1.GIF动画 1 // 创建一个显示图片的imageView // viewController创建 2 UIImageView *showGifImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 414, 736)]; 3 [self.view addSubview:showGifImageView]; 4 5 6 //创建一个存储图片的数组 7 NSMutableArray *saveImageViewArray