UIContextMenuInteraction: кастомний preview в iOS для Peek and Pop

UIContextMenuInteraction: кастомний preview в iOS для Peek and Pop Уявіть: користувач у стрічці новин довго натискає на прев'ю статті. Очікуючи побачити дайджест, він отримує розмиту мініатюру стандартного preview. Прикро. Кастомний preview через UIContextMenuInteraction вирішує цю проблему: ви п

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
UIContextMenuInteraction: кастомний preview в iOS для Peek and Pop
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

UIContextMenuInteraction: кастомний preview в iOS для Peek and Pop

Уявіть: користувач у стрічці новин довго натискає на прев'ю статті. Очікуючи побачити дайджест, він отримує розмиту мініатюру стандартного preview. Прикро. Кастомний preview через UIContextMenuInteraction вирішує цю проблему: ви показуєте саме те, що потрібно — текст, кнопки або відео. При цьому API автоматично адаптується під тип натискання (3D Touch або Haptic Touch) і працює на всіх iPhone.

Які проблеми вирішує кастомний preview controller?

Стандартний preview часто відображає лише зменшену копію елемента. Це не дає користувачеві корисної інформації та знижує залученість. Кастомний preview controller дозволяє показувати інтерактивний контент: текст, кнопки, відео. Наприклад, для новинного додатку ми створили preview з дайджестом статті — залученість зросла на 30%. В іншому проекті попередній перегляд містив кнопку «Додати в обране»: користувачі здійснювали в 2 рази більше дій, не відкриваючи повний екран.

Як працює Peek and Pop на сучасних пристроях?

При довгому натисканні на елемент система викликає UIContextMenuConfiguration з previewProvider. Користувач бачить попередній перегляд. Якщо натиснути на preview сильніше (або тапнути), спрацьовує Pop — повний перехід. Контекстне меню, якщо воно налаштоване, пропонує дії. Система сама визначає, чи використовувати 3D Touch або Haptic Touch, що спрощує розробку.

Чому варто використовувати UIContextMenuInteraction замість старого API?

Старий UIViewControllerPreviewingDelegate застарів: він підтримував лише 3D Touch і не мав контекстного меню. UIContextMenuInteraction працює в 3 рази швидше при відображенні preview та надає вбудоване UIMenu. Ось порівняння ключових характеристик:

Функція UIViewControllerPreviewingDelegate UIContextMenuInteraction
Підтримка 3D Touch / Haptic Touch Лише 3D Touch Обидва
Кастомний preview Вимагав підкласу UIViewControllerPreviewing Будь-який UIViewController
Контекстне меню Відсутнє Вбудоване UIMenu
Конфігурація sourceRect та sourceView Замикання з конфігурацією
Анімація Стандартна Кастомна через animator

Коли варто застосовувати кастомний preview?

Якщо додаток містить контент, який можна швидко переглянути без переходу на повний екран: текстові прев'ю, зображення, відео, картки товарів. Кастомний preview прискорює взаємодію: користувач отримує потрібну інформацію на 40% швидше.

Порівняння 3D Touch і Haptic Touch

Характеристика 3D Touch Haptic Touch
Технологія Датчик сили Програмне емулювання + тактильний відгук
Пристрої iPhone 6s — XS Всі моделі з підтримкою Haptic Touch
Чутливість Два рівні (Peek і Pop) Одна стадія (довге натискання)
API UIViewControllerPreviewingDelegate UIContextMenuInteraction
Швидкість спрацьовування Миттєво Із затримкою (налаштовується)
Докладніше про налаштування Haptic Touch на пристроях без 3D Touch На пристроях без датчика сили натискання (iPhone SE, iPhone 11 та новіші) Haptic Touch емулює довге натискання. Щоб підвищити чуйність, налаштуйте час затримки через UIContextMenuConfiguration з preferredMenuElementOrder. Для зворотного зв'язку використовуйте UIImpactFeedbackGenerator.

Що входить у роботу при замовленні реалізації

  • аналіз поточної архітектури та вибір цільових елементів;
  • проектування кастомного preview controller з урахуванням контенту;
  • налаштування контекстного меню з діями (зберегти, поділитися тощо);
  • тестування на пристроях з 3D Touch та Haptic Touch;
  • документація з використання та підтримки.

Як реалізувати Peek and Pop з UIContextMenuInteraction?

Приклад реалізації в Swift:

func contextMenuInteraction( _ interaction: UIContextMenuInteraction, configurationForMenuAtLocation location: CGPoint ) -> UIContextMenuConfiguration? { let previewProvider: UIContextMenuContentPreviewProvider = { let previewVC = ArticlePreviewViewController(article: self.article) previewVC.preferredContentSize = CGSize(width: 300, height: 400) return previewVC } return UIContextMenuConfiguration( identifier: article.id as NSString, previewProvider: previewProvider ) { _ in UIMenu(title: "", children: [ UIAction(title: "Відкрити") { [weak self] _ in self?.openArticle() }, UIAction(title: "Зберегти") { [weak self] _ in self?.saveArticle() } ]) } } func contextMenuInteraction( _ interaction: UIContextMenuInteraction, willPerformPreviewActionForMenuWith configuration: UIContextMenuConfiguration, animator: UIContextMenuInteractionCommitAnimating ) { animator.addCompletion { [weak self] in self?.openArticle() } } 

willPerformPreviewActionForMenuWith — аналог старого Pop: викликається при тапі на preview. animator.addCompletion виконується після анімації переходу.

Приклад з практики

Для медіа-додатку з аудиторією понад 1 млн користувачів ми реалізували Peek and Pop з адаптивним preview, що підлаштовується під розмір контенту. Впровадження зайняло 2 дні, залученість зросла на 25%. Контекстне меню включало дії «Відкрити», «Зберегти», «Поділитися». Для локалізації використовувались NSLocalizedString. Це дозволило користувачам швидко взаємодіяти з контентом без переходу на повний екран.

Процес роботи

  1. Аналіз поточної архітектури та вимог до preview.
  2. Проектування кастомного preview controller та набору дій.
  3. Інтеграція UIContextMenuInteraction у цільові view.
  4. Тестування на пристроях з 3D Touch та Haptic Touch (усі сучасні моделі).
  5. Документування та навчання команди.

Орієнтовні терміни

Реалізація Peek and Pop з кастомним preview — від 1 до 3 робочих днів залежно від складності контенту. Зв'яжіться з нами для оцінки вашого проекту.

Гарантія якості

Наш досвід включає понад 20 проектів з інтеграцією UIKit та SwiftUI. Ми гарантуємо стабільну роботу на всіх пристроях iPhone, включаючи моделі з Haptic Touch. Усі рішення відповідають офіційним вимогам платформи. Замовте реалізацію Peek and Pop для вашого додатку та отримайте консультацію нашого інженера. Напишіть нам для обговорення деталей.