Как обнаружить только одно касание, когда к экрану iPad прикладывается рука? - PullRequest
2 голосов
/ 23 ноября 2011

Я занимаюсь разработкой приложения для iPad для детей с двигательными нарушениями. Проблема в том, что многие из них пытаются взаимодействовать с приложением, используя всю руку или кулак. Кроме того, у них дрожат руки, и они слишком долго поднимают всю руку с экрана. Это приводит к тому, что приложение регистрирует несколько событий касания, когда они взаимодействуют с экраном.

Как мое приложение может инициировать только одно событие каждый раз, когда ребенок нажимает на представление?

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Это сложный вопрос. Но ваш вопрос "Что вы предлагаете, чтобы происходило событие только каждый раз, когда ребенок нажимает на вид?" Вы можете отключить несколько касаний.

Вы отключаете мультитач с помощью свойства multipTouchEnabled. Например, это отключило бы мультитач вида view контроллера.

-(void)viewDidLoad{
    [super viewDidLoad];
    self.view.multipleTouchEnabled = NO;
}

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

Если вы являетесь зарегистрированным разработчиком Apple, у них также есть несколько сессий WWDC по доступности.

Надеюсь, это поможет, всегда приятно видеть внимание для людей с ограниченными возможностями.

1 голос
/ 26 ноября 2011

Вместо того чтобы отслеживать каждое событие касания по отдельности, вы можете отслеживать все текущие касания и усреднять их координаты X и Y, чтобы получить одно значение, которое представляло бы центр тяжести этих касаний. Это одно значение можно использовать в качестве входных данных, чтобы определить, где касались представления, и обработать это взаимодействие по желанию.

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

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

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