Настройте пользовательский Haptic с последней версией Swift для iPhone7 и выше - PullRequest
0 голосов
/ 22 ноября 2018

После прочтения об этом у меня в голове немного беспорядка.

Эта функция вызывается, когда пользователь проводит пальцем по элементу пользовательского интерфейса:

func wasDragged() { signal here }

Я хотел быгенерировать малые сигналы Haptic каждый раз, когда он вызывается (например, колесо выбора даты)

  1. Как мне настроить в первый раз и сделать сигналы Haptic Engine по вызову?
  2. Должен ли янужно проверить тип устройства?Я хочу это только на iPhone 7 и выше.

Использование последней версии Swift.

1 Ответ

0 голосов
/ 22 ноября 2018

Документация о Haptic обратной связи действительно носит описательный характер.Но если вам нужно какое-то быстрое решение, вот оно.

var hapticGenerator: UISelectionFeedbackGenerator?

func wasDragged() {

    hapticGenerator = UISelectionFeedbackGenerator()
    haptiGenerator.selectionChanged()
    hapticGeneraor = nil

}

В качестве альтернативы, в зависимости от логики экрана, вы можете инициализировать генератор вне функции wasDragged, а внутри нее просто вызвать hapticGenerator.prepare() и selectionChanged().В этом случае вам не следует присваивать ему nil после завершения перетаскивания, потому что оно больше не сработает.Согласно документации, вы должны освободить генератор, когда он больше не нужен, так как Taptic Engine будет ожидать и, следовательно, потреблять системные ресурсы для другого вызова.

Обратите внимание, что вызов этих методов напрямую не влияет на тактику.Вместо этого он информирует систему о событии.Затем система определяет, следует ли воспроизводить тактильные сигналы, на основе устройства, состояния приложения, оставшегося заряда батареи и других факторов.

Например, в настоящий момент воспроизводится только тактильная обратная связь:

  • На устройстве с поддерживаемым Taptic Engine
  • Когда приложение работает на переднем плане
  • Когда включена настройка System Haptics

Документация:

https://developer.apple.com/documentation/uikit/uifeedbackgenerator

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