亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS Label實現文字漸變色效果

2020-07-26 02:48:21
字體:
來源:轉載
供稿:網友

前言

前一段時間公司有需求做文字的的漸變色,自己當時也是網上看了一些,自己寫了兩個方法,實現了需求,寫了很久了,只是現在才想起來,就當繼續學習了。分享出來供大家參考學習,下面來看看詳細的介紹:

先看看簡單的:

- (void)addGradientRampWithColors:(NSArray *)colors text:(NSString *)text { //label在父視圖上的(x,y)的值不是中心點 CGPoint point = CGPointMake(30, 500); UILabel *label = [[UILabel alloc]init]; label.text = text; label.font = [UIFont systemFontOfSize:20]; // label.textAlignment = NSTextAlignmentCenter; [label sizeToFit]; //label的中心和想象的一樣啦??! label.center = CGPointMake(point.x + CGRectGetWidth(label.bounds)/2, point.y - CGRectGetHeight(label.bounds)/2); [self.view addSubview:label]; //這個label是和上面的label是對齊的哦,之前都不好對齊,用這樣的方法設置frame就好了// UILabel *infoTextLabel = [[UILabel alloc] init];// infoTextLabel.frame = CGRectMake(label.center.x - CGRectGetWidth(label.bounds)/2 ,point.y + 30, 220, 50);// infoTextLabel.text = @"你說的是哦";// infoTextLabel.font = [UIFont systemFontOfSize:20];// infoTextLabel.backgroundColor =[UIColor redColor];// infoTextLabel.numberOfLines = 0;// infoTextLabel.textAlignment = NSTextAlignmentLeft;// infoTextLabel.textColor = [UIColor blueColor];// [infoTextLabel sizeToFit];// [self.view addSubview:infoTextLabel]; //在后面添加漸變圖層 CAGradientLayer *gradientLayer = [CAGradientLayer layer]; gradientLayer.frame = label.frame; gradientLayer.colors = colors; //漸變的方向(0,0) (0,1) (1,0)(1,1)為四個頂點方向 //(I.e. [0,0] is the bottom-left // corner of the layer, [1,1] is the top-right corner.) The default values // are [.5,0] and [.5,1] gradientLayer.startPoint = CGPointMake(0, 1); gradientLayer.endPoint = CGPointMake(1, 1); [self.view.layer addSublayer:gradientLayer]; gradientLayer.mask = label.layer; label.frame = gradientLayer.bounds;}

自己覺得這樣的方法用起來不是很方便,所以接下來是另一種方法:

.m文件

@implementation CFGradientLabel- (void)drawRect:(CGRect)rect { CGSize textSize = [self.text sizeWithAttributes:@{NSFontAttributeName : self.font}]; CGRect textRect = (CGRect){0, 0, textSize}; // 畫文字(不做顯示用, 主要作用是設置 layer 的 mask) CGContextRef context = UIGraphicsGetCurrentContext(); [self.textColor set]; [self.text drawWithRect:rect options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : self.font} context:NULL]; // 坐標(只對設置后的畫到 context 起作用, 之前畫的文字不起作用) CGContextTranslateCTM(context, 0.0f, rect.size.height - (rect.size.height - textSize.height) * 0.5); CGContextScaleCTM(context, 1.0f, -1.0f); CGImageRef alphaMask = CGBitmapContextCreateImage(context); CGContextClearRect(context, rect); // 清除之前畫的文字 // 設置mask CGContextClipToMask(context, rect, alphaMask); // 畫漸變色 CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)self.colors, NULL); CGPoint startPoint = CGPointMake(textRect.origin.x,          textRect.origin.y); CGPoint endPoint = CGPointMake(textRect.origin.x + textRect.size.width,         textRect.origin.y + textRect.size.height); CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation); // 釋放內存 CGColorSpaceRelease(colorSpace); CGGradientRelease(gradient); CFRelease(alphaMask);}

.h 文件

@interface CFGradientLabel : UILabel@property(nonatomic, strong) NSArray* colors;@end

接下來是調用的方法,修改了一下的

- (void)addGradientLabelWithFrame:(CGPoint)point gradientText:(NSString *)text infoText:(NSString *)infoText colors:(NSArray *)colors font:(UIFont *)font { static NSInteger labelTag = 200; CFGradientLabel *lable = [[CFGradientLabel alloc] init]; lable.text = text; lable.font = font; lable.tag = labelTag; lable.textAlignment = NSTextAlignmentCenter; [lable sizeToFit]; //之前項目的時候設置了為0,忘了注釋,所以有的小伙伴用的時候就不顯示了……(^-^)// lable.alpha = 0; lable.center = point; lable.colors = colors; [self.view addSubview:lable];}

做的是引導頁,看看效果圖如下:


總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美高跟鞋交xxxxxhd| 97视频在线播放| 国产精品永久免费视频| 亚洲女人初尝黑人巨大| 91精品综合视频| 中文字幕亚洲色图| 久久精品人人做人人爽| 九九九久久国产免费| 欧美精品电影在线| 精品高清美女精品国产区| 日韩精品视频在线播放| 成人精品久久久| 岛国av在线不卡| 中文字幕欧美专区| 精品无人区太爽高潮在线播放| 亚洲乱码av中文一区二区| 一个人www欧美| 国产99久久精品一区二区 夜夜躁日日躁| 日韩av高清不卡| 国产精品激情av电影在线观看| 在线播放国产精品| 亚洲欧洲午夜一线一品| 亚洲欧美激情四射在线日| 亚洲国产成人爱av在线播放| 久久久久久久久久久免费精品| 日本伊人精品一区二区三区介绍| 欧美在线视频观看| 国产精品黄色av| 国语自产精品视频在免费| 日韩av免费观影| 91午夜在线播放| 欧美成人在线免费| 国产精品永久免费视频| 欧美日韩精品在线播放| 久久久国产一区| 国产精品成av人在线视午夜片| 亚洲男人天堂2019| 一区二区三区四区精品| 欧美xxxx做受欧美| 国产精品免费小视频| 国产精品视频精品视频| 日韩亚洲在线观看| 欧美性生交xxxxx久久久| 色综合色综合久久综合频道88| 欧美国产日韩在线| 欧美黄色小视频| 欧美限制级电影在线观看| 久久精品国产欧美亚洲人人爽| 国产精品黄页免费高清在线观看| 久久久久久久成人| 成人福利在线观看| 日韩中文理论片| 国产成人精品免费久久久久| 性欧美视频videos6一9| 91精品国产沙发| 欧美日韩国产二区| 日韩欧美亚洲一二三区| 一区二区三区四区在线观看视频| 一区二区三区黄色| 日韩av综合中文字幕| 久久高清视频免费| 亚洲娇小xxxx欧美娇小| 国产精品永久免费视频| 久久久久久中文字幕| 成人免费大片黄在线播放| 午夜精品99久久免费| 欧美日韩成人在线观看| 热久久这里只有| 中文字幕欧美在线| 亚洲自拍欧美另类| 一本色道久久综合狠狠躁篇怎么玩| 国产日韩精品一区二区| 日韩精品视频免费在线观看| 亚洲国产又黄又爽女人高潮的| 国产欧美va欧美va香蕉在| 日本精品一区二区三区在线播放视频| 久久躁狠狠躁夜夜爽| 亚洲国产精品成人一区二区| 欧美另类在线观看| 国产69久久精品成人看| 欧美精品在线免费播放| 亚洲欧美在线看| 久久免费视频这里只有精品| 欧美影院在线播放| 亚洲欧美精品suv| 亚洲天堂第一页| 中文字幕亚洲国产| 国产不卡在线观看| 欧美日韩一区二区三区在线免费观看| 欧美中文字幕在线视频| 国产va免费精品高清在线| 亚洲视频精品在线| 国产一区二区激情| 亚洲自拍偷拍一区| 91在线视频九色| 欧美影院久久久| 亚洲成人精品久久| 久久成人国产精品| 国产精品久久久久久久久粉嫩av| 欧美日韩亚洲一区二区三区| 久久亚洲精品一区| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲电影免费观看高清完整版在线| 九九热精品视频在线播放| 国产专区精品视频| 亚洲综合国产精品| 另类少妇人与禽zozz0性伦| 国产精品视频成人| 丝袜美腿亚洲一区二区| 日韩中文字幕在线视频| 国产精品美女www爽爽爽视频| 日韩中文字在线| 一区二区三区四区在线观看视频| 欧美性视频在线| 91精品国产91久久久久久吃药| 成人性生交xxxxx网站| 国产精品视频专区| 国产日韩欧美在线| 国产99久久精品一区二区永久免费| 日韩免费观看在线观看| 欧美日韩国产成人在线观看| 亚洲美腿欧美激情另类| 国产亚洲福利一区| 亚洲性xxxx| 91中文在线观看| 亚洲欧美国产va在线影院| 91人人爽人人爽人人精88v| 欧美刺激性大交免费视频| 国产精品吴梦梦| 久久久久久久久久久人体| 亚洲激情国产精品| 久久精品亚洲94久久精品| 日韩中文字幕网| 亚洲精品动漫100p| 久久久av网站| 国内精品一区二区三区| 亚洲综合精品一区二区| 亚洲片国产一区一级在线观看| 欧美寡妇偷汉性猛交| 亚洲少妇中文在线| 国产噜噜噜噜噜久久久久久久久| 亚洲国产精品资源| 97成人在线视频| 欧美一区二区三区艳史| 91九色综合久久| 久久免费精品视频| 亚洲欧洲第一视频| 亚洲有声小说3d| 97视频免费在线观看| 午夜精品一区二区三区在线播放| 欧美精品日韩三级| 亚洲精品国产拍免费91在线| 国产美女久久精品| 在线观看欧美www| 日韩欧美亚洲成人| 国语自产精品视频在免费| 日韩欧美一区视频| 精品二区三区线观看| 欧美美最猛性xxxxxx| 亚洲精品美女在线| 欧美丰满少妇xxxxx做受| 国产精品1234| 精品久久久久久久大神国产| 亚洲国产欧美在线成人app|