Iniciar sesión Registro
Anuncios
Tu espacio publicitario
Reserva este slot exclusivo para el periodo elegido.
Comprar publicidad →
Logotipo de la comunidad de telegram - Затишна Галера
Añadido 06 ene. 2025

Затишна Галера

@Zatishna_Galera
Número de suscriptores: 2 709
Fotos: 1,340
Videos: 429
Enlaces: 1,810
Descripción:
Голова Одеського центру розробки DataArt та Delivery Director, капітан Затишної Галери, ділитимуся: завданнями із співбесід (QA/Delivery/Management), статтями, вакансіями, новинами зі світу IT. Контакт: [email protected] ; Patreon: patreon.com/CozyGalley
Fuente

Затишна Галера | iOSКомпас 🧭1️⃣4️⃣7️⃣ Завдання 147Для чого потрібен prepareThumbnail?До...

Logotipo de la comunidad de telegram - Затишна Галера Затишна Галера @Zatishna_Galera
595 Vistas/Alcance 2026-03-25 08:02 Mensaje №2530
#iOSКомпас 🧭1️⃣4️⃣7️⃣ Завдання 147Для чого потрібен prepareThumbnail?Доброго здровля мої любі друзі. З вами ваш незмінний ios розробник Сергій з @badlinkschannel.UIImage.prepareThumbnail(of:completionHandler:) - це той самий маленький UIKit-хелпер, про який легко забути, а потім знову винаходити велосипед через CGImageSource, ресайз і зайві танці з декодуванням. Метод асинхронно готує thumbnail заданого розміру у фоновому потоці й повертає UIImage? у completion handler. І важливий нюанс - сам completion теж викликається не на головному потоці. Тобто будь-яке оновлення UI після цього треба явно перекидати на main thread. 🔣 Практичний сенс простий: коли у вас список карток, галерея, прев’ю файлів або стрічка з картинками, немає жодного сенсу тягнути повнорозмірне зображення в інтерфейс, якщо на екрані все одно потрібна мініатюра. Apple прямо підводить до того, що підготовка thumbnail знижує накладні витрати порівняно з роботою з повним розміром зображення. Для цього в UIImage є і синхронний варіант preparingThumbnail(of:), і асинхронний prepareThumbnail(of:completionHandler:). Другий - куди здоровіший вибір для скролів, списків і будь-якого місця, де не хочеться блокувати потік рендерингу. По суті, це API про одну дуже приземлену річ: не мучити інтерфейс великими картинками там, де вистачить маленької. Менше зайвої роботи, менше шансів спіймати фризи, більш передбачуваний скрол. А ще це хороший приклад старої доброї UIKit-логіки: важку роботу - у фон, UI - окремо й акуратно. 🤓 Можна навіть дати мікроприклад:image.prepareThumbnail(of: CGSize(width: 120, height: 120)) { thumbnail in DispatchQueue.main.async { imageView.image = thumbnail }} #️⃣ Якщо вам для інтерфейсу потрібна саме мініатюра - готуйте мініатюру, а не тягніть у UI повну JPEG-цеглину й не сподівайтеся, що система все якось сама розрулить.@Zatishna_Galera