iOS CAGradientLayer 详解
来源:互联网 发布:田岛绣花软件9.0 编辑:程序博客网 时间:2024/06/05 03:57
参考文章 http://blog.csdn.net/iunion/article/details/26221213
CAGradientLayer
产生平滑过渡色
//// ViewController.m// test_gradient_01//// Created by admin on 2/3/16.// Copyright © 2016 jeffasd. All rights reserved.//#import "ViewController.h"@interface ViewController ()@property(nonatomic, strong)UIView *contentView;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; _contentView = [UIView new]; _contentView.frame = CGRectMake(100, 100, 100, 100); _contentView.backgroundColor = [UIColor redColor]; [self.view addSubview:_contentView]; CAGradientLayer *gradientLayer = [CAGradientLayer layer]; gradientLayer.frame = self.contentView.bounds; [self.contentView.layer addSublayer:gradientLayer]; // gradientLayer.colors = (__bridge NSArray * _Nullable)([UIColor blueColor].CGColor);// gradientLayer.colors = (__bridge NSArray * _Nullable)([UIColor cyanColor].CGColor); //渐变区域 gradientLayer.locations = @[[NSNumber numberWithFloat:0.3], [NSNumber numberWithFloat:0.8]]; gradientLayer.colors = @[(__bridge NSArray * _Nullable)([UIColor blueColor].CGColor), (__bridge NSArray * _Nullable)([UIColor redColor].CGColor)]; // gradientLayer.startPoint = CGPointMake(0, 0); //最大值为 (1, 1),最小值为(0, 0) gradientLayer.startPoint = CGPointMake(1, 0); gradientLayer.endPoint = CGPointMake(1, 1); }- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
CAGradientLayer的属性设置
1. 类型
- @property(copy) NSString *type
即线性梯度变化
2. 颜色
- @property(copy) NSArray *colors
3. 位置参数
- @property(copy) NSArray *locations
修改例子6.6,增加
- <p class="p1"> gradientLayer.<span class="s1">locations</span> = <span class="s2">@[</span>[<span class="s1">NSNumber</span> <span class="s3">numberWithFloat</span>:<span class="s2">0.0</span>], [<span class="s1">NSNumber</span> <span class="s3">numberWithFloat</span>:<span class="s2">0.2</span>]<span class="s2">]</span>;</p>
- gradientLayer.locations = @[[NSNumber numberWithFloat:0.5], [NSNumber numberWithFloat:0.7]];
4. startPoint和endPoint
- @property CGPoint startPoint, endPoint;
取值都是相对于layer的bounds的。startPoint默认值为(0.5, 0),endPoint默认值为(0.5, 1)
gradientLayer.startPoint 分别设为 CGPointMake(0, 0);
CGPointMake(0.25, 0);
CGPointMake(0.5, 0);
CGPointMake(0.75, 0);
CGPointMake(1, 0);
综合修改例子6.6
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- //create gradient layer and add it to our container view
- CAGradientLayer *gradientLayer = [CAGradientLayer layer];
- gradientLayer.frame = self.containerView.bounds;
- [self.containerView.layer addSublayer:gradientLayer];
- //set gradient colors
- gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor,
- (__bridge id)[UIColor blueColor].CGColor];
- gradientLayer.locations = @[[NSNumber numberWithFloat:0.5], [NSNumber numberWithFloat:0.7]];
- //set gradient start and end points
- gradientLayer.startPoint = CGPointMake(0.75, 0.0);
- gradientLayer.endPoint = CGPointMake(1.0, 1.0);
- }
从以上可以看出startPoint和endPoint诗表示的渐变方向,locations是渐变区域。
也可以看出locations的取值是相对于startPoint和endPoint线段的。
在网上找的描述让我很是不能理解
0 0
- iOS CAGradientLayer 详解
- iOS CAGradientLayer
- iOS 绘图CAGradientLayer~demo
- CAShapeLayer和CAGradientLayer 详解
- iOS CAGradientLayer 实现渐变色
- iOS渐变图层CAGradientLayer
- CAGradientLayer
- CAGradientLayer
- CAGradientLayer
- CAGradientLayer
- CAGradientLayer
- IOS CAShapeLayer CAGradientLayer UIBezierPath 使用实例
- IOS开发—CAShapeLayer与CAGradientLayer
- IOS 渐变的图层,CAGradientLayer
- iOS开发CAGradientLayer底部渐变色
- iOS CAGradientLayer的一些属性解析
- ios绘图系列五:绘制渐变CGContextDrawLinearGradient, CGContextDrawRadialGradient, CAGradientLayer
- iOS 动画Animation-4-2: CALayer子类:CAGradientLayer,CATextLayer,CATiledLayer
- AMQP协议
- UVA227
- 自适应响应式网页设计(Responsive Web Design)
- iOS 加载显示 Word PDF Excel
- 怎样在Ubuntu15.04上安装fish shell
- iOS CAGradientLayer 详解
- SVN管理工具Cornerstone之:创建分支、提交合并
- C++ 总结
- 搭建SSH三大框架WEB项目过程(Struts2.3+Hibernate4.3+Spring4.1)
- Linux下升成动态链接库.so文件
- 我的收藏移动游戏开发
- C++ string 字符串详解
- 想成为嵌入式程序员应知道的0x10个基本问题
- HTML5 APP----DCloud产品分析及介绍