Как предотвратить случайный удар в игре для iOS - PullRequest
0 голосов
/ 06 июля 2018

Во время тестирования нашей игры SpriteKit для iOS на iPad (в настоящее время используется бета-версия iOS 12), мы обнаружили, что перетаскивание по экрану может случайно вызвать жест смахивания системы (и перейти к экрану «Главная страница» или «Многозадачность»).

Есть ли способ отключить системный удар (или, может быть, нужно дважды), чтобы предотвратить случайный удар?

Ответы [ 3 ]

0 голосов
/ 06 июля 2018

Вы можете отложить жесты с помощью

//Tell the system you prefer deferring
override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {

    return [.bottom] //Whatever side you want to defer, see UIRectEdge() https://developer.apple.com/documentation/uikit/uirectedge
}

Затем позвоните setNeedsUpdateOfScreenEdgesDeferringSystemGestures(), когда хотите, чтобы preferredScreenEdgesDeferringSystemGestures выстрелил.

Теперь вы можете сначала принять жест и решить, хотите ли вы передать его.

Ссылки:
https://developer.apple.com/documentation/uikit/uiviewcontroller/2887507-setneedsupdateofscreenedgesdefer
https://developer.apple.com/documentation/uikit/uiviewcontroller/2887512-preferredscreenedgesdeferringsys
https://developer.apple.com/documentation/uikit/uirectedge

Учебник
https://useyourloaf.com/blog/avoiding-conflicts-with-system-gestures-at-screen-edges/

0 голосов
/ 09 июля 2019

iOS 11

Изменено свойство экземпляра ...

override var preferredScreenEdgesDeferringSystemGestures: UIRectEdge {
    return .bottom
}

или, верните .all, чтобы отложить все ребра.

0 голосов
/ 06 июля 2018

Нет, в iOS нет возможности отключить системный жест смахивания вверх, на устройствах iPhone X это не позволит им покинуть приложения.

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