iOS开发--UILabel加载Html内容, 并添加超链接的点击

该博客介绍了在iOS应用中如何处理HTML内容并展示在UILabel上,同时实现富文本中的超链接点击事件。首先,通过将HTML转换为富文本来显示内容,然后开启UILabel的用户交互并添加点击手势识别器。当点击超链接时,利用NSDataDetector解析链接并弹出选择对话框,用户可以选择打开多个链接中的任一网页。此方法适用于只需文字展示且包含超链接的轻量级场景,避免了WKWebView资源消耗大的问题。

场景:

项目中的简介(关于)页面, 服务器给返回了Html的语句, 展示相关的内容

方案:

  1. 想用WKWebView去加载, 但是, WK的在轻量级需求而言, 消耗资源大就成了其短板.
  2. 使用UILabel + 富文本

对比两个方案, 开启WK的消耗资源大, 再加上当前页面只是文字展示, 所以, 方案二是相对而言的最佳方案.

解决:

在解决的过程中, 本来以为只是展示出就可以了, 发现Html中包含了href的超链接, 所以, 如果你的项目中, 也有包含href的超链接, 那么可以参考步骤2和步骤3, 如果没有只看步骤1即可

1. 将html转换成富文本

重点为: NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType

- (NSMutableAttributedString *)getContentHtml:(NSString *)content {
   
   
    NSDictionary *options = @{
   
   NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType,
                              NSCharacterEncodingDocumentAttribute : @(NSUTF8StringEncoding)};
    NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
    NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithData:data options:options documentAttributes:nil error:nil];
    
    // 设置段落格式
    NSMutableParagraphStyle *para 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值