Можно ли добавить 3D-touch без взгляда? - PullRequest
0 голосов
/ 29 мая 2018

У меня есть коллекция представлений (кнопок), которые можно переключать.Они работают как фильтры.Допустим, это приложение для общественного транспорта, и вам задают вопрос «С каким видом транспорта вы хотели бы путешествовать?», И вы получаете три варианта: «Автобус», «Паром» и «Поезд».Вы можете щелкнуть по каждому из них, чтобы отключить или включить их.

Я хотел бы реализовать возможность 3D-касания одного из них, который переключит эту конкретную кнопку на on, а все остальные кнопки -off.

Я использовал 3D-touch в нескольких местах приложения, но всегда с просмотром / просмотром.Я борюсь с добавлением 3D-touch без необходимости возвращать UIViewController в previewingContext -функции.Можно ли просто выполнить действие при касании 3D?

Я мог бы выполнить мое действие в previewingContext(::) -> UIViewController?, но я не хочу возвращать UIViewController для просмотра.Если я верну nil, то я не получу обратную связь (?). И эта функция вызывается, как только пользователь «может» принудительно нажать, немного перед тем, как нажать.

1 Ответ

0 голосов
/ 29 мая 2018

Таким образом, оказывается, что 3D-touch (или принудительное касание, или как его еще называют) не доступны только в реализации UIViewControllerPreviewingDelegate.Работа этого делегата состоит в том, чтобы решить, что представлять с помощью peek / pop, тогда как к основной функции peek и pop можно получить доступ через обычный UIGestureRecognizer.Я следовал этому руководству по созданию собственного ForceGestureRecognizer, но решил создать подкласс UILongPressGestureRecognizer вместо UIGestureRecognizer (объединить его с существующими функциями).Это руководство вместе с this (для создания небольшой обратной связи по сотрясению с использованием UINotificationFeedbackGenerator) и вместе с некоторыми CGAffineTransform изменениями, основанными на силе касания, действительно сделали его идеальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...