Apple не одобряет iPhone 3D Touch в Swift? - PullRequest
0 голосов
/ 20 января 2020

Я сделал игру 2 года go, используя функцию 3D Touch в Swift, потому что она была довольно новой, но я никогда не выпускал игру, потому что получил новый контракт. Теперь у меня есть время, чтобы выпустить его, но код больше не работает. (Пользовательские действия 3D-касания, а не действие «Просмотр и всплывающее окно»)

Когда я распечатываю результат касания, значение силы всегда будет возвращаться равным 0,0 следующим образом:

[<UITouch: 0x102613850> phase: Began tap count: 2 force: 0.000 window: <UIWindow: 0x10222bf70; frame = (0 0; 414 896); gestureRecognizers = <NSArray: 0x28011cde0>; layer = <UIWindowLayer: 0x280f41840>> view: <UIView: 0x102083080; frame = (0 82; 414 780); autoresize = RM+BM; gestureRecognizers = <NSArray: 0x2801a0c30>; layer = <CALayer: 0x280f2a540>> location in window: {299.33332824707031, 661.66665649414062} previous location in window: {299.33332824707031, 661.66665649414062} location in view: {299.33332824707031, 579.66665649414062} previous location in view: {299.33332824707031, 579.66665649414062}]

Я знаю, что Apple удаляет эту функцию с устройств из-за стоимости, но, насколько я помню, iPhone 11 pro все еще имеет ее. Кто-нибудь знает, если это значение устарело?

1 Ответ

4 голосов
/ 20 января 2020

Каждое касание начинается как контакт без усилия вообще, как только палец пользователя соприкасается (или даже почти соприкасается) с экраном. Сила только начинает накапливаться, когда палец пользователя прижимается к экрану. Усилие UITouch для touchsBegan равно нулю


Force Touch

Технология впервые была представлена ​​9 сентября, 2014, во время введения Apple Watch. Начиная с Apple Watch, Force Touch была включена во многие продукты в линейке Apple. В частности, это MacBook и трекпад Magi c 2. Технология известна как 3D Touch на моделях iPhone. source

Эти устройства поддерживают Hapti c Touch:

  • iPhone 11
  • iPhone 11 Pro
  • iPhone 11 Pro Max
  • iPhone XR

Эти устройства поддерживают 3D Touch:

  • iPhone 6s
  • iPhone 6s Plus
  • iPhone 7
  • iPhone 7 Plus
  • iPhone 8
  • iPhone 8 Плюс
  • iPhone X
  • iPhone XS
  • iPhone XS Макс.

Источник данных (январь 2020 г.) Изменить 3D или Hapti c Чувствительность к сенсору на вашем iPhone

Решение

Проверить наличие 3D Touch на устройстве

if traitCollection.forceTouchCapability == .available {

}

Среда черты iOS предоставляется через свойство traitCollection протокола UITraitEnvironment. Этот протокол принят следующими классами: UIScreen, UIWindow, UIViewController, UIPresentationController и UIView. источник

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