Привет всем младшим разработчикам! Я получаю данные с сервера в фоновом потоке и обновляю пользовательский интерфейс в основном потоке, это работает, но у меня также есть отдельный загрузчик изображений пользовательского интерфейса из URL-адреса здесь:
Код: Выделить всё
extension UIImageView {
func load(url: String) {
guard let urlString = URL(string: url) else {return}
DispatchQueue.global(qos: .background).async { [weak self] in
if let data = try? Data(contentsOf: urlString) {
if let image = UIImage(data: data) {
DispatchQueue.main.async {
self?.image = image
}
}
}
}
}
}
Но когда на открытом экране работает первый загрузчик изображений, указанный выше, и приложение зависает на несколько секунд, а затем обновляется основной пользовательский интерфейс (uiviews), оба пользовательских интерфейса обновляются в основном потоке. Как я могу сделать так, чтобы загрузка изображения в основной поток не блокировала обновление uiview? Я хочу, чтобы это было так: пользовательский интерфейс обновляется и работает, затем, когда изображение загружается, оно не должно блокировать основные обновления пользовательского интерфейса.
Дополнительная информация: использование объединения для получения данных и uikit для дизайна.
Заранее спасибо !
Подробнее здесь:
https://stackoverflow.com/questions/785 ... -ios-swift