iOS文字实现超链接

来源:互联网 发布:网络打印机安装步骤 编辑:程序博客网 时间:2024/05/17 08:54

      最近在开发中遇到了文字实现超链接的功能,以前学习过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、完成上面的操作基本上就可以实现文本的超链接的功能了。



1 0