Я начал использовать образец MoveMe для работы сенсорного ввода.
По сути, я определяю эти две функции обратного вызова, чтобы получить сенсорный ввод:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
for ( UITouch* touch in touches )
{
printf("touch down");
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
for ( UITouch* touch in touches )
{
printf("touch up");
}
}
Это прекрасно работает, пока у вас не будет более 5 касаний на экране одновременно. тогда он перестает работать должным образом, вы не получите сообщение «Прикосновение вниз», если на экране более 5 касаний. что еще хуже, вы не сможете получать все сообщения «подправить», пока не уберете ВСЕ пальцы с экрана.
Если вы дотронетесь до 6 пальцев, затем отпустите 3, затем снова дотронетесь до тех пор, пока остальные 3 еще не нажаты, вы получите «касание вниз», но если вы отпустите его, иногда вы получаете «подкрашивание», иногда вы надеваете «т.
Это в значительной степени делает невозможным отслеживание касаний и, как правило, приводит к тому, что касание постоянно «застревает», когда оно передается моему сенсорному менеджеру.
Есть ли какой-нибудь лучший API-интерфейс для сенсорного ввода? По крайней мере, есть ли функция, которую вы можете вызвать, чтобы надежно определить, касался ли экран в данный момент или нет? таким образом я мог сбросить настройки своего менеджера, когда все пальцы отпущены.
EDIT:
верно, должно быть, я что-то упускаю. потому что в настоящее время калькулятор делает то, что я не могу сделать с этими обратными вызовами.
он принимает только одно касание за раз, если на экране более одного касания, он «отменяет» все касания, но он должен отслеживать их, чтобы знать, что на экране «более одного» касания .
если я касаюсь экрана, кнопка опускается, теперь, если я добавляю еще одно касание к экрану, кнопка отпускается, круто, недопустимо более одного касания. Теперь, если я добавлю еще 4 пальца к экрану, всего 6, экран должен сломаться, и когда я отпущу эти 6 пальцев, приложение не получит никаких обратных вызовов «вверх». Тем не менее, когда я отпускаю их все и снова касаюсь, кнопка нажимается, поэтому он знает, что я отпустил все эти пальцы! как ??