在我们应用中,经常会用到带下划线的label,比如“找回密码”“一句话中字体的颜色大小不同”。RTLabel是一个非常不错的库。
这里说一下使用:
1.将RTLabel.h 和 RTLabel.m直接拽入你的工程中;
2.引入 CoreText.framework;
3.初始化和使用:
RTLabel *forgotLb = [[RTLabel alloc] initWithFrame:self.fensiLabel.bounds];
forgotLb.text = [NSString stringWithFormat:@"<font size=12 color='#CCCCCC'>粉丝</font><font size=12 color='#B3996B'>%ld</font><font size=12 color='#CCCCCC'>人,已超越</font><font size=12 color='#B3996B'>%@</font><font size=12 color='#CCCCCC'>的用户</font>",model.fanCount,model.overNum];
forgotLb.delegate = self;
forgotLb.userInteractionEnabled = YES;
[self.fensiLabel addSubview:forgotLb];
forgotLb.text = @"粉丝<span style="color:#cc0000;">100</span>人,已超越<span style="color:#cc0000;">80%</span>的用户"
4.常用标签的设置
<b>Bold</b> //加粗
<i>Italic</i> //斜体
<bi>Bold & Italic</bi> //同时加粗斜体
<u>underline</u> //下划线
<u color=red>underline with color</u> // 下划线和颜色
<a href='http://..'>link</a> //链接
<uu>double underline</uu> //双下划线
<uu color='#ccff00'>double underline with color</uu> //双下划线和颜色
<font face='HelveticaNeue-CondensedBold' size=20 color='#CCFF00'>custom font</font> //自定义字体大小的颜色<font face='HelveticaNeue-CondensedBold' size=20 color='#CCFF00' stroke=1>custom font with strokes</font>//空心的字体
<font face='HelveticaNeue-CondensedBold' size=20 color='#CCFF00' kern=35>custom font with kerning</font>//可以调整字之间的间距
<p align=justify>alignment</p>//单词两端对齐<p indent=20>indentation</p>//文本缩进
5.
这是RTLabel支持的一些特性,下划线的Label,可变颜色和文字大小的Label, 带链接的Label等等这些特性。
进入正题,让Label响应Touch事件,如UIControlEventTouchDown。
仔细看了RTLabel的源码,RTLabel中包含了一个代理,
@protocol RTLabelDelegate <NSObject>
- (void)rtLabel:(id)rtLabel didSelectLinkWithURL:(NSURL*)url;
@end
实现代理
- (void)rtLabel:(id)rtLabel didSelectLinkWithURL:(NSURL*)url
{
NSLog(@"rtLabel is clicked,url is %@",url);
[[UIApplication sharedApplication] openURL:url];
}
github: https://github.com/honcheng/RTLabel