將封裝好的文件拖到項目中,導入頭文件,調用就可以了.如圖
Paste_Image.png
類文件主要方法:
Paste_Image.png
/**
UITextView文字超鏈接
@param allStr 整個字符串
@param changeStr 需要更改為超鏈接的部分字符
@param changeStrColor 超鏈接字符顏色
@param style 超鏈接字符的樣式
@return 返回的字符串
*/
+(NSMutableAttributedString *)AllString:(NSString *)allStr ChangeString:(NSString *)changeStr ChangeStrColor:(UIColor *)changeStrColor StrStyle:(NSInteger)style {
NSString *str = [NSString stringWithFormat:@"%@", allStr];
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:str]; // assume string exists
NSRange urlRange = [str rangeOfString:changeStr];
[string addAttribute:NSLinkAttributeName
value:changeStr
range:urlRange];
[string addAttribute:NSForegroundColorAttributeName
value:changeStrColor
range:urlRange];
[string addAttribute:NSUnderlineStyleAttributeName
value:@(style)
range:urlRange];
[string endEditing];
return string;
}
在UITextView需要實現的地方調用,如圖
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UITextView * textView = [[UITextView alloc] initWithFrame:CGRectMake(100, 200, 200, 200)];
textView.backgroundColor =[UIColor whiteColor];
//實現類方法
textView.attributedText = [ZTextViewHyperLink AllString:@"這里的天氣很好,我要到百度上面去買個面膜" ChangeString:@"百度" ChangeStrColor:[UIColor blueColor] StrStyle:NSUnderlineStyleNone ];
textView.dataDetectorTypes = UIDataDetectorTypeLink;
[self.view addSubview:textView];
textView.delegate = self;
[textView setSelectable: YES];
//非編輯狀態下,才能允許跳轉
[textView setEditable:NO];
}
/**
代理方法
*/
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange {
//要打開的超鏈接
NSString *urlStr= @"http://www.hao123.com";
//iOS10,打開跳轉鏈接新方法
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlStr] options:@{} completionHandler:^(BOOL success) {
}];
return YES;
}