затрагивает поведение в iPhone и симуляторе - PullRequest
0 голосов
/ 21 декабря 2009

Функция touchesMoved ведет себя по-разному в iPhone и симуляторе.

Повторяющийся интервал (частота обновления) функции touchesMoved намного быстрее, чем в симуляторе. Есть ли способ справиться с разницей?

1 Ответ

3 голосов
/ 21 декабря 2009

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

Относительно простой способ справиться с этим: во-первых, в обработчике touchesMoved сохраните позицию касания в переменной, которая представляет позицию того, что отслеживает палец.

Немедленно вернитесь из обработчика touchesMoved. Создайте объект NSTimer и установите свой контроллер представления в качестве его делегата и сделайте так, чтобы все, что было в поведении перерисовки / просмотра, использовалось в вашем обработчике touchesMoved. Таким образом, вы получаете почти постоянное движение независимо от времени между событиями touchesMoved.

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

...