UILabel颜色逐渐变化
@interface UIViewController ()
@property (weak, nonatomic) IBOutlet UIView *backView; //空间是用storyBoard创建的
@property (nonatomic, strong) CAGradientLayer* gradientLayer;
@end
@implementation UIViewController
- (void)viewDidLoad {
//设置Label的背景颜色渐变 要把label添加到一个View上

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, self.backView.frame.size.width, self.backView.frame.size.height)];
label.textAlignment = NSTextAlignmentCenter;
label.backgroundColor = [UIColor clearColor];
label.text = @"label背景颜色渐变";
label.font = [UIFont systemFontOfSize:17];
label.textColor = [UIColor greenColor];
[self.backView addSubview:label];
[self textGradientview:label1 bgVIew:self.backView gradientColors:@[(id)[self randomColor].CGColor, (id)[self randomColor].CGColor, (id)[self randomColor].CGColor] gradientStartPoint:CGPointMake(0, 1) endPoint:CGPointMake(1, 0)];
//设置label文字的颜色渐变 重新创建一个View

UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(60, 300, 300, 80)];
label1.textAlignment = NSTextAlignmentCenter;
label1.text = @"label字体的颜色渐变allalal";
label1.font = [UIFont systemFontOfSize:20];
label1.textColor = [UIColor greenColor];
[self.view addSubview:label1];
[self textGradientview:label1 bgVIew:self.view gradientColors:@[(id)[self randomColor].CGColor, (id)[self randomColor].CGColor, (id)[self randomColor].CGColor] gradientStartPoint:CGPointMake(0, 1) endPoint:CGPointMake(1, 1)];
//
NSTimer *timer = [NSTimer timerWithTimeInterval:.1 target:self selector:@selector(textColorChange) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
}
/**
@param view Label
@param bgVIew Label的父视图
@param colors 颜色数组
@param startPoint 开始的中心点
@param endPoint 结束的中心点
*/
-(void)textGradientview:(UIView *)view bgVIew:(UIView *)bgVIew gradientColors:(NSArray *)colors gradientStartPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint {
_gradientLayer = [CAGradientLayer layer];
_gradientLayer.frame = view.frame;
_gradientLayer.colors = colors;
_gradientLayer.startPoint = startPoint;
_gradientLayer.endPoint = endPoint;
[bgVIew.layer addSublayer:_gradientLayer];
_gradientLayer.mask = view.layer;
view.frame = _gradientLayer.bounds;
}
-(UIColor *)randomColor{
CGFloat r = arc4random_uniform(256) / 255.0;
CGFloat g = arc4random_uniform(256) / 255.0;
CGFloat b = arc4random_uniform(256) / 255.0;
return [UIColor colorWithRed:r green:g blue:b alpha:1];
}
// 定时器触发方法
-(void)textColorChange {
_gradientLayer.colors = @[(id)[self randomColor].CGColor,
(id)[self randomColor].CGColor,
(id)[self randomColor].CGColor];
}
@end
UILabel颜色逐渐变化的更多相关文章
- 图像处理------颜色梯度变化 (Color Gradient)
有过UI设计经验的一定对2D图形渲染中的Color Gradient 或多或少有些接触,很多编程 语言也提供了Gradient的接口,但是想知道它是怎么实现的嘛? 本文介绍三种简单的颜色梯度变化算法, ...
- JS-改变页面的颜色之变化核心-获取六位的随机数
前言:从JS-改变页面的颜色(一).JS-改变页面的颜色(二).JS-改变页面的颜色(三)三个简单的小白例,我们可以轻而易举的看到起变化的核心是——十六进制颜色值的获取方式,所以,我们这里总结一下获取 ...
- Android(java)学习笔记240:多媒体之图形颜色的变化
1.相信大家都用过美图秀秀中如下的功能,调整颜色: 2. 下面通过案例说明Android中如何调色: 颜色矩阵 ColorMatrix cm = new ColorMatrix(); paint.se ...
- IntelliJ IDEA 版本控制(svn、git) 修改文件后,所属目录的颜色也变化
IntelliJ IDEA 的版本控制默认文件修改了,所属目录的颜色是不会变化,这很不方便.如: 修改方法如下: File --> settings --> version control ...
- Android(java)学习笔记183:多媒体之图形颜色的变化
1.相信大家都用过美图秀秀中如下的功能,调整颜色: 2. 下面通过案例说明Android中如何调色: 颜色矩阵 ColorMatrix cm = new ColorMatrix(); paint.se ...
- OC-类似歌词字体颜色逐字变化的实现方法
预期实效果图如下: 如上图所示,文字的颜色会根据时间的移动,逐字变成绿色. 实现方法:(1)调用方法: 用 void UIRectFillUsingBlendMode(CGRect rect, CGB ...
- echarts的地图省份颜色自适应变化
在使用echarts的地图的时候省份的颜色可能随着数据的多少显示不同的颜色,但是当后台返回的数据的变化较大时可能就不好控制了,所以需要设置根据后台的数据进行自适应 将后台返回的数据中的value放入一 ...
- android Button 颜色的变化(点击,放开,点击不放)
参考: http://endual.iteye.com/blog/1534258 总结: 定义res/drawable/button_style.xml文件 <?xml version=&quo ...
- android spinner 每行字体颜色都变化
final static int[] COLOR_LIST={Color.WHITE,Color.WHITE,Color.GRAY,Color.YELLOW,Color.RED}; spinner=( ...
随机推荐
- 2019CCPC网络预选赛 1004 path 最短路
题意:给你一张n个点m条边的有向图,问这张有向图的所有路径中第k短的路径长度是多少?n, m, k均为5e4级别. 思路:前些日子有一场div3的F和这个题有点像,但是那个题要求的是最短路,并且k最大 ...
- H2database创建表
语法和sql server大同小异 create table users(id int primary key not null int identity, name varchar(20))
- python读文件的4种方式
1.直接打开就读 with open('filepath','r') as f: for line in f: print(line) print('一行数据') 虽然f是一个文件实例,但可以通过以上 ...
- centos 6.5 关闭图形界面
图形界面的关闭分为临时关闭和永久关闭,临时关闭重启系统后恢复正常,永久关闭重启系统后图形界面仍然为关闭状态. 临时关闭 init 3 永久关闭 vi /etc/inittab 修改下面一行 id:3: ...
- Centos7.4 离线安装httpd(解决rpm依赖)
1.直接下载httpd的rpm安装包,安装失败需要先解决依赖. [root@node06 ~]# rpm -ivh httpd--.el7.centos.x86_64.rpm warning: htt ...
- 深入理解js——非构造函数的继承
原文来自阮一峰日志(http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.ht ...
- logstash配置文件详解
logstash pipeline 包含两个必须的元素:input和output,和一个可选元素:filter. 从input读取事件源,(经过filter解析和处理之后),从output输出到目标 ...
- LOJ 3093 「BJOI2019」光线——数学+思路
题目:https://loj.ac/problem/3093 考虑经过种种反射,最终射下去的光线总和.往下的光线就是这个总和 * a[ i ] . 比如只有两层的话,设射到第二层的光线是 lst ,那 ...
- [CSP-S模拟测试]:biology(DP)
题目传送门(内部题23) 输入格式 第一行有$2$个整数$n,m$.接下来有$n$行,每行$m$个整数,表示$a$数组.接下来有$n$行,每行$m$个整数,表示$b$数组. 输出格式 一行一个整数表示 ...
- Oracle 表空间、用户
一.表空间 临时表空间 创建临时表空间范例 CREATE TEMPORARY TABLESPACE duke_temp /* 临时表空间名称:duke_temp */ tempfile 'C:\ora ...