UIProgressView прогресс не обновляется - PullRequest
3 голосов
/ 29 сентября 2010

У меня UIProgressView добавлен в self.view как подпредставление.У меня есть UITableView с загруженными строками.Мне нужно изображение в каждой строке, но я не хочу, чтобы приложение ожидало их всех, поэтому я решил запустить NSThread с процессом загрузки изображений.Когда я пытаюсь обновить прогресс UIProgressView изнутри моего потока - он не обновляется.Возможно, мне нужно реализовать некоторые делегаты?

Инициализация

    progressView = [[[UIProgressView alloc] initWithFrame:CGRectZero] autorelease];
    [progressView setFrame:CGRectOffset(CGRectMake(0, 0, 320, 8), 0, 1)];
    [self.view addSubview:progressView];

Затем я запускаю свой поток

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    [progressView setProgress:0.0];
    NSThread *myThread = [[NSThread alloc] initWithTarget:self
                                                 selector:@selector(imageLazyLoading)
                                                   object:nil];

    [myThread start];
    [pool release];
    [myThread release];

Затем я пытаюсь обновить его

CGFloat pr;
for(int i=0; i < [self.itemsToDisplay count]; i++){
    if (!runThread) {
        return;
    }
    pr = (CGFloat)i/(CGFloat)[self.itemsToDisplay count]; 
    [self performSelectorOnMainThread:@selector(updateProgressBar:)
                           withObject: [NSNumber numberWithFloat:pr]
                        waitUntilDone: YES];
    progressView.progress += 0.5;.............

и вообще ничего ....

Ответы [ 2 ]

0 голосов
/ 25 октября 2012

Все, что вам нужно сделать, это обновить Progressview в главной теме. Вот статья об этом. http://www.xprogress.com/post-36-threading-tutorial-using-nsthread-in-iphone-sdk-objective-c/

0 голосов
/ 30 ноября 2011

У меня была такая же проблема с iOS 5.0. Кажется, что до версии 5.0 вы могли бы обновить переменную progress из любого потока, но setNeedsDisplay должен вызываться из основного потока. Начиная с 5.0 и выше, вы также должны установить значение «progress» из основного потока. Надеюсь, это кому-нибудь поможет.

...