首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UIView和CALayer

首先先看一下苹果对两个对象的描述  UIView:http://blog.csdn.net/ZY_FlyWay/article/details/58611627 CALayer:http://blog.csdn.net...article/details/59039800 我们从苹果官方文档可以知道:     UIView 继承于      UIResponder (UIResponder继承于NSObject)     CALayer...1、UIResponder是干嘛的呢? 答:看完这一个就懂了  一句话UIVIew可以响应事件,而Layer不可以。 2、UIView和CALayer有什么关系呢。...从官方文档可以了解到:UIView初始化的时候会自动创建Layer,而layer会自动指定代理是view。所以他俩是代理和被代理的关系。 3、那么layer在view中有什么用呢?    ...view中对于图片的渲染,和一些动画操作都是layer完成的,view只是呈现layer的工作结果和处理交互响应事件。

68220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CAGradientLayer颜色渐变器

    使用CAGradientLayer可以实现颜色的渐变, 我们先看下头文件 @interface CAGradientLayer : CALayer @property(nullable, copy)...colors; //颜色渐变的数组 @property(nullable, copy) NSArray *locations; //渐变颜色的区间分布,locations的数组长度和color...默认值是(0.5,1.0) @property(copy) NSString *type; //默认值是kCAGradientLayerAxial,表示按像素均匀变化。...除了默认值也无其它选项 @end 下面是我用上面的代码实现的最终效果,startPoint是(0,0),endPoint是(1,1)。 ? 下面我们试试用这个来实现一个渐变色的圆环, ?...需要说明的是CAGradientLayer只能实现矩形范围内的颜色渐变, 那渐变的圆环要如何实现呢? mask 对了 首先我们创建两个挨着的矩形渐变色块, 并把两个色块添加到同一个layer ?

    1.4K61

    老司机带你走进Core Animation 之图层的透视、渐变及复制

    虽然老司机从小到大都是数学课代表,不过我要很郑重的告诉你,数学是一门靠悟性的学问,不是我讲给你听,你就能消化的,所以关于矩阵计算什么的,请各位同学自己消化理解(咳咳,我会告诉你我高数、线代、概率没有一科过...值得注意的是,以上两个旋转api中x/y/z三个参数均为指定旋转轴,可选值0和1,0代表此轴不做旋转,1代表作旋转。...这里需要注意的是M34的赋值一定要写在矩阵变换前面,具体为什么说实话老司机也不知道。...你可能还不懂,其实你看的正方体是六个CALayer经过矩阵变换拼成的实实在在的正方体。...最重要的一点是,当图层加入到CATransformLayer中以后,hitTest和convertPoint两个方法就失效了,请注意这点。

    75840

    iOS CALayer 简单介绍

    https://www.jianshu.com/p/09f4e36afd66 什么是CALayer: 总结:能看到的都是uiview,uiview能显示在屏幕上是因为它内部的一个层calyer层。...CALayer的基本功能 通过操作CALayer对象,可以调整uiview的一些外观属性。比如阴影,圆角,边框的颜色等、 项目中的具体使用 1.做渐变。...有时候项目中可能要用到一个渐变的图片,如果用图片的话 是会简单很多,但是也会相应的占用内存,增加开销,而Calayer的效率相对来说就会高很多。...*gradientLayer2 = [CAGradientLayer layer]; gradientLayer2.colors = @[(__bridge id)[UIColor redColor...两种方式,一种是使用 n张图片去循环,这样的话对内存的开销比较大,不建议使用,第二种就是采用CALayer的相关属性  加上核心动画来实现:代码如下: //2.渐变转换为图形形成动画 CALayer

    65720

    UIview 和CALayer、UIWindow

    UIView和CALayer都是源自NSObject。 UIView的继承结构为:UIResponder:NSObject。可以看出UIView的直接父类为UIResponder类。...我们都知道UIKit主要是用来构建用户界面并且是可以响应事件的。 2.CALayer是在/System/Library/Frameworks/QuartzCore.framework定义的。...UIView和CALayer相互依赖,UIView依赖于CALayer提供的内容,CALayer依赖UIView提供的容器来显示绘制的内容。...但归根到底CALayer是这一切的基础,如果没有CALayer,UIView自身也不会存在,UIView是一个特殊的CALayer的实现,添加了响应事件的能力。...UIwindow是UIView的子类,UIWindow的主要作用:一是提供一个区域来显示UIView,二是将事件(event)的分发给UIView,一个应用基本上只有一个UIWindow.

    65460

    绘图-CAShapeLayer、CABasicAnimation以及核心动画

    但实际上UIView是对CALayer封装,在CALayer的基础上再添加交互功能。UIView的显示必须依赖于CALayer。...因此对一个view进行动画,本质上是对该view的.layer进行动画操纵。CALayer的设计主要是了为了内容展示和动画操作,CALayer本身并不包含在UIKit中,它不能响应事件。...layer.png CALayer 最常用的两个子类: CAGradientLayer(用于颜色渐变的实现) // 创建 UIView 用来承载渐变色 UIView *myView = [[UIView...path只对CALayer的anchorPoint和position起作用。...键-值编码协议的扩展, 参数必须是CALayer的某一项属性,你的代码会对应的去改变该属性的效果 具体可以填写什么请参考上面的URL,切勿乱填!

    2.9K30

    绘图-视图遮罩MaskView的使用

    可以这样理解,是将maskView每个point的alpha赋值给View的重叠部分相对应的point,这样view的重叠每个point都有个alpha值了,view重叠部分就可能显示多种透明色。...效果.png 这个效果的实现关键点在于 动画执行时间的延迟设置,这个时间的计算和设置,直接决定效果能否缓缓出来,因为代码的执行速度是很快的,而动画又是移步执行的,如果设置动画的执行时间为0,你会看到图片瞬间改变...效果1.png 途中圆圈羽化的边缘是用的图片填充,对CALayer内容的图片填充才有的羽化边缘的形状,才出的这样的效果,这其实是 maskLayer的使用了,具体可以参考我的代码查看。...可以结合CAGradientLayer用来实现颜色滚动渐变 初始化一个CAGradientLayer 设置一个CABasicAnimation 用来做CAGradientLayer 的动画 CAGradientLayer.mask...= label.layer; Lable的layer 赋值给 CAGradientLayer的maskLayer即可 效果如下: ?

    2.1K20

    苹果有了CALayer,为什么还要UIView?

    正文:你给我解释清楚,都有了CALayer了,为什么还要UIView? UIView继承自UIResponder,主要特点是可以响应触摸事件。而CALayer实际是图层内容管理。...UILayer 假如UIKit不是出自苹果之手,而是来自于我们,可能会出现什么情况呢?是的,可能UIView就和CALayer合体成了一个叫“UILayer”的东西了。...这次就UIView和CALayer来分析,就可以得出一些东西。 机制与策略分离 更多的不可变 各司其职 漏的更少 1....CALayer也可以看做是一种机制,提供图层绘制,你们可以翻开CALayer的头文件看看,基本上是没怎么变过的,而UIView可以看做是策略,变动很多。越是底层,越是机制,越是机制就越是稳定。...比如UIView遮蔽了大部分的CALayer接口,抽取构造出更易用的frame和动画实现,这样上手更容易。 总结 以前或多或少的了解过或者听过单一自责原则。

    38710

    iOS-Core系列框架介绍(一)

    QuartzCore.CAValueFunction import QuartzCore.CAMediaTiming import QuartzCore.CAMediaTimingFunction // 特殊图层 import QuartzCore.CALayer...QuartzCore.CAEmitterCell // 粒子特效 Cell import QuartzCore.CAEmitterLayer // 粒子特效 图层 import QuartzCore.CAGradientLayer...实际上可以看作同一个框架,它们互相引用,它们基于Metal和CoreGraphics,主要用于图形渲染和动画 提供了动画接口(属性动画、关键帧动画、组动画等) 提供了几何变换接口,是对CoreGraphics...的CGAffineTransform进一步封装 封装了CALayer,它是使视图呈现出来的基础类 封装了一些特殊用途的图层Layer(如粒子特效CAEmitterLayer、渐变CAGradientLayer...,为静态和视频图像提供接近实时的处理,CoreImage提供如下功能 滤镜:内置多个图像滤镜 滤镜图表:是一个链接在一起的滤镜网络 ,使得一个滤镜的输出可以是另一个滤镜的输入,以达到创建自定义滤镜的效果

    96130

    iOS开发CoreAnimation解读之三——几种常用Layer的使用解析

    ,在以前的一片博客中有详细的介绍和范例,这里不再重复,地址如下: 粒子效果的应用和火焰范例:http://my.oschina.net/u/2340880/blog/485095 二、CAGradientLayer...        CAGradientLayer是用于色彩梯度展示的layer图层,通过CAGradientLayer,我们可以很轻松的创建出有过渡效果的色彩图。...CAReplicatorLayer *reLayer = [CAReplicatorLayer layer];     reLayer.position = CGPointMake(0, 0);     CALayer... * layer= [CALayer layer];     [reLayer addSublayer:layer];     [self.view.layer addSublayer:reLayer]...四、CAShapeLayer         CAShapeLayer是图形layer层,我们可以自定义这个层的形状。

    68120

    iOS Core Animation:Advanced Techniques

    CATransformLayer并不平面化它的子图层,所以它能够用于构造一个层级的3D结构 第4篇:CAGradientLayer CAGradientLayer是用来生成两种或更多颜色平滑渐变的。...虚拟属性 之前提到过属性动画实际上是针对于关键路径而不是一个键,这就意味着可以对子属性甚至是虚拟属性做动画。但是虚拟属性到底是什么呢?...但是和属性动画不同的是,对指定的图层一次只能使用一次CATransition,因此,无论你对动画的键设置什么值,过渡动画都会对它的键设置成“transition”,也就是常量kCATransition。...这就产生了一个问题,当动画开始之前和动画结束之后,被设置动画的属性将会是什么值呢?...每 个CALayer和CAAnimation实例都有自己本地时间的概念,是根据父图层/动画层级关系中的beginTime,timeOffset和 speed属性计算。

    1.9K30

    iOS开发CoreAnimation解读之二——对CALayer的分析

    layer这样的属性,并且layer会负责view中有关图形绘制的相关操作,例如我们设置view的背景颜色和设置layer的背景颜色都是有效的,并且,设置view的背景色依然是通过layer来展示的,我们可以写如下的测试代码...2.自定义view默认layer属性的类         UIView是很多视图类的父类,根据功能不同,会分出UIImageView,UIScrollerView,UITableView等,CALayer...二、几种系统的Layer类         前边说过,和UIView相似,CALayer也很据功能衍生出许多子类,系统系统给我们可以使用的有如下几种: 1.CAEmitterLayer CoreAnimation...2.CAGradientLayer CAGradientLayer可以创建出色彩渐变的图层效果,如下: ?...4.CAReplicatorLayer CAReplicatorLayer是一个layer容器,会对其中的subLayer进行复制和属性偏移,通过它,可以创建出类似倒影的效果,也可以进行变换复制,如下:

    1.1K20
    领券