@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. Linux学习笔记之文件与文件系统的压缩与打包

    四.文件与文件系统的压缩与打包 用途: 传输时减少带宽 Linux系统常见的压缩命令 Compass(旧版压缩,并且在centOS中默认为不安装) gzip, zcat bzip2, bzcat zi ...

  2. 二 shell 基础

    一   文件的 权限基础 文件有三类权限   user,group,other, 权限分为 r w x  代表数字分别为 4 2 1 修改权限命令 chmod 权限还有特殊权限,在执行的时候代表某一身 ...

  3. spring cloud学习笔记五 网关服务zuul

    网关服务是指,客户端发送的请求不用直接访问特定的微服务接口,而且是经过网关服务的接口进行交互,网关服务再去到特定的微服务中进行调用.   网关服务的路由功能和Nginx的反向代理一样,所有的服务都先会 ...

  4. Spring-quartz定时系统多任务配置

    <!-- 启动触发器的配置开始 --> <bean name="startQuertz" lazy-init="false" autowire ...

  5. python读文件的4种方式

    1.直接打开就读 with open('filepath','r') as f: for line in f: print(line) print('一行数据') 虽然f是一个文件实例,但可以通过以上 ...

  6. Linux命令行工具之free命令

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11524691.html 使用 free 查看整个系统的内存使用情况 Note:不同版本的free输出可 ...

  7. flask中间件请求流程

    from flask import Flask,session,url_for,request,flash,get_flashed_messages app = Flask(__name__) app ...

  8. springmvc对象作为 目标方法的参数。

    /** * Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配, 自动为该对象填充属性值.支持级联属性. * 如:dept.deptId.dept.address.tel 等 */ ...

  9. npm 常见错误记录

    1.Module build failed: ReferenceError: Unknown plugin "import" specified in "base&quo ...

  10. wamp环境的搭建

    本文详细介绍了在Windows2003下使用Apache2.2.21/PHP5.3.5/Mysql5.5.19/phpMyAdmin3.4.9搭建php开发环境. 第一步:下载安装的文件 1. Apa ...