- // modify by huangyibiao
- //添加文本信息
- TTTAttributedLabel *bubbleText = [[TTTAttributedLabel alloc]
- initWithFrame:CGRectMake(fromSelf?10.0f:27.0f, 20.0f, size.width+10, size.height+10)];
- bubbleText.delegate = self;
- bubbleText.backgroundColor = [UIColor clearColor];
- bubbleText.tag=indexPath.row;
- bubbleText.font = font;
- bubbleText.numberOfLines = 0;
- bubbleText.lineBreakMode = NSLineBreakByWordWrapping;
- bubbleText.text = text;
- bubbleText.linkAttributes = @{(NSString *)kCTUnderlineStyleAttributeName : [NSNumber numberWithBool:YES],
- (NSString*)kCTForegroundColorAttributeName : (id)[[UIColor blueColor] CGColor]};
- bubbleText.highlightedTextColor = [UIColor whiteColor];
- bubbleText.verticalAlignment = TTTAttributedLabelVerticalAlignmentTop;
- // end modify by huangyibiao
- // add by huangyibiao
- // reasion: handle links in chat content, ananylizing each link
- // 提取出文本中的超链接
- NSError *error;
- 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\\.\\-~!@#$%^&*+?:_/=<>]*)?)";
- NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regulaStr
- options:NSRegularExpressionCaseInsensitive
- error:&error];
- NSArray *arrayOfAllMatches = [regex matchesInString:text
- options:0
- range:NSMakeRange(0, [text length])];
- NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:text];
- for (NSTextCheckingResult *match in arrayOfAllMatches) {
- NSString *substringForMatch = [text substringWithRange:match.range];
- [attribute addAttribute:(NSString *)kCTFontAttributeName value:(id)bubbleText.font range:match.range];
- [attribute addAttribute:(NSString*)kCTForegroundColorAttributeName
- value:(id)[[UIColor blueColor] CGColor]
- range:match.range];
- [bubbleText addLinkToURL:[NSURL URLWithString:substringForMatch] withRange:match.range];
- }
- // end add by huangyibiao
下面是代理 方法:
- #pragma mark - TTTAttributedLabelDelegate 点击聊天内容中的超链接
- - (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url {
- HYBLoadWebviewController *web = [[HYBLoadWebviewController alloc] initWithUrl:url];
- web.hidesBottomBarWhenPushed = YES;
- [self.navigationController pushViewController:web animated:YES];
- return;
- }