Добавление изображения в UIAlertAction из веб-адреса - PullRequest
0 голосов
/ 14 февраля 2019

enter image description here

Можно ли каким-либо образом показать изображение с веб-адреса в уже отображенном действии UIAlertController.Реальный сценарий состоит в том, что я представил UIAlertController, и бок о бок я извлекаю изображения из URL.Но теперь я хотел обновить UIAlertAction после загрузки изображений, но они не обновляются.

Позже Если я открою UIAlertController, эти изображения отобразятся в UIAlertAction.

let alertController = UIAlertController(title: "My App", message: "Select option:", preferredStyle: .actionSheet)

        for url in arrUrl {
            let action = UIAlertAction(title: "url", style: .default) { (action) in

            }

            downloadImage(url) { (image) in
                if image != nil {
                    action.setValue(image, forKey: "image")
                }
            }
            alertController.addAction(action)
        }

func downloadImage(_ strUrl: String, completionHandler: @escaping(_ image: UIImage?) -> ()) {

        SDWebImageManager.shared().loadImage(
            with: URL(string: strUrl),
            options: .highPriority,
            progress: nil) { (image, data, error, cacheType, isFinished, imageUrl) in
                completionHandler(image)

        }
    }

1 Ответ

0 голосов
/ 14 февраля 2019

Да, это можно сделать.Вы можете расширить шаблон, используемый в сообщении в блоге, на которое вы ссылались (https://medium.com/@maximbilan/ios-uialertcontroller-customization-5cfd88140db8).

Вместо UISwitch, вы можете использовать UIImageView. Вы можете сохранить UIViewController, в котором хранится UIImageView IBOutlet в вашем текущем контроллере представления.

После извлечения изображения вы можете обновить image свойство UIImageView.

Отказ от ответственности:

Я почти уверен, что этот alertAction.setValue(..., forKey: "contentViewController") бизнес не поддерживается, поскольку свойство contentViewController, похоже, не задокументировано. Поэтому, хотя это может сработать сегодня, оно может сломаться в любое время.получить отклонено при отправке в AppStore.

Используйте на свой страх и риск

...