2

1)我想添加一个指向 UITextView 的链接。我知道如果我在我的文本中放置一个像http://stackoverflow.com这样的 url ,它会自动被识别为一个链接。但是有没有办法为一个单词提供链接,而不仅仅是一个 url ?就像在 HTML 中一样:<a href="http://stackoverflow.com ">stackoverflow</a>

2) 我想自定义这个链接,尤其是它的颜色、字体类型等。有没有办法只为链接添加属性?

如果这一切都很复杂,你有没有更好的方法来轻松地做到这一点?

谢谢 !

4

4 回答 4

3

尝试这个:

self.myTextView.dataDetectorTypes = UIDataDetectorTypeLink;
于 2013-07-15T13:49:40.123 回答
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;

}

我希望这会帮助任何有同样问题的人!

于 2013-07-16T11:52:00.143 回答
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)
}
于 2017-04-11T10:54:33.853 回答
0

看看DTCoreText,它提供了一系列不同的视图,您可以在其中使用 HTMLish 输入并自定义显示和处理。

于 2013-07-15T13:48:15.973 回答