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=( ...
随机推荐
- 英伟达GPU 嵌入式开发平台
英伟达GPU 嵌入式开发平台 1. JETSON TX1 开发者组件 JETSON TX1 开发者组件是视觉计算的全功能 开发平台,旨在让您能够快速地安装和运行. 该组件带有 Lin ...
- 脚本_检测mysql存活状态
#!bin/bash#功能:检测mysql服务是否存活#作者:liusingbon# host为你需要检测的mysql主机的IP 地址,user为mysql账户名,passwd为密码; 这些信息需要根 ...
- hadoop_hdfs_上传文件报错
错误提示: INFO hdfs.DFSClient: Exception in createBlockOutputStream java.io.IOException: Bad connect ack ...
- office visio project安装
1.VOL 版和 Retail 零售版的区别 VOL版是大客户版,也叫批量授权版本.VOL版本一个key可以激活指定数量的机器. Retail版即零售版,也就是平时在商店里买的office安装光盘里面 ...
- "Unable to locate package lrzsz"的解决办法
某天安装一些常用软件,比如lrzsz的时候出错了 $ sudo apt-get install lrzsz Reading package lists... Done Building depende ...
- QT + openssl + VS2015静态编译
从http://slproweb.com/products/Win32OpenSSL.html下载已经编译好的openssl,一路next 我将OpenSSL-Win32\lib\VC目录下的libe ...
- [ES6]react中使用es6语法
前言 不论是React还是React-native,facebook官方都推荐使用ES6的语法,没在项目中使用过的话,突然转换过来会遇到一些问题,如果还没有时间系统的学习下ES6那么注意一些常见的写法 ...
- ltp-ddt genload
under folder tools\genload genload.c "`%s' imposes certain types of compute stres ...
- vue tab切换布局
页面 功能 点击tab1和tab2,content内容切换content1和content2 <template> <div> <div class="tab& ...
- js 运动框架-轻量级
具体代码如下: function move(obj,json,sv,fnEnd){ //CSS样式值 function getStyle(obj,attr){ if(obj.currentStyle) ...