#html #ios #swift #nsattributedstring
#HTML #iOS #swift #nsattributedstring
Вопрос:
Я предпринял попытку преобразовать html
код в an attributed string
, который затем используется в ярлыке. Но по какой-то причине отображается только самая первая строка: «Прежде чем продолжить:» Все остальное пустое. Я расширил label
ограничения, чтобы заполнить весь экран, чтобы убедиться, что с этим нет проблем. Этот html
фрагмент был протестирован android
и работает нормально.
let mystring = """
<body>
<p><b>Before proceeding:</b></p>
<ul type="dash">
<li>Save a backup copy of the door configuration file</li><li>Disconnect all other devices</li></ul>
<p><b>During upgrade:</b></p>
<ul type="dash">
<li>Do not turn off phone</li>
</ul>
<p><b>Are you sure you want to upgrade?</b></p>
</body>
"""
var attrString: NSAttributedString? {
guard let data = mystring.data(using: .utf8) else { return nil }
do {
return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
} catch {
return nil
}
}
mylabel.attributedText = attrString
Есть ли что-нибудь, что я пропустил?
Комментарии:
1. Вы установили количество строк = 0 на своем ярлыке?
2. боже, спасибо, это было так, ЛОЛ
Ответ №1:
Это может быть не совсем очевидно, но…
Сначала может показаться, что Number of Lines
свойство a UILabel
позволяет переносить слова, когда текст достаточно длинный.
Однако…
Number of Lines
Свойство a UILabel
также управляет количеством отображаемых строк, даже если в тексте есть встроенные символы новой строки.
Настройка mylabel.numberOfLines = 0
устранит проблему.