Я не могу заставить UIScrollView и UIAccelerometer играть хорошо, даже с многопоточностью - PullRequest
0 голосов
/ 02 марта 2010

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

1 Ответ

1 голос
/ 15 июня 2010

Похоже, что остальная часть логики вашего основного приложения работает в другом режиме цикла выполнения (вероятно, NSRunLoopCommonModes), чем обработка касания UIScrollView. Если вы используете какие-либо таймеры для управления своей логикой, они будут блокироваться до завершения отслеживания пользовательского интерфейса.

Это исправило проблему, из-за которой у меня не обновлялась игровая логика, пока пользователь манипулировал видом прокрутки. Мое исправление было так же просто, как добавить следующую строку при настройке таймера:

[[NSRunLoop currentRunLoop] addTimer:myTimer forMode:UITrackingRunLoopMode];

Для получения дополнительной информации см. Эту ветку: NSTimer не запускается, когда runloop заблокирован .

...