2011-09-19 60 views
4

我想逐個加載圖片並不是全部在一起。在下面的代碼中,imagedata是包含需要加載圖片的網址的數組。這是我的代碼,但沒有成功。逐個加載圖片

-(void)loadSingleImage:(int)buttonTag 

{ 

    UIButton *buttonImage =(UIButton *) [self.view viewWithTag:buttonTag]; 
    NSData *imagesubCategoryData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:[imageData objectAtIndex:buttonTag-30]]]; 
    [buttonImage setImage:[UIImage imageWithData:imagesubCategoryData] forState:UIControlStateNormal]; 
} 
-(void)loadImageData 

{ 

    for(int i=0;i<[imageData count];i++) 
    { 
     [self loadSingleImage:i+30]; 
     sleep(0.1); 
    } 

} 

回答

1

可以使用的NSTimer讓我知道如果你需要示例代碼。

3

可以使用大中央調度逐個加載圖片..

使用下面的代碼

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); 

dispatch_async(queue, ^{ 
    NSURL *url = [NSURL URLWithString: @"http://www.gev.com/wp-content/uploads/2011/05/two_flowers.preview.jpg"]; 

    dispatch_sync(dispatch_get_main_queue(),^{ 
     [cell.cellImage setImageWithURL: url placeholderImage: [UIImage imageNamed: @"twitter.jpg"]]; 
    }); 
}); 

它可以幫助你

+0

是的感謝您的幫助 – leena

0

不要使用睡眠(),而是使用一個runloop如果必須延遲:

NSRunLoop* currentRunLoop = [NSRunLoop currentRunLoop]; 
for(int i=0;i<[imageData count];i++) 
{ 
    [self loadSingleImage:i+30]; 
    NSDate* dateLimit = [NSDate dateWithTimeIntervalSinceNow:0.1]; 
    [currentRunLoop runUntilDate:dateLimit]; 
} 

但更好的方法是GCD。