CALayer-CAShapeLayer/CAGradientLayer】的更多相关文章

CGRect rect = CGRectMake(100, 100, 100, 100); UIView * bgView = [[UIView alloc]initWithFrame:rect]; bgView.backgroundColor = [UIColor grayColor]; [self.view addSubview:bgView]; CAShapeLayer * trackLayer = [CAShapeLayer layer]; trackLayer.frame = bgVi…
本文转载自:http://blog.csdn.net/zhoutao198712/article/details/20864143 在 Github上看到一些进度条的功能,都是通过Core Graph来实现.无所谓正确与否,但是开发效率明显就差很多了,而且运行效率还是值得考究的.其实使用苹果提供的Core Animation能够非常简单和方便的实现环形进度条效果,而且还可以高效的保证动画效果,无论是前进还是后退(语言水平比较有限,就多用代码说话). 1.先来一个结果 80%的状态: 99%的状态…
在Github上看到一些进度条的功能,都是通过Core Graph来实现.无所谓正确与否,但是开发效率明显就差很多了,而且运行效率还是值得考究的.其实使用苹果提供的Core Animation能够非常简单和方便的实现环形进度条效果,而且还可以高效的保证动画效果,无论是前进还是后退.文字水平比较有限,就多用代码说话. 1.先来一个结果 80%的状态: 99%的状态: 2.需要用到的宏: #define degreesToRadians(x) (M_PI*(x)/180.0) //把角度转换成PI的…
GitHub的Demo下载地址 使用UIBezierPath画图步骤: 创建一个UIBezierPath对象 调用-moveToPoint:设置初始线段的起点 添加线或者曲线去定义一个或者多个子路径 改变UIBezierPath对象跟绘图相关的属性.如,我们可以设置画笔的属性.填充样式等 UIBezierPath创建方法介绍 我们先看看UIBezierPath类提供了哪些创建方式,这些都是工厂方法,直接使用即可. + (instancetype)bezierPath; + (instancety…
两个动画效果来了解一下CALayer的两个重要的subClass,CAGradientLayer和CAShapeLayer. 微视录制视频的时候那个进度效果和Spark相机类似,但是个人还是比较喜欢Spark相机的录制的效果. CAShapeLayer 我们做一个和Spark相机一样的圆形进度,每一段有一种颜色,标识不同时间段录的视频. 首先,我们创建一个 UIView 的子类叫 RecordingCircleOverlayView 这样看起来比较有意义,然后我们看到圆形进度条有一个底色是灰色的…
看到一个大神写的代码,引用过来让大家看看! //  1.CAShapeLayer是一种特殊的层,可以在上面渲染图形. //  2.CAShapeLayer继承自CALayer,可使用CALayer的所有属性. //  3.CAShapeLayer需要和贝塞尔曲线配合使用才有意义,贝塞尔曲线为其提供渲染的图形. //  4.使用CAShapeLayer与贝塞尔曲线可以实现不再view的drawRect方法中画出一些想要的图形. //  关于CAShapeLayer和drawRect的比较: // …
一,CAShapeLayer介绍 * CAShapeLayer继承自CALayer,属于QuartzCore框架,可使用CALayer的所有属性.   CAShapeLayer是在坐标系内绘制贝塞尔曲线的,通过绘制贝塞尔曲线,设置shape(形状)的path(路径),从而绘制各种各样的图形以及不规则图形.因此,使用CAShapeLayer需要与UIBezierPath一起使用.  UIBezierPath类允许你在自定义的 View 中绘制和渲染由直线和曲线组成的路径..你可以在初始化的时候直接…
CAShapeLayer 之前讲过CALayer动画相关知识,再来看看更加复杂的CAShapeLayer相关的动画知识. 普通CALayer在被初始化时是需要给一个frame值的,这个frame值一般都与给定view的bounds值一致,它本身是有形状的,而且是矩形. CAShapeLayer在初始化时也需要给一个frame值,但是,它本身没有形状,它的形状来源于你给定的一个path,然后它去取CGPath值,它与CALayer有着很大的区别 CAShapeLayer有着几点很重要: 1. 它依…
转载地址:  http://my.oschina.net/u/2340880/blog/536048 iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CALayer属性 1.Layer专门负责view的视图渲染 2.自定义view默认layer属性的类 二.几种系统的Layer类 1.CAEmitterLayer 2.CAGradientLayer 3.CAEAGLLayer 4.CAReplicatorLayer 5.CAScrollLayer 6.…
之前讲过CALayer动画相关知识,再来看看更加复杂的CAShapeLayer相关的动画知识. 普通CALayer在被初始化时是需要给一个frame值的,这个frame值一般都与给定view的bounds值一致,它本身是有形状的,而且是矩形. CAShapeLayer在初始化时也需要给一个frame值,但是,它本身没有形状,它的形状来源于你给定的一个path,然后它去取CGPath值,它与CALayer有着很大的区别 CAShapeLayer有着几点很重要: 1. 它依附于一个给定的path,必…
1.geometryFlipped   设置为yes,则子图层或者子视图本来相对于左上角放置 改为 相对于左下角放置: 2.contents 3.contentGravity: kCAGravityCenter kCAGravityTop kCAGravityBottom kCAGravityLeft kCAGravityRight kCAGravityTopLeft kCAGravityTopRight kCAGravityBottomLeft kCAGravityBottomRight kC…
iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CALayer属性 1.Layer专门负责view的视图渲染 2.自定义view默认layer属性的类 二.几种系统的Layer类 1.CAEmitterLayer 2.CAGradientLayer 3.CAEAGLLayer 4.CAReplicatorLayer 5.CAScrollLayer 6.CAShapeLayer 7.CATextLayer 8.CATiledLayer 9.CATrans…
如你所知,我们在iOS应用中看到的都是视图(view),包括按钮视图.表视图.滑动条视图,还有可以容纳其他视图的父视图等. AD:[活动]Web和APP兼容性实战 Win10训练营免费报名 如你所知,我们在iOS应用中看到的都是视图(view),包括按钮视图.表视图.滑动条视图,还有可以容纳其他视图的父视图等. 但你或许不知道在iOS中支撑起每个视图的是一个叫做"图层(layer)"的类,确切地说是CALayer. 本文中您会了解CALayer及其工作原理,还有应用CALayer打造酷…
绘图 不必要的效率考虑往往是性能问题的万恶之源. ——William Allan Wulf 在第12章『速度的曲率』我们学习如何用Instruments来诊断Core Animation性能问题.在构建一个iOS app的时候会遇到很多潜在的性能陷阱,但是在本章我们将着眼于有关绘制的性能问题. 软件绘图 术语绘图通常在Core Animation的上下文中指代软件绘图(意即:不由GPU协助的绘图).在iOS中,软件绘图通常是由Core Graphics框架完成来完成.但是,在一些必要的情况下,相…
专用图层 复杂的组织都是专门化的 Catharine R. Stimpson 到目前为止,我们已经探讨过CALayer类了,同时我们也了解到了一些非常有用的绘图和动画功能.但是Core Animation图层不仅仅能作用于图片和颜色而已.本章就会学习其他的一些图层类,进一步扩展使用Core Animation绘图的能力. CAShapeLayer 在第四章『视觉效果』我们学习到了不使用图片的情况下用CGPath去构造任意形状的阴影.如果我们能用同样的方式创建相同形状的图层就好了. CAShape…
使用CAGradientLayer可以实现颜色的渐变, 我们先看下头文件 @interface CAGradientLayer : CALayer @property(nullable, copy) NSArray *colors;//颜色渐变的数组 @property(nullable, copy) NSArray<NSNumber *> *locations;//渐变颜色的区间分布,locations的数组长度和color一致,默认是nil,会平均分布 @property CGPoint…
前言:这个系列要更新Core Animation的内容,但是CALayer是Core Animation的基础. 一 CALayer是什么? 摘自官网的一句话-Layers Provide the Basis for Drawing and Animations(Layers是绘图和动画的基础) Layer是在3D空间中的2D平面.Layer管理的几何(例如rotate,transfrom),内容(image等),和可视属性 (backgroundColor,alpha)等信息.Layer主要通…
看支付宝蚂蚁积分,天气预报等好多APP都有圆形渐变效果,今天就试着玩了. 一.CAGradientLayer类中属性介绍 CAGradientLayer继承CALayer,主要有以下几个属性: 1.@property(nullable, copy) NSArray *colors; 渐变的颜色 这个数组中只设置一个颜色是不显示的 2.@property(nullable, copy) NSArray<NSNumber *> *locations;每种颜色的最亮的位置 3.@property C…
A,图层和路径 基本图层 CALayer 动画的主角 形状图层 CAShapeLayer 绘制不规则图形 渐变图层 CAGradientLayer 颜色渐变.阴影 复制图层 CAReplicatorLayer 迭代复制同一个图层 基础动画 CABasicAnimation 位移.透明度.缩放.旋转 关键帧 CAKeyframeAnimation 路径.抖动.关键帧 组合动画 CAAnimationGroup 多个动画的结合 系统封装动画 CATransition 淡入淡出.推挤.解开.覆盖 放射…
目录 1.CALayer(父类) 2.CAShapeLayer(形状/画布) 3.CAEmitterLayer(粒子发射层) 4.CAGradientLayer(渐变层) 5.CATransformLayer(3D变换容器层) 6.CAReplicatorLayer(重复图层) N.CATextLayer(文字绘制,不学...) 顺序为 接触/学习 顺序 1.CALayer(父类) 1).几个常用属性 CALayer *layer = [[CALayer alloc]init]; // 一般la…
OCiOS开发:CAGradientLayer 渐变色 CAGradientLayer 简介 CAGradientLayer是CALayer图层类的子类,用于处理渐变色的层结构. CAGradientLayer的渐变色可以做隐式动画. CAGradientLayer和CAShapeLayer配合使用可实现复杂效果. CAGradientLayer可以用作PNG的遮罩效果. CAGradientLayer 坐标系统 CAGradientLayer的坐标系统是从坐标(0,0)到(1,1)绘制的矩形.…
CALayer使用 iOS的设备中,我们之所以能看到各种各样的控件.文字.图片,都是Core Animation框架的功劳.它通过图层的合成,最终显示在屏幕上.而今天这篇文章讲的就是Core Animation使用的图层— CALayer.每一个UIView都有一个对应的一个CALayer,这个CALayer可能是一个图层,也可能是多个图层的叠加.事实上,在很多复杂的页面中,我们应该使用图层的叠加来显示,这样做的好处是保证显示的逻辑结构清晰.这篇文章主要介绍CALayer的一些属性以及它的使用,…
可以对图层按path进行指定裁剪 //#import "ViewController.h" // //@interface ViewController () // //@end // //@implementation ViewController // //- (void)viewDidLoad { // // [super viewDidLoad]; // // // 创建一个蓝色的Layer // CALayer *foregroundLayer = [CALayer laye…
https://www.jianshu.com/p/09f4e36afd66 什么是CALayer: 总结:能看到的都是uiview,uiview能显示在屏幕上是因为它内部的一个层calyer层. 在创建uiview的时候,uiview的内部会自动创建一个层(calayer对象)通过uiview的layer属性可以访问这个层.当uiview需要显示在屏幕上时,会调用drawrect 方法进行绘制,并将所有的内容绘制在自己的层上,绘制完毕之后,系统会将层拷贝到屏幕上,于是uiview就显示了. 换…
跟着大神一起进步,本篇博客原文地址:http://blog.csdn.net/hello_hwc?viewmode=contents 一 CALayer是什么? Layers是绘图和动画的基础,  Layer是在3D空间中的2D平面.Layer管理的几何(例如rotate,transfrom),内容(image等),和可视属性(backgroundColor,alpha)等信息.Layer主要通过管理bitmap来维护自己的状态信息,从这一点上来说,Layer可以看作对象模型,因为他们主要用来管…
转载自:http://blog.it985.com/7986.html 看了极客学院的视频之后写的一篇博客,觉得不错,还是作为笔记使用. 简单介绍一下CAGradientLayer吧. Gradient:本身就是梯度的意思,所以在这里就是作为渐变色来理解 1,CAGradientLayer用于处理渐变色的层结构 2,CAGradientLayer的渐变色可以做隐式动画 3,大部分情况下,CAGradientLayer时和CAShapeLayer配合使用的.关于CAShapeLayer可以看我的这…
我们在开发中有时会遇到一些看似非常复杂的动画,不知该如何下手,今天的这篇文章中我会讲到如何利用CADisplayLink和CAShapeLayer来构建一些复杂的动画,希望能在你下次构建动画中,给你一些启发. 在接下来的文章中,我们会构建如下的一个动画: 该动画是在du的轮廓中进行,类似一个镂空效果,轮廓的填充是用双波浪的形式,类似于水流慢慢注入容器的过程.动画使用CADisplayLink来进行刷新,保证了动画的流程性,利用CAShapeLayer来构建波浪的轮廓,最后利用CALayer的ma…
我们在开发中有时会遇到一些看似非常复杂的动画,不知该如何下手,今天的这篇文章中我会讲到如何利用CADisplayLink和CAShapeLayer来构建一些复杂的动画,希望能在你下次构建动画中,给你一些启发.(备注:收藏下来以供学习,如需转载请备注原创:夏树正茂 投稿) 在接下来的文章中,我们会构建如下的一个动画: 该动画是在du的轮廓中进行,类似一个镂空效果,轮廓的填充是用双波浪的形式,类似于水流慢慢注入容器的过程.动画使用CADisplayLink来进行刷新,保证了动画的流程性,利用CASh…
CAGradientLayer的一些属性解析 iOS中Layer的坐标系统: 效果: - (void)viewDidLoad { [super viewDidLoad]; CAGradientLayer *colorLayer = [CAGradientLayer layer]; colorLayer.frame = (CGRect){CGPointZero, CGSizeMake(, )}; colorLayer.position = self.view.center; [self.view.…
使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 . 1:UIBezierPath: UIBezierPath是在 UIKit 中的一个类,继承于NSObject,可以创建基于矢量的路径.此类是Core Graphics框架关于path的一个OC封装.使用此类可以定义常见的圆形.多边形等形状 .我们使用直线.弧(arc)来创建复杂的曲线形状.每一个直线段或者曲线段的结束的地方是下一个的开始的地方.每一个连接的直线或者曲线段的集…