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=( ...
随机推荐
- CodeForces - 343D 树链剖分
题目链接:http://codeforces.com/problemset/problem/343/D 题意:给定一棵n个n-1条边的树,起初所有节点权值为0,然后m个操作. 1 x:把x为根的子树的 ...
- linux ---JDK的安装与配置--两种方式
linux下的JDK的安装与配置:JDK的安装有两种方式: tar包和rpm安装1.tar包安装: 下载地址:http://www.oracle.com/technetwork/java/javase ...
- leetcode 001
1 Two Sum Difficulty: Easy The Link: https://leetcode.com/problems/two-sum/description/ Description ...
- CF883J 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest - J. Renovation 贪心+树状数组
首先对于一个月的预算,如果非常小的话,我们可以留到后面的 \(a_i\) 最大的月来用,因为 \(a_i\) 越大能够拆建筑的越多. 于是我们把 \(a_i\) 合并给 \(i\) 后面的 \(a\) ...
- Java使用文件通道复制文件
两种文件通道复制文件方式的性能比较 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IO ...
- Java 实现文件复制的不同方法
用不同的方法实现文件的复制 1. 通道 Channel,它是一个对象,可以通过它读取和写入数据.拿NIO与原来的I/O比较,通道就像是流.是对接操作系统底层和缓冲区的桥梁. 2. 性能比较 内存映射最 ...
- python爬虫:2.每天爬取数据量是多少?
带宽 网站阈值 单机 分布式 几百万
- python之chardet用来检测字符串编码的
import chardet a=b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xe3\x80\x82'print(ch ...
- MySQL入门常用命令
使用本地 MySQL,系统 Ubuntu. mysql -u root -p 输入 root 用户的密码进入MySQL: mysql>
- hdu 5964:平行四边形 【计算几何】
打重现赛时,一点思路也没有,然后又看到这题AC数那么少,就直接放弃了.今天重新看了看,借鉴了下别人的,发现此题应该算是一道可解题. 看上去,这题的ans是同时有两个点作为自变量的函数(然而n^2复杂度 ...