使用NSLinkAttributeName属性从NSMutableAttributedString获取。
使用html文件作为链接名称。如何使文本区域更大。
-(NSMutableAttributedString *)attributedStringForLink:(NSString *)fullString
attributedString :(NSMutableAttributedString *)attributedString
link:(NSString *)linkString
path:(NSString *)pathString
font:(UIFont *)textFont
color:(UIColor *)textColor
alignment:(NSTextAlignment)textAlign
{
NSMutableAttributedString *attString;
if(attributedString) {
attString = attributedString;
} else {
attString = [[NSMutableAttributedString alloc]initWithString:fullString];
}
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
[paragraphStyle setAlignment:textAlign];
[paragraphStyle setLineBreakMode:NSLineBreakByWordWrapping];
NSDictionary *attributes = @{NSParagraphStyleAttributeName:paragraphStyle,
NSFontAttributeName:textFont,
NSForegroundColorAttributeName:textColor};
NSRange range = [fullString rangeOfString:linkString];
[attString addAttributes:attributes range:range];
[attString addAttribute:NSLinkAttributeName value:pathString range:range];
[attString addAttribute:NSForegroundColorAttributeName value:textColor range:range];
return attString;
}发布于 2020-04-22 23:14:55
很抱歉,我的prob描述非常糟糕。使用的是一个带有链接的NSAttributedString,它产生的结果非常小。原来它是我自己的视图控制器,带有一个小UIWebView。创建一个新的UIViewController,其中包含一个包含UIWebView的UITextView。添加以下委托方法:
-(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL
inRange:(NSRange)characterRange
interaction:(UITextItemInteraction)interaction
{
if([[URL absoluteString] isEqualToString:@""]) {
return NO;
}
WebViewController *viewController = [[WebViewController alloc]init];
viewController.pathString = [URL absoluteString];
[self presentViewController:viewController animated:YES completion:nil];
return NO;
}https://stackoverflow.com/questions/61332114
复制相似问题