参考:

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的更多相关文章

  1. 通过CAGradientLayer制作渐变色效果(转)

    转载自:http://blog.it985.com/7986.html 看了极客学院的视频之后写的一篇博客,觉得不错,还是作为笔记使用. 简单介绍一下CAGradientLayer吧. Gradien ...

  2. CAGradientLayer的一些属性解析

    CAGradientLayer的一些属性解析 iOS中Layer的坐标系统: 效果: - (void)viewDidLoad { [super viewDidLoad]; CAGradientLaye ...

  3. CAGradientLayer渐变效果

    属性 startPoint和endPoint 决定渐变方向,以单位坐标系定义.左上角{0,0},右下角{1,1} colors 渐变的颜色,是一个CGColorRef的数组. locations 定义 ...

  4. 颜色线性渐变-CAGradientLayer

    我们先来看一下效果图吧: 其实,就是一个颜色的线性渐变,使用CAGradientLayer很容易就能实现.由于代码很简单,就不做过多讲解了,直接看代码吧. import UIKit class Vie ...

  5. Animated progress view with CAGradientLayer(带翻译)<待更新>

    原文网址:使用CAGradientLayer的动画精度条View Modern software design is getting flatter and thinner all the time. ...

  6. CA*Layer(CATransformLayer--CAGradientLayer)

    CATransformLayer CATransformLayer不同于普通的CALayer,因为它不能显示它自己的内容.只有当存在了一个能作用域子图层的变换它才真正存在.CATransformLay ...

  7. 通过cagradientLayer类封装uiimageview动画色度差

    #import <UIKit/UIKit.h> typedef NS_ENUM(NSInteger, EcolorDirectionType) { EcolorDirectionUp, / ...

  8. 通过CAGradientLayer类实现色度差动画

    #import "ViewController.h" @interface ViewController () { CAGradientLayer *_gradientLayer; ...

  9. IOS CAShapeLayer CAGradientLayer UIBezierPath 使用实例

    CGRect rect = CGRectMake(100, 100, 100, 100); UIView * bgView = [[UIView alloc]initWithFrame:rect]; ...

随机推荐

  1. struts2中Double类型的转换

    今天做项目,ssh + Extjs,页面js中定义了几个NumberField,对应的value都是double类型的,其中有个NumberField的name为 name,结果执行的时候报错了,说找 ...

  2. paper 29 :CV会议+领先研究室+专家+代码网址

    做机器视觉和图像处理方面的研究工作,最重要的两个问题:其一是要把握住国际上最前沿的内容:其二是所作工作要具备很高的实用背景.解决第一个问题的办法就是找出这个方向公认最高成就的几个超级专家(看看他们都在 ...

  3. JNI 回调小记

    javah在eclipse中设置参数:location(javah.exe的位置)working dir(${project_loc}/src) -classpath .;./classes -d $ ...

  4. linux设备驱动归纳总结(四):5.多处理器下的竞态和并发【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-67673.html linux设备驱动归纳总结(四):5.多处理器下的竞态和并发 xxxxxxxxxx ...

  5. webpack笔记_(2)_Refusing to install webpack as a dependency of itself

    安装webpack时,出现以下问题: Refusing to install webpack as a dependency of itself npm ERR! Windows_NT npm ERR ...

  6. 数据库日期格式为int型时存取格式

    存入当前日期:time() 取出并转化为日期格式:date('Y-m-d H:i:s',strtotime($time)); 最好在前面加上这句: date_default_timezone_set( ...

  7. 设置 textarea 默认滑动到底部

    javascript: var textarea = document.getElementById('textarea_id'); textarea.scrollTop = textarea.scr ...

  8. [转]ConsumeContainerWhitespace property to remove blank space in SSRS 2008 report

    转自:http://beyondrelational.com/modules/2/blogs/115/posts/11153/consumecontainerwhitespace-property-t ...

  9. scp跨主机拷贝工具

     参考:http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251254.html SSH上A机,要将10.1.17.95机/tpdata/shell_ ...

  10. PHP的一些常用汇总

    1. 使用strcmp()函数[区分大小写] 和strcasecmp()函数按照字节比较.比较结果显示:前和后相同为0,前>后为大于0,前<后为小于0. 2. 格式化字符串:number_ ...