最近在开发中遇到了文字实现超链接的功能,以前学习过RTLabel,知道能用它做超链接,具体该怎么操作呢?下面我来一一讲解:
1、需要创建一个txt的文本文件,文件内容需要写成下面的Html格式
<font color='#666666'>点击下面你会跳转到百度网页:<a href='http://www.baidu.com'>www.baidu.com</a> </font>。如果你要用到文字跳转的话只需要将网站的地址进行修改就行了,如果还需要添加描述文字可以在标签尾部前面添加。
这个文本创建完成后保存,然后将该文本添加到Xcode工程中。
2、将RTLabel类导入Xcode工程中,在需要用到的类中导入RTLabe.h的头文件,并在延展里添加<RTLabelDelegate>。
3、获取文本中的内容
//获取txt中的内容,其中1为文件名
NSString *content = [NSStringstringWithContentsOfFile:[[NSBundlemainBundle]pathForResource:@"1"ofType:@"txt"]encoding:NSUTF8StringEncodingerror:nil];
//设置字体的大小,以便设置获取文本的高度
UIFont *font = [UIFontfontWithName:@"Arial"size:16];
NSDictionary *dic = [NSDictionarydictionaryWithObjectsAndKeys:font,NSFontAttributeName,nil];
CGSize sizeText = CGSizeMake(0, 0);
sizeText = [content boundingRectWithSize:CGSizeMake(SCREEN_WIDTH, 10000)options:NSStringDrawingUsesLineFragmentOriginattributes:diccontext:nil].size;
CGFloat height = sizeText.height;//此处的height为获取文本的高度
//富文本标签
RTLabel *contentLabel = [[RTLabelalloc]initWithFrame:CGRectMake(5, 0 ,SCREEN_WIDTH - 10, height)];
contentLabel.text = content;
contentLabel.delegate =self;
contentLabel.font = [UIFontsystemFontOfSize:15];
//我这里是在单元格里面添加的此段内容,切记不能用cell.textLabel.text = contentLabel,这样会导致文本显示html标签内容,用addSubview方法则不会显示标签,只会显示文本和超链接内容
[cell.contentView addSubview:contentLabel];
4、在类中添加RTLabel的代理方法://// 点击超链接调用的程序
- (void)rtLabel:(id)rtLabel didSelectLinkWithURL:(NSURL *)url
{
NSString *urlString = [NSStringstringWithFormat:@"%@",url];
urlString = [[urlString componentsSeparatedByString:@"//"]lastObject];
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:[NSStringstringWithFormat:@"http://%@",urlString]]];
}
5、完成上面的操作基本上就可以实现文本的超链接的功能了。