TGViewer
iOS Dev iOS Dev @iosdev · 7.92K subscribers
Post #1198 4.08K
Эффективный способ загрузки больших изображений в основном потоке

В подавляющем большинстве случаев нам подойдёт вариант:

let image = UIImage(named: "big-image")
imageView.image = image


Но вот если картинка действительно крупная, то это может визуально подвесить приложуху на какое-то время.

Особеннно это проявится, например, при работе с коллекциями.

В таком случае можно справедливо обратиться к документации (и к совету Винсента), в которых говорится о том, что всё-таки есть ещё один способ.

🐱 prepareForDisplay декодирует нашу картинку в фоновом потоке, и уже после этого можно использовать результат из completionHandler.

Важно не забыть вернуться в основной поток, конечно же.

Или использовать Task, если вы уже перевели (или переводите проект для Swift Concurrency).

🍏 Кстати, большое количество материалов в базе знаний поможет быстрее разобраться со Swift Concurrency.

😃 iOS Dev
  • 👍 8
  • 🔥 4
  • 💯 3
  • ❤‍🔥 2
  • 👏 2
  • ⚡ 1
  • 🏆 1
  • 🎅 1
More from @iosdev
  1. Oct 6, 2026⚡️ Apple обязали всех делать поддержку iPhone Duo с апреля 2027 года Сегодня выкатили обно…
  2. Oct 5, 2026iPhone Duo UIKit Q&A: большая подборка ответов от инженеров Apple 📖 В своём блоге Антон с…
  3. Oct 1, 2026SwiftUI Charts и динамическое маскирование Одним из применений для диаграмм является разны…
  4. Sep 29, 2026⚡️Сегодня ночью десятки тысяч приложений массово начали крашиться из-за либы для аналитики…
  5. Sep 28, 2026От pbxproj к xcproj: разбор конфигураций проекта 📖 В этой статье можно посмотреть на новы…
  6. Sep 25, 2026Симулятор iPhone Duo: тестирование и оптимизация приложения Как только был анонсирован iPh…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →