CAGradientLayer
参考:
CAShapeLayer和CAGradientLayer
一 简介
1,CAGradientLayer,处理颜色渐变;
2,CAGradientLayer的渐变色可以做隐式动画;
3,大部分情况下,CAGradientLayer都是与CAShapeLayer配合使用的。
CAShapeLayer提供形状,CAGradientLayer做背景。一般,CAShaperLayer作为CAGradientLayer的遮照——mask来用————CAGradientLayer作为背景使用;
4,CAGradientLayer可以用作png遮照效果。
eg:3
// 创建形状遮罩
self.circleLayer = [CAShapeLayer LayerWithCircleCenter:CGPointMake(, )
radius:
startAngle:DEGREES()
endAngle:DEGREES()
clockwise:YES
lineDashPattern:@[@, @]];
self.circleLayer.strokeColor = [UIColor blackColor].CGColor; // 边缘线的颜色
self.circleLayer.lineCap = kCALineCapSquare; // 边缘线的类型
self.circleLayer.lineWidth = .f; // 线条宽度
self.circleLayer.strokeStart = 0.0f;
self.circleLayer.strokeEnd = 1.0f; // CAShapeLayer *circleLayer; // 创建渐变图层
self.faucet = [CAGradientLayer layer]; // CAGradientLayer *faucet;
self.faucet.frame = CGRectMake(, , , );
self.faucet.position = self.view.center; // 以CAShapeLayer的形状作为遮罩是实现特定颜色渐变的关键
self.faucet.mask = self.circleLayer;
self.faucet.colors = @[(id)[UIColor greenColor].CGColor,
(id)[UIColor redColor].CGColor,
(id)[UIColor cyanColor].CGColor,
(id)[UIColor purpleColor].CGColor,
(id)[UIColor yellowColor].CGColor]; // 设定动画时间
self.faucet.speed = 0.5f; // 添加到系统图层中
[self.view.layer addSublayer:self.faucet]; // 创建定时器 NSTimer *timer;
self.timer = [NSTimer scheduledTimerWithTimeInterval:.f
target:self
selector:@selector(timerEvent)
userInfo:nil
repeats:YES];
}
二 坐标系统
1,CAGradientLayer的坐标系统是从坐标(0,0)到(1,1)绘制的矩形;
2,CAGradientLayer的frame值的size不为正方形的话,坐标系统会被拉伸;
3,CAGradientLayer的startPoint与endPoint会直接影响颜色的绘制方向;
4,CAGradientLayer的颜色分割点是以0到1的比例来计算的;
三 色差动画实现
1,确定渐变色渐变方向;
2,设定两种颜色,其中一种透明色,另外一种是自定义颜色;
3,设定好location的颜色分割点值;
4,CAGradientLayer的颜色分割点是以0到1的比例来计算的。
四 用CAGradientLayer封装色差动画的view
CAGradientLayer的更多相关文章
- 通过CAGradientLayer制作渐变色效果(转)
转载自:http://blog.it985.com/7986.html 看了极客学院的视频之后写的一篇博客,觉得不错,还是作为笔记使用. 简单介绍一下CAGradientLayer吧. Gradien ...
- CAGradientLayer的一些属性解析
CAGradientLayer的一些属性解析 iOS中Layer的坐标系统: 效果: - (void)viewDidLoad { [super viewDidLoad]; CAGradientLaye ...
- CAGradientLayer渐变效果
属性 startPoint和endPoint 决定渐变方向,以单位坐标系定义.左上角{0,0},右下角{1,1} colors 渐变的颜色,是一个CGColorRef的数组. locations 定义 ...
- 颜色线性渐变-CAGradientLayer
我们先来看一下效果图吧: 其实,就是一个颜色的线性渐变,使用CAGradientLayer很容易就能实现.由于代码很简单,就不做过多讲解了,直接看代码吧. import UIKit class Vie ...
- Animated progress view with CAGradientLayer(带翻译)<待更新>
原文网址:使用CAGradientLayer的动画精度条View Modern software design is getting flatter and thinner all the time. ...
- CA*Layer(CATransformLayer--CAGradientLayer)
CATransformLayer CATransformLayer不同于普通的CALayer,因为它不能显示它自己的内容.只有当存在了一个能作用域子图层的变换它才真正存在.CATransformLay ...
- 通过cagradientLayer类封装uiimageview动画色度差
#import <UIKit/UIKit.h> typedef NS_ENUM(NSInteger, EcolorDirectionType) { EcolorDirectionUp, / ...
- 通过CAGradientLayer类实现色度差动画
#import "ViewController.h" @interface ViewController () { CAGradientLayer *_gradientLayer; ...
- IOS CAShapeLayer CAGradientLayer UIBezierPath 使用实例
CGRect rect = CGRectMake(100, 100, 100, 100); UIView * bgView = [[UIView alloc]initWithFrame:rect]; ...
随机推荐
- paper 57 :颜色直方图的代码
clear clc close all Image = imread('29.jpg');[M,N,O] = size(Image);[h,s,v] = rgb2hsv(Image); H = h; ...
- 夺命雷公狗---DEDECMS----10dedecms双标签
双标签基本语法如下: {dede:标签名 参数名=“值” 参数名2=“值”...} 内容...... {/dede} 我们先来查看下手册,如下所示: 我们先来用一个channel的标签来做实例,因为c ...
- Android应用开发中的风格和主题(style,themes)
http://www.cnblogs.com/playing/archive/2011/04/01/2002469.html 越来越多互联网企业都在Android平台上部署其客户端,为了提升用户体验, ...
- opengl& 颜色
颜色 简介 颜色的显示模式分为两种: RGBA显示模式 颜色索引显示模式(使用颜色映射表,映射表提供了索引,可以混合基本的红,绿,蓝色值). RGBA模式可以选择的颜色数量多于颜色索引模式.一般而言, ...
- 【转】转换到 COFF 期间失败: 文件无效或损坏
不知怎么本来编译好好的VS2010环境,忽然出现“转换到 COFF 期间失败: 文件无效或损坏”的链接错误.花了好多天,试了好多方法,最终解决了这个问题. 现在罗列一下这几种解决方案: 方案1 ...
- java设置环境变量小工具
unit MainUnit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Fo ...
- 161123、ssh scp 复制文件和文件夹
复制文件或目录命令: 复制文件: (1)将本地文件拷贝到远程 scp 文件名用户名@计算机IP或者计算机名称:远程路径 本地192.168.80.100客户端 scp /root/instal ...
- jQuery DataTable-JavaScript API
虽然大多数时候你的Javascript交互将通过使用datatable初始化对象作为描述在使用这个网站的部分,有时,你会发现它有用一些外部控制表.可以使用以下函数从jQuery.dataTable对象 ...
- 使用SQLServer Profiler侦测死锁(转)
准备工作: 为了侦测死锁,我们需要先模拟死锁.本例将使用两个不同的会话创建两个事务. 步骤: 1. 打开SQLServer Profiler 2. 选择[新建跟踪],连到实例. 3. 然后选择[空白] ...
- makefile 中 $@ $^ %< 使用【转】
转自:http://blog.csdn.net/kesaihao862/article/details/7332528 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 ...