IOS 给UILabel字体加一个带颜色的边框

Posted fanfan的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS 给UILabel字体加一个带颜色的边框相关的知识,希望对你有一定的参考价值。

今天做项目碰见一个UI效果,给字体加一圈白边,看起来就像是加了一个背景,思路就是继承一个UILabel,重新覆写drawTextInRect方法,就可以简单实现这个效果,上代码:

 1 //
 2 //  HGLLabel.m
 3 //  xxxxxxxxxx.xxx
 4 //
 5 //  Created by xxxxx on 2017/12/23.
 6 //  Copyright ? 2017年 xxxx. All rights reserved.
 7 //
 8 
 9 #import "HGLLabel.h"
10 
11 @implementation HGLLabel
12 
13 - (void)drawTextInRect:(CGRect)rect {
14     CGSize shadowOffset = self.shadowOffset;
15     UIColor *textColor = self.textColor;
16     
17     CGContextRef c = UIGraphicsGetCurrentContext();
18     CGContextSetLineWidth(c, 8.0);//字体边缘的宽度
19     CGContextSetLineJoin(c, kCGLineJoinRound);
20     
21     CGContextSetTextDrawingMode(c, kCGTextStroke);
22     self.textColor = [UIColor whiteColor];//字体边缘加的颜色
23     [super drawTextInRect:rect];
24     
25     CGContextSetTextDrawingMode(c, kCGTextFill);
26     self.textColor = textColor;
27     self.shadowOffset = CGSizeMake(0, 0);
28     [super drawTextInRect:rect];
29     
30     self.shadowOffset = shadowOffset;
31 }
32 
33 @end

 

 

注释很清楚,不多说。

以上是关于IOS 给UILabel字体加一个带颜色的边框的主要内容,如果未能解决你的问题,请参考以下文章

富文本设置文字颜色和字体

在IOS8上根据边框大小设置UILabel字体大小?

iOS @IBDesignable 自动刷新 UILabel 参数为标题、字体、颜色

NSMutableAttributedString 的属性

NSMuttableAttstring的使用(UILabel或字符串的多色显示)

Swift - UILabel部分字体变颜色