3dtouch, чтобы представить (заглянуть без всплывающих окон) UIView как приложение для контактов

Я пытаюсь реализовать функцию 3D Touch, которая представляет сводку информации (например, Peek). Но я не хочу, чтобы он лопнул. Я просто хочу предварительно просмотреть информацию, как это делает приложение контактов с контактами:

введите описание изображения здесь

Он представляет только UIView и не имеет дело с двумя уровнями силы (взгляд и всплывающее окно).

Как я могу сделать что-то подобное?

Ps.: Я не хочу иметь дело с жестом длительного нажатия.


person Klevison    schedule 23.03.2016    source источник
comment
Вы когда-нибудь находили решение для этого?   -  person ToddH    schedule 14.07.2017
comment
Нет. Вы не можете этого сделать. Это родное поведение для контактов.   -  person Klevison    schedule 14.07.2017


Ответы (1)


Введение

Привет

Я знаю, что это, возможно, слишком поздно, но на случай, если кто-то еще наткнется на это: я, конечно, верю, что это возможно, и я не думаю, что это родное поведение для контактов. Хотя это было бы не так просто, как UIKit api для просмотра всплывающих окон. Вам нужно будет:

Шаги

  1. подкласс UIGestureRecognizer (возможно, он может работать и с UITapGestureRecognizer), а также зарегистрировать UITouches и использовать их свойство force.

  2. Настройте UIViewController с прозрачным, но размытым фоном по краям (вместе с modalPresentationStyle .overCurrentContext, если я правильно помню), с желаемым содержимым посередине (очень похоже на просмотр). Затем добавьте UIPanGestureRecognizer к центральному виду для закрытия/сдвигания кнопок вверх.

  3. А затем создайте пользовательский переход анимации для этого UIViewController, который будет запускаться, как только свойство force зарегистрированного UITouches из подкласса UIGestureRecognizer станет достаточно высоким. А затем отменяется, как только свойство force становится достаточно низким.

Заключительные примечания

Я считаю, что это немного утомительная задача, и может быть более простой способ. Например, более простой способ — использовать стороннюю библиотеку для длительных жестов давления (которая регистрирует размер прикосновения), но это не даст такого же ощущения.

person theoadahl    schedule 14.12.2018