Можно ли заставить UIWebView загружать HTML-строку, но действовать как UILabel

TTStyledTextLabel это именно то, что я хочу, но я не хочу добавлять весь проект Three20 только для этой только одной функции. Какие-либо предложения?

2 ответа

Решение

Если вы согласны с ограничением приложения до iOS 6+, поддержка атрибутных строк доступна на всех стандартных элементах управления рендерингом, в противном случае доступно множество других сторонних решений (включая мое любимое OHAttributedLabel). Просто не используйте WebView для чего-то такого простого, это действительно очень тяжелые объекты.

Да, вы можете использовать - stringByEvaluatingJavaScriptFromString:

Допустим, вы загружаете эту строку в webView:

<div id="msg">
    Super inner html with <b>bold</b>
</div>

Тогда вы можете получить msgвнутренний HTML, как это:

NSString* value = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('msg').innerHTML"];

И установить msgвнутренний HTML, как это:

[webView stringByEvaluatingJavaScriptFromString:
    [NSString stringWithFormat:@"document.getElementById('msg').innerHTML = '%@'", newValue]];
Другие вопросы по тегам