Можно ли заставить 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]];