iOS - обнаружение, когда на экране более одного пальца - PullRequest
8 голосов
/ 30 сентября 2010

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

Ответы [ 5 ]

13 голосов
/ 30 сентября 2010

В методах touchesBegan, touchesMoved и touchesEnded одним параметром является событие, являющееся объектом UIEvent.Количество пальцев на экране равно [[event allTouches] count].

[EDITED, потому что Джош Хинман указал, что раньше я ошибался - моё предыдущее предложение использовать [количество касаний] для параметра касанийв тех же методах работать не будет.]

3 голосов
/ 30 сентября 2010

Читайте о методе -touchesBegan:withEvent:.Это точка входа в обработку событий мультитач.

Вот ссылка разработчика на lib для событий мультитач: https://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MultitouchEvents/MultitouchEvents.html

0 голосов
/ 11 ноября 2016
  • (void) touchesBegan: (NSSet *) касается событияEE:: (UIEvent *) {

    NSLog (@ "% lu", [[event allTouches] count]); }

0 голосов
/ 30 сентября 2010

Вы можете попробовать использовать класс UITapGestureRecognizer и установить для свойства numberOfTouchesRequired значение 2.

Обратите внимание, что это будет работать только в том случае, если для multipleTouchEnabled в представлении установлено значение YES.

0 голосов
/ 30 сентября 2010

One / Multi Touch прозрачно для вас - вы просто получаете уведомления о том, где начало / перемещение / окончание / касание касания. Если два касания происходят одновременно, вы получите уведомления для обоих.

Я не знаю ни одной встроенной функции, которая определяет, являются ли последовательности касаний, которые вы видите, состоят из щепотки - но вы можете взглянуть на образец кода «штрихи» от Apple для вдохновения.

https://developer.apple.com/library/ios/#samplecode/Touches/

...