2010-11-13 4 views
0

У меня проблемы с обновлением образа UIImageView из метода, который вызывается из NSTimer. Он работает в методе viewDidLoad где я сделать что-то вроде этого [imageView setImage:[self getNextImage]];проблема обновления uiimageview от метода NSTimer

позже я

NSTimer* readTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(readSource:) userInfo:nil repeats:NO];

[readTimer fire];

, который работает и метод readSource будет вызываться. Там я ставлю этот код:

UIImageView* tempImageView = (UIImageView*)[containerView viewWithTag:nextDefragSourcePosition ];

Это возвращает именно ImageView я хочу иметь - но следующая строка не меняет образ UIImageView

[tempImageView setImage:dataBeingReadImage];

Любые идеи ? Заранее спасибо. Heiko

ответ

0

Вы знаете, что обновляете графический интерфейс из другого потока, кроме того, где создается UIImageView? Вы можете выполнить селектор в основном потоке, чтобы обойти эту проблему.

Просто взгляните на метод performSelectorOnMainThread. Просто вызовите это из метода, который вызывается, когда ваш NSTimer запускает (readSource :) и снабжает его изображением, которое вы хотите отобразить. Затем просто обновите UIImageView от селектора THAT (а не readSource), и он ДОЛЖЕН работать.

Для меня действительно не так много кода для продолжения.

+0

Эй, спасибо за ваш ответ - я подозревал что-то подобное, но смутился документом. В описании класса для NSTimer он читает: «Например, вы можете создать объект NSTimer, который отправляет сообщение в окно, сообщая ему обновить себя через определенный промежуток времени». Я, однако, это именно то, что я делаю. Можете ли вы сказать мне, где мое недоразумение? – HeikoG

+0

Ну, у меня была такая же проблема, как и я. Обновление UILabel из таймера сработало для меня, но обновление UIImageView не получилось так или иначе. Возможно, мое решение является обходным решением для некоторых проблем, с которыми вы (и я) сталкивались. –

+0

Странно :). Большое спасибо. Я пойду с вашим обходом – HeikoG

Смежные вопросы