Как выполнить обработку во время анимации - PullRequest
0 голосов
/ 06 января 2012

У меня есть приложение, в котором я хочу использовать анимацию изображения, когда я читаю некоторую информацию из базы данных и строительного объекта.Я использовал UIImageView и настроил и массив изображений, но если я запускаю анимацию, а затем выполняю обработку БД, анимация не воспроизводится.

Есть ли другой способ запустить анимацию или для меняделать обработку во время анимации?

Спасибо

Ответы [ 3 ]

3 голосов
/ 06 января 2012

Звучит так, как будто вы выполняете обработку в главном потоке, который препятствует запуску вашей анимации.

Анимации запускаются в главном потоке, поэтому во избежание блокировки этого потока обработку следует запланировать в другом потоке.

Вы можете добиться этого, используя блоки, например:

dispatch_queue_t queue;
queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

dispatch_async(queue, ^{

    // Your processing to be performed on this thread.
});

Или в более ранних версиях iOS, например:

[self performSelectorInBackground:@selector(yourProcessing) withObject:nil];

- (void)yourProcessing {

    // Your processing to be performed on this thread.
}

Я настоятельно рекомендую прочитать Руководство по программированию потоков с последующим просмотром сеансов WWDC, охватывающих блоки и Grand Central Dispatch (WWDC 2009).

2 голосов
/ 06 января 2012

Звучит так, будто вы пытаетесь выполнить обработку вашей базы данных в главном потоке, который, да, блокирует ваш пользовательский интерфейс, поэтому он не может анимироваться (и поэтому пользователь не может взаимодействовать ни с чем).Взгляните на Руководство по программированию параллелизма .

2 голосов
/ 06 января 2012

Вы можете запустить обработку БД в фоновом потоке после начала анимации.Это позволит двум происходить одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...