我在我的函數中有這樣一段代碼。我做了一個循環在按鈕內部創建一個異步圖像。 但是當我運行它時,我的按鈕不顯示異步圖像。請告訴我我的代碼有什麼問題。 當我打印NSLog的網址,它很好,並顯示所有的圖像網址。按鈕問題中的異步圖像
// ADD BUTTON
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setFrame:CGRectMake(topLeft.x,topLeft.y,width,height)];
//Asyncronous Image
NSMutableString *imageUrl;
if ([[[type objectAtIndex:btnNumber] objectForKey:@"LAST_CONTENT_IMAGE"] isEqualToString:@""] || [[type objectAtIndex:btnNumber] objectForKey:@"LAST_CONTENT_IMAGE"] == nil) {
imageUrl = [NSMutableString stringWithFormat:@"bank_images/actual/"];
}else{
imageUrl = [[type objectAtIndex:btnNumber] objectForKey:@"LAST_CONTENT_IMAGE"];
}
NSURL *url1 = [NSURL URLWithString:imageUrl];
NSLog(@"URL GBR : %@", url1);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *stringSub = [imageUrl substringWithRange:NSMakeRange (imageUrl.length-9, 9)];
NSString *path = [NSString stringWithFormat:@"%@/%u_%@", documentsDirectory,[GlobalVariable sharedInstance].indexCategoryGlobal,stringSub];
if ([[NSFileManager defaultManager] fileExistsAtPath:path])
{
NSData *img = [NSData dataWithContentsOfFile:path];
UIImage *imageExist = [UIImage imageWithData:img];
image = imageExist;
[btn setImage:image forState:UIControlStateNormal];
}else{
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
dispatch_async(queue, ^{
//This is what you will load lazily
NSData *data1 = [NSData dataWithContentsOfURL:url1];
dispatch_sync(dispatch_get_main_queue(), ^{
image = [UIImage imageWithData:data1];
[btn setImage:image forState:UIControlStateNormal];
if ([stringSub isEqualToString:@"s/actual/"]){
image = [UIImage imageNamed:@"default_thumb.png"];
[btn setImage:image forState:UIControlStateNormal];
}
[[NSFileManager defaultManager] createFileAtPath:path
contents:data
attributes:nil];
});
});
}
[btn setTag:btnNumber];
你知道SDWebImage的,如果不通過這個鏈接:https://github.com/rs/SDWebImage – 2013-05-13 04:02:30
這樣就可以直接使用[BTN setImageWithUrl:]。 – 2013-05-13 04:04:26
謝謝@venkat,但我更喜歡現在使用此代碼。 你能不能幫助我,而不使用該庫? :) – Template09 2013-05-13 04:18:05