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 для вашего приложения и получите консультацию нашего инженера. Напишите нам для обсуждения деталей.