Как вставить ссылку на локальное изображение в html и отобразить его в ярлыке swift?

#swift #uilabel

#swift #uilabel

Вопрос:

В моей папке assets у меня есть en папка, и здесь у меня есть несколько картинок, например, одна из них — B12.png . Я не могу понять, как отобразить это локальное изображение в моем ярлыке. У меня есть такой код:

 let imageData:Data =  (UIImage.init(named: "en/B12.png")!).pngData()!
let base64String = imageData.base64EncodedString()

                            
let htmlString = """
<html><body><img src="data:image/png;base64, (base64String)" /> width="360" height="240"></body></html>
"""
                            
                            
cell.questionText.attributedText = htmlString.convertToAttributedFromHTML()
  

но когда я запускаю этот код, я ничего не вижу в своей метке. Почему это происходит и как я могу решить эту проблему?

Комментарии:

1. Просто вставьте URL изображения. Создайте URL с путем, полученным из Bundle.main.path(forResource: ofType:)

2. @mag_zbc, не могли бы вы добавить некоторые подробности, пожалуйста, потому что у меня возникли некоторые трудности с вашим комментарием 🙂

Ответ №1:

Если ваше изображение хранится в пакете вашего приложения, вы можете просто вставить URL изображения

 if let imagePath = Bundle.main.path(forResource: "B12", ofType: "png") {
    let htmlString = """
    <html><body><img src="(imagePath)" /> width="360" height="240"></body></html>
    """

    cell.questionText.attributedText = htmlString.convertToAttributedFromHTML()
}
  

Комментарии:

1. У меня такая ошибка — Non-void function should return a value , и я не вижу, как использовать вложенную папку для изображения:(

2. Обновил мой ответ. Что касается вложенных папок, это не имеет значения. Bundle.main.path(forResource: "B12", ofType: "png") найдет ваше изображение независимо от местоположения, если оно находится в любом месте пакета приложения.

3. У меня есть картинки с похожими названиями, но с другим содержимым, будет ли это работать для такой схемы?

4. а также еще одна проблема заключается в том, что моя метка ячейки становится невидимой, когда я добавляю к ней этот HTML

5. Как я вижу, ваше условие if обычно ложно, и оно не работает