文档章节

CAGradientLayer - 渐变颜色(iOS)

hell03W
 hell03W
发布于 2016/07/27 11:00
字数 368
阅读 49
收藏 1
点赞 0
评论 0

CAGradientLayer继承自CALayer, 是 Core Animation 中的一个, 主要功能是用来时间渐变颜色图层.

效果如下所示:

代码实现:

    // 添加渐变色层
    CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    gradientLayer.frame = self.bounds;

    gradientLayer.colors = [NSArray arrayWithObjects:
                            (id)[kColorFromRGB(0xF6C48E) CGColor],
                            (id)[kColorFromRGB(0xBB7FCB) CGColor],
                            (id)[kColorFromRGB(0x6DD2E5) CGColor], nil];
    gradientLayer.startPoint = CGPointMake(0, 0.4);
    gradientLayer.endPoint = CGPointMake(1, 0.6);
    _gradientLayer = gradientLayer;

    [self.layer insertSublayer:gradientLayer atIndex:0];

这样的功能, 实现起来还是比较简单的, 苹果给我们全部都封装好了, 只需要调用几个简单的方法即可.

事实上, CAGradientLayer类也是比较简单的, 只提供如下几个方法和属性, 好吧, 当了解之后, 觉得太简单了, 没什么好说的了 ....

@interface CAGradientLayer : CALayer

/* The array of CGColorRef objects defining the color of each gradient
 * stop. Defaults to nil. Animatable. */

@property(nullable, copy) NSArray *colors;

/* An optional array of NSNumber objects defining the location of each
 * gradient stop as a value in the range [0,1]. The values must be
 * monotonically increasing. If a nil array is given, the stops are
 * assumed to spread uniformly across the [0,1] range. When rendered,
 * the colors are mapped to the output colorspace before being
 * interpolated. Defaults to nil. Animatable. */

@property(nullable, copy) NSArray<NSNumber *> *locations;

/* The start and end points of the gradient when drawn into the layer's
 * coordinate space. The start point corresponds to the first gradient
 * stop, the end point to the last gradient stop. Both points are
 * defined in a unit coordinate space that is then mapped to the
 * layer's bounds rectangle when drawn. (I.e. [0,0] is the bottom-left
 * corner of the layer, [1,1] is the top-right corner.) The default values
 * are [.5,0] and [.5,1] respectively. Both are animatable. */

@property CGPoint startPoint;
@property CGPoint endPoint;

/* The kind of gradient that will be drawn. Currently the only allowed
 * value is `axial' (the default value). */

@property(copy) NSString *type;

@end

© 著作权归作者所有

共有 人打赏支持
hell03W
粉丝 9
博文 143
码字总数 108663
作品 0
朝阳
程序员
iOS 做一个圆形渐变圆环

代码主要用到: CALayer+UIBezierPath+CAShapeLayer+CAGradientLayer+CABasicAnimation 1.创建一个图层 效果如图: 2.绘制一个路径,再生成一个背景圆环加到view上 效果如图: 3.利用CAGradientL...

TouchMing
01/15
0
0
[iOS Animation]-CALayer 专用图层 CATransformLayer

CATransformLayer 当我们在构造复杂的3D事物的时候,如果能够组织独立元素就太方便了。比如说,你想创造一个孩子的手臂:你就需要确定哪一部分是孩子的手腕,哪一部分是孩子的前臂,哪一部分...

浩浩老师
2015/09/23
0
0
iOS CAShapeLayer、CADisplayLink 实现波浪动画效果

效果图 代码已上传 GitHub:htt0p s : / / g i t hu b . c o m/ S il e n ce - G i t H u b /C o r e A n im a t i o n D em o 可以自定义波浪高度、宽度、速度、方向、渐变速度、水的深度等...

技术小甜
2017/11/09
0
0
IOS iPhone 开发 UItableView中的单元格背景渐变

IOS iPhone 开发 UItableView中的单元格背景渐变 渐变如果用背景图片,会让你的app臃肿。给APP瘦身,我们可以使用代码来解决渐变的问题。这篇文章是解决表格中的单元格的简便问题,同时解决单...

海参
2013/06/16
0
0
定制iOS 7中的导航栏和状态栏

由于种种原因,申请了一个开源中国的帐号,也许会由于我的不耐心,不会亲自去一步步的写博文,但准备把自己看到的好的,都转载过来,就当时资源的存储,也算是一种推广吧。 iOS 7 教程:定制...

谁家的阿毛
2013/11/21
0
0
在Android中自定义IOS风格的按钮

IOS风格的UI比较流行,很多Android的UI设计者也愿意将Android的UI设计成类似IOS系统的UI风格。下面是一个例子,说明如何使用Shape来定义一个IOS风格的按钮。 定义一个iosbuttongrouped.xml。...

迷途d书童
2012/03/21
0
0
七分设计感的纯React-Native项目Mung

1. Mung:是一个基于React-Native编写,使用豆瓣开源API开发的一个项目。 2. 功能概述 数据保存 :支持断网加载缓存数据。 主题换肤 :现在只支持切换主题颜色,本项目没几张图片。 查看电影...

mochixuan
2017/09/29
0
0
iOS高仿微信、仪表盘、图片标注图片滤镜、高斯模糊、上拉加载、下拉刷新等源码

iOS精选源码 Swift-图片画框标注(http://www.code4app.com/thread-29884-1-1.html) Swift版的上拉加载, 下拉刷新控件(一句话集成, 超级易用)(http://www.code4app.com/thread-29885-1-1.html...

sunnyaigd
05/22
0
0
再看知名应用背后的第三方开源项目

知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的...

hejunbinlan
2015/08/18
0
0
iOS天气动画、高仿QQ菜单、放京东APP、高仿微信、推送消息等源码

iOS精选源码 TYCyclePagerView iOS上的一个无限循环轮播图组件(http://www.code4app.com/thread-14507-1-1.html) iOS高仿微信完整项目源码(http://www.code4app.com/thread-14695-1-1.html)......

sunnyaigd
06/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git 2.18版本发布:支持Git协议v2,提升性能

Git 2.18版本发布:支持Git协议v2,提升性能Git 2.18版本发布:支持Git协议v2,提升性能 新版本协议的主要驱动力是使 Git 服务端能够对各种 ref(分支与 tag)进行过滤操作。 这就意味着,G...

linux-tao
18分钟前
0
0
python浏览器自动化测试库【2018/7/22-更新】

64位py2.7版本 更新 document_GetResources 枚举页面资源 document_GetresourceText 获取指定url的内容 包括页面图片 下载地址下载地址 密码:upr47x...

开飞色
35分钟前
24
0
关于DCL双重锁失效及解决方案

关于DCL双重锁失效及解决方案 Double Check Lock (DCL)实现单例 DCL 方式实现单例的优点是既能够在需要时才初始化单例,又能够保证线程安全,且单例对象初始化后调用getInstance方法不进行...

DannyCoder
41分钟前
0
0
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
今天
0
0
mac Homebrew 指令积累

1通用命令 brew install [包名] //安装包 brew list //列举安装的包 brew info [包名] // 显示安装包的详细信息 mysql 相关 #启动mysql 服务 brew service start mysql my...

Kenny100120
今天
0
0
前端Tips: 创建, 发布自己的 Vue UI 组件库

创建, 发布自己的 Vue UI 组件库 前言 在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI, Vuetify 等. 只需一行命令, 即可方便的将这些库引入我们当前的项目: n...

ssthouse_hust
今天
1
0
大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
今天
5
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
今天
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
今天
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部