Дифференциация Между Объектами UITouch На iPhone

Вы можете попробовать основанный на NetBeans OcamlIDE .

8
задан Corey Floyd 13 June 2009 в 03:33
поделиться

6 ответов

У меня есть пример кода сенсорного экрана:

http://github.com/kailoa/6tringle-touchsamplecode/tree/master http://6tringle.com /blog/2009/TouchSampleCode.html

Это было полезно для некоторых людей, и я думаю, что может вам помочь.

Взгляните на NSMutableArray * ActiveTouches . Это коллекция, которую я использую, чтобы отслеживать порядок, в котором происходят касания.

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

3
ответ дан 5 December 2019 в 05:08
поделиться

Взгляните на эти ответы, которые я дал, которые могут помочь:

касания в UIResponder API

iPhone: отслеживание / идентификация отдельных касаний

1
ответ дан 5 December 2019 в 05:08
поделиться

Каждый палец получает один объект UITouch, а тот же объект выдается вам снова и снова. Просто запомните указатели на набор начальных объектов UITouch и выполните сравнение указателей, чтобы отслеживать пальцы.

Из справочной документации Apple:

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

24
ответ дан 5 December 2019 в 05:08
поделиться

Часто обсуждаемое решение - наблюдать за событиями и сравнивать текущие значения x и y и предыдущие значения x и y, чтобы сопоставить их. Хотя, похоже, есть некоторые уловки. События могут происходить не по порядку, и я видел случаи, когда казалось, что оборудование или ОС путались с большим количеством (10) движущихся пальцев.

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

2
ответ дан 5 December 2019 в 05:08
поделиться

Я взглянул на код Кайлоа Кадано. Вы в основном храните NSMutableArray текущих объектов UITouch. Однако в документации UITouch указано следующее:

Объект UITouch является постоянным. на протяжении всего мультитач-последовательности. Вы никогда не должен сохранять объект UITouch при обработке события. Если вам нужно хранить информацию о прикосновении от от одной фазы к другой, вы должны скопировать that information from the UITouch object.

I don't quite see the reason for not retaining it if you release it again when the event finished but that's what the SDK doc says.

2
ответ дан 5 December 2019 в 05:08
поделиться

Я искал ту же информацию. И да, похоже, вы не собираетесь сохранять данные UITouch. Согласно разделу «Обработка сложной последовательности мультисенсорного ввода» этой Документации разработчика Apple , «правильный» способ отслеживать множественные касания - это значение указателя события UITouch.

2
ответ дан 5 December 2019 в 05:08
поделиться