@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颜色逐渐变化的更多相关文章

  1. 图像处理------颜色梯度变化 (Color Gradient)

    有过UI设计经验的一定对2D图形渲染中的Color Gradient 或多或少有些接触,很多编程 语言也提供了Gradient的接口,但是想知道它是怎么实现的嘛? 本文介绍三种简单的颜色梯度变化算法, ...

  2. JS-改变页面的颜色之变化核心-获取六位的随机数

    前言:从JS-改变页面的颜色(一).JS-改变页面的颜色(二).JS-改变页面的颜色(三)三个简单的小白例,我们可以轻而易举的看到起变化的核心是——十六进制颜色值的获取方式,所以,我们这里总结一下获取 ...

  3. Android(java)学习笔记240:多媒体之图形颜色的变化

    1.相信大家都用过美图秀秀中如下的功能,调整颜色: 2. 下面通过案例说明Android中如何调色: 颜色矩阵 ColorMatrix cm = new ColorMatrix(); paint.se ...

  4. IntelliJ IDEA 版本控制(svn、git) 修改文件后,所属目录的颜色也变化

    IntelliJ IDEA 的版本控制默认文件修改了,所属目录的颜色是不会变化,这很不方便.如: 修改方法如下: File --> settings --> version control ...

  5. Android(java)学习笔记183:多媒体之图形颜色的变化

    1.相信大家都用过美图秀秀中如下的功能,调整颜色: 2. 下面通过案例说明Android中如何调色: 颜色矩阵 ColorMatrix cm = new ColorMatrix(); paint.se ...

  6. OC-类似歌词字体颜色逐字变化的实现方法

    预期实效果图如下: 如上图所示,文字的颜色会根据时间的移动,逐字变成绿色. 实现方法:(1)调用方法: 用 void UIRectFillUsingBlendMode(CGRect rect, CGB ...

  7. echarts的地图省份颜色自适应变化

    在使用echarts的地图的时候省份的颜色可能随着数据的多少显示不同的颜色,但是当后台返回的数据的变化较大时可能就不好控制了,所以需要设置根据后台的数据进行自适应 将后台返回的数据中的value放入一 ...

  8. android Button 颜色的变化(点击,放开,点击不放)

    参考: http://endual.iteye.com/blog/1534258 总结: 定义res/drawable/button_style.xml文件 <?xml version=&quo ...

  9. android spinner 每行字体颜色都变化

    final static int[] COLOR_LIST={Color.WHITE,Color.WHITE,Color.GRAY,Color.YELLOW,Color.RED}; spinner=( ...

随机推荐

  1. React(2) --super关键字

    参考:http://www.phonegap100.com/thread-4911-1-1.html Es6中的super可以用在类的继承中,super关键字,它指代父类的实例(即父类的this对象) ...

  2. Oracle 数据库恢复命令

    前提是oracle服务能正常启动,但是客户端怎么都连接不上. 首先打开命令行,输入:sqlplus / as sysdba; 回车 连上数据库后,屏幕会显示:已连接到空闲例程. 接下来在SQL> ...

  3. Elastic Search快速入门

    https://blog.csdn.net/weixin_42633131/article/details/82902812 通过这个篇文章可以快速入门,快速搭建一个elastic search de ...

  4. ApplicationContext用法示例

    1.通过ApplicationContext将bean注入容器中 import org.springframework.context.ApplicationContext; import org.s ...

  5. Jmeter —— Test Fragment (测试片段)

    Test Fragment(测试片段) 1.    概念 JMeter中的Test Fragent:是控制器上一种特殊的线程组:它在测试树上与线程组处于同一个层级.但是使用的时候需要和Include ...

  6. ubuntu 开启ftp服务

    一. 检查是否已安装 vsftpd vsftpd -v 二. 安装 vsftpd apt-get install vsftpd 三.  检查是否已安装好 vsftpd vsftpd -v system ...

  7. 数据库与缓存:2.Redis数据库的基本知识

    1.属于什么类型的数据库 not only sql  非关系型数据库,与传统的关系型数据库不同,存储形式都是kv形式. 2.特点 几乎不支持事务,key-value形式存储,支持队列和缓存(可以设置数 ...

  8. Redis Bloom Filter

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11632622.html 背景 比如刷抖音的时候,抖音会不停的推荐新的内容,而它每次推荐时候都要去重,以 ...

  9. C++ 概率算法 利用蒙特卡罗算法计算圆周率

    概率算法大致可分为4种形式: 数值概率算法: 蒙特卡罗算法: 拉斯维加斯算法: 舍伍德算法: 计算蒙特卡罗概率的算法实现: #include "stdio.h" #include ...

  10. 2019 GNTC 阿里云参会分享:云原生SDWAN网络2.0 一站式上云服务

    本次10/22-24 南京2019 GNTC大会上,阿里云网络云原生SDWAN网络2.0 由于独特的云原生定位.创新的解决方案,及成熟的应用案例.行业用户,获得行业媒体C114中国通信网.产业专家高度 ...