处理文本中的超链接

[objc]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. // modify by huangyibiao  
  2.    //添加文本信息  
  3. TTTAttributedLabel *bubbleText = [[TTTAttributedLabel alloc]  
  4.                                      initWithFrame:CGRectMake(fromSelf?10.0f:27.0f20.0f, size.width+10, size.height+10)];  
  5.    bubbleText.delegate = self;  
  6. bubbleText.backgroundColor = [UIColor clearColor];  
  7.    bubbleText.tag=indexPath.row;  
  8. bubbleText.font = font;  
  9. bubbleText.numberOfLines = 0;  
  10. bubbleText.lineBreakMode = NSLineBreakByWordWrapping;  
  11. bubbleText.text = text;  
  12.    bubbleText.linkAttributes = @{(NSString *)kCTUnderlineStyleAttributeName : [NSNumber numberWithBool:YES],  
  13.                                  (NSString*)kCTForegroundColorAttributeName : (id)[[UIColor blueColor] CGColor]};  
  14.      
  15.    bubbleText.highlightedTextColor = [UIColor whiteColor];  
  16.    bubbleText.verticalAlignment = TTTAttributedLabelVerticalAlignmentTop;  
  17.    // end modify by huangyibiao  
  18.      
  19.    // add by huangyibiao  
  20.    // reasion: handle links in chat content, ananylizing each link  
  21.    // 提取出文本中的超链接  
  22.    NSError *error;  
  23.    NSString *regulaStr = @"((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)";  
  24.    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regulaStr  
  25.                                                                           options:NSRegularExpressionCaseInsensitive  
  26.                                                                             error:&error];  
  27.    NSArray *arrayOfAllMatches = [regex matchesInString:text  
  28.                                                options:0  
  29.                                                  range:NSMakeRange(0, [text length])];  
  30.    NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:text];  
  31.    for (NSTextCheckingResult *match in arrayOfAllMatches) {  
  32.        NSString *substringForMatch = [text substringWithRange:match.range];  
  33.        [attribute addAttribute:(NSString *)kCTFontAttributeName value:(id)bubbleText.font range:match.range];  
  34.        [attribute addAttribute:(NSString*)kCTForegroundColorAttributeName  
  35.                          value:(id)[[UIColor blueColor] CGColor]  
  36.                          range:match.range];  
  37.        [bubbleText addLinkToURL:[NSURL URLWithString:substringForMatch] withRange:match.range];  
  38.    }  
  39.    // end add by huangyibiao  


下面是代理 方法:

[objc]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. #pragma mark - TTTAttributedLabelDelegate 点击聊天内容中的超链接  
  2. - (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url {  
  3.     HYBLoadWebviewController *web = [[HYBLoadWebviewController alloc] initWithUrl:url];  
  4.     web.hidesBottomBarWhenPushed = YES;  
  5.     [self.navigationController pushViewController:web animated:YES];  
  6.     return;  
  7. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值