// 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;
}