开发者

NSthreading but still not working with activityprogressview

            [progressind startAnimating];

        [self performSelectorOnMainThread:@selector(methodgoeshere:) withObject:[NSDictionary dictionaryWithObjectsAndKeys: aURL, @"aURL", aURL2, @"aURL2", nil]
                            waitUntilDone:YES ];
        [progressind stopAnimating];

     开发者_JS百科   [navigationController pushViewController:vFullscreen animated:YES];

In the methodgoeshere, i have a UIImageview which i fill with the image once its downloaded but the problem is, the activityprogress is not working as i thought, it doesnt spin.


You need to do your image loading in a new background thread. performSelectorOnMainThread calls the method on the main thread, not a background thread so that's why it's blocking.

To call your image loading method in a background thread:

[progressind startAnimating];
[NSThread detachNewThreadSelector:@selector(methodgoeshere:) toTarget:self withObject:[NSDictionary dictionaryWithObjectsAndKeys: aURL, @"aURL", aURL2, @"aURL2", nil]];

Then in methodgoeshere you load your image. Once the image is done loading then you call a method on the main thread to let it know you're done and to stop the activity progress indicator.

- (void) methodgoeshere:(...)... {
    // <Load your image here>

    // Then tell the main thread that you're done
    [self performSelectorOnMainThread:@selector(imageDoneLoading) withObject:nil waitUntilDone:YES ];        
}

- (void)imageDoneLoading {
    [progressind stopAnimating];
    // Do other stuff now that the image is loaded...
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜