Затрагивает поведение в iPhone и симуляторе
Функция touchesMoved
ведет себя по-разному в iPhone и симуляторе.
Интервал повторения (частота обновления) функции touchesMoved
намного быстрее, чем симулятор. Есть ли способ справиться с разницей?
1 ответ
Часто люди считают, что это является проблемой, потому что они делают что-то интенсивное в обработчике touchesMoved, а когда события приходят очень часто, интерфейс кажется запаздывающим.
Относительно простой способ справиться с этим: во-первых, в обработчике touchesMoved сохраните позицию касания в переменной, которая представляет позицию того, что отслеживает палец.
Вернитесь из обработчика touchesMoved немедленно. Создайте объект NSTimer и установите свой контроллер представления в качестве его делегата и сделайте так, чтобы любое поведение при перерисовке / просмотре движений использовалось в вашем обработчике touchesMoved. Таким образом, вы получаете почти постоянное движение независимо от времени между событиями touchesMoved.
Если вы действительно продвинуты, вы можете использовать собственный NSRunLoop вместо таймера, но это больше, чем я могу объяснить здесь:) Общая идея: не делайте все в обработчиках сенсорных событий.