1)我想添加一个到UITextView的链接。我知道如果我在文本中添加http://stackoverflow.com这样的网址,它会自动被识别为链接。但有没有办法让一个单词的链接,而不仅仅是一个网址?与HTML中一样:<a href="http://stackoverflow.com ">stackoverflow</a>
2)我想自定义此链接,尤其是它的颜色,字体类型等。有没有办法只为链接添加属性?
如果这一切都很复杂,你认为有更好的方法吗?
谢谢!
答案 0 :(得分:3)
试试这个:
self.myTextView.dataDetectorTypes = UIDataDetectorTypeLink;
答案 1 :(得分:1)
它接缝不可能用UITextViews做我想要的东西(至少不容易)。解决方案是使用UIWebView,并使用文本和链接加载本地HTML文件。您甚至可以使用一些CSS来自定义颜色,大小......
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
// webview
webview.delegate = (id<UIWebViewDelegate>)self;
NSString *path;
NSBundle *thisBundle = [NSBundle mainBundle];
path = [thisBundle pathForResource:@"fileName" ofType:@"html"];
NSError *error;
NSString *initialHTMLString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
[webview loadHTMLString:initialHTMLString baseURL:nil];
webview.opaque = NO;
webview.backgroundColor = [UIColor clearColor];
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL:[request URL]];
return NO;
}
return YES;
}
我希望这可以帮助任何有同样问题的人!
答案 2 :(得分:1)
textView.dataDetectorTypes = .link
textView.isEditable = false
textView.isSelectable = true
let html = "<div style=\"font-family: 'Arial'; font-size: 20;\"><a href=\"http://www.stackoverflow.com\">stackoverflow</a></div>"
if let dataWithHTML = html.data(using: .utf8) {
textView.attributedText = try? NSAttributedString(data: dataWithHTML, options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue], documentAttributes: nil)
}
答案 3 :(得分:0)
查看DTCoreText,它提供了一系列不同的视图,您可以使用HTML输入并自定义显示和处理。