цикл в собственной теме - PullRequest
       2

цикл в собственной теме

0 голосов
/ 27 апреля 2011

Я хочу показать какое-то изображение с ожиданием 2 секунды, прежде чем показывать другое. Поэтому я попытался сделать это со старым добрым C99: sleep (300), но пользовательский интерфейс не обновляется.

Второе, что я попробовал, было: 1. создать метод в своей теме

[NSThread detachNewThreadSelector:@selector(gameIt) toTarget:self withObject:nil]; 
  1. Затем спите в методе с:

    [NSThread sleepForTimeInterval: 1];

Но та же проблема, интерфейс не обновляется. Что я делаю не так? Пожалуйста, помогите мне. Спасибо.

Ответы [ 2 ]

2 голосов
/ 27 апреля 2011

Каждый раз, когда вы sleep в главном потоке, вы блокируете пользовательский интерфейс.

Возможно, вам повезет с методом класса NSThread scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:. Вам придется сохранять некоторый контекст, чтобы каждый вызов вашего метода знал, что делать, но это не остановит ваш пользовательский интерфейс и даст вам 3-секундный (или любой другой) интервал, который вы ищете.

0 голосов
/ 27 апреля 2011

Запустите обработку в фоновом потоке, но когда вы редактируете пользовательский интерфейс, вам необходимо выполнить SelectOnMainThread

[view performSelectorOnMainThread:@selector(setNeedsDisplay) withObject:nil waitUntilDone:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...