Пожалуйста, не делайте этот дубликат, потому что я искал ответ и не нашел его.
У меня есть строка из API, содержащая HTML.
/>В этом HTML-коде есть текст со шрифтом и его стилем, гипертекст или несколько изображений и изображения.
Я показал их все в UITextView, но проблема в том, что я этого не сделал. Не знаю, как получить текст с тем же стилем и шрифтом в HTML.
Например, если текст italien или strong, я не могу найти способ показать это.
Я хочу сохранить тот же стиль, что и в HTML-коде, отправленном в JSON в виде строки.
Вот мой код:
struct HTMLFormattedText: UIViewRepresentable {
let text: String
private let textView = UITextView()
init(_ content: String) {
self.text = content
}
func makeUIView(context: UIViewRepresentableContext) -> UITextView {
textView.dataDetectorTypes = UIDataDetectorTypes.all
textView.textColor = .white
textView.backgroundColor = .clear
textView.isSelectable = true
textView.isEditable = false
textView.isUserInteractionEnabled = true
textView.translatesAutoresizingMaskIntoConstraints = false
textView.linkTextAttributes = [.foregroundColor: UIColor.white]
textView.isScrollEnabled = false
self.updateUIView(textView, context: context)
return textView
}
func updateUIView(_ uiView: UITextView, context: UIViewRepresentableContext) {
if let attributeText = self.converHTML(text: text) {
textView.attributedText = attributeText
textView.font = UIFont(name: MainFont.semibold.font, size: 14)
textView.textColor = .white
} else {
textView.text = K.emptyString
}
}
private func converHTML(text: String) -> NSAttributedString?{
guard let data = text.data(using: String.Encoding.utf16, allowLossyConversion: false) else {
return nil
}
if let attributedString = try? NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html], documentAttributes: nil) {
textView.textColor = .white
return attributedString
} else{
return nil
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... uitextview
SwiftUI: шрифт Html в UITextView ⇐ IOS
Программируем под IOS
1719915214
Anonymous
Пожалуйста, не делайте этот дубликат, потому что я искал ответ и не нашел его.
У меня есть строка из API, содержащая HTML.
/>В этом HTML-коде есть текст со шрифтом и его стилем, гипертекст или несколько изображений и изображения.
Я показал их все в UITextView, но проблема в том, что я этого не сделал. Не знаю, как получить текст с тем же стилем и шрифтом в HTML.
Например, если текст italien или strong, я не могу найти способ показать это.
Я хочу сохранить тот же стиль, что и в HTML-коде, отправленном в JSON в виде строки.
Вот мой код:
struct HTMLFormattedText: UIViewRepresentable {
let text: String
private let textView = UITextView()
init(_ content: String) {
self.text = content
}
func makeUIView(context: UIViewRepresentableContext) -> UITextView {
textView.dataDetectorTypes = UIDataDetectorTypes.all
textView.textColor = .white
textView.backgroundColor = .clear
textView.isSelectable = true
textView.isEditable = false
textView.isUserInteractionEnabled = true
textView.translatesAutoresizingMaskIntoConstraints = false
textView.linkTextAttributes = [.foregroundColor: UIColor.white]
textView.isScrollEnabled = false
self.updateUIView(textView, context: context)
return textView
}
func updateUIView(_ uiView: UITextView, context: UIViewRepresentableContext) {
if let attributeText = self.converHTML(text: text) {
textView.attributedText = attributeText
textView.font = UIFont(name: MainFont.semibold.font, size: 14)
textView.textColor = .white
} else {
textView.text = K.emptyString
}
}
private func converHTML(text: String) -> NSAttributedString?{
guard let data = text.data(using: String.Encoding.utf16, allowLossyConversion: false) else {
return nil
}
if let attributedString = try? NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html], documentAttributes: nil) {
textView.textColor = .white
return attributedString
} else{
return nil
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78693554/swiftui-font-of-html-in-a-uitextview[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия