Я создаю галерею изображений, где при нажатии на изображения происходит переход к следующему виду.Я использую библиотеку SDWebImage для кэширования изображений.Кеширование работает отлично, и я получаю галерею изображений.Проблема в том, что если я очищаю кеш и запускаю свое приложение.
Изображение загружается в методе делегата, но я не могу назначить загруженное изображение в моей кнопке (dats в viewdidload), и кэширование не происходитпервый раз и изображения отображаются только в том случае, если я запускаю приложение для iPad во второй раз (из-за кэширования).Я хочу, чтобы изображения были загружены и отображены после очистки кэша.Как я могу это сделать?
Я даже готов предоставить весь исходный код.
- (void)viewDidLoad {
[super viewDidLoad];
self.synced = [NSMutableArray array];
self.title=@"boom";
jsonurl=[NSURL URLWithString:@"http://www.1040communications.net/sheeba/stepheni/iphone/stephenFlickr.json"];
jsonData=[[NSString alloc]initWithContentsOfURL:jsonurl];
dict=[jsonData objectFromJSONString];
items=[dict objectForKey:@"items"];
story = [[NSMutableArray array]retain];
media1= [[NSMutableArray array]retain];
for (NSDictionary *item in items )
{
[story addObject:[item objectForKey:@"title"]];
[media1 addObject:[item objectForKey:@"media"]];
}
view1 = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
for(int i = 0; i < media1.count; i++)
{
NSString *mel=[media1 objectAtIndex:i];
NSString *escapedURL = [mel stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url1=[NSURL URLWithString:escapedURL];
managaer=[SDWebImageManager sharedManager];
cacheImage = [managaer imageWithURL:url1];
//To clear the cache, uncomment these three lines
/* SDImageCache *imageCache = [SDImageCache sharedImageCache];
[imageCache clearDisk];
[imageCache clearDisk];*/
if (cacheImage) {
//If a cache image is present
}
else
{ //If there is no cache image present, download.
[managaer downloadWithURL:url1 delegate:self];
}
button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(column*260+1, row*280+300, 250, 250);
[button setImage:cacheImage forState:UIControlStateNormal];
NSLog(@"cached image:%@",cacheImage);
[button addTarget:self action:@selector(buttonClicked:)
forControlEvents:UIControlEventTouchUpInside];
button.tag = i;
[view1 addSubview:button];
if (column == 2) {
column = 0;
row++;
} else {
column++;
}
}
[view1 setContentSize:CGSizeMake(600, (row+1) *280 + 10)];
[self.view addSubview:view1];
[view1 release];
}
-(void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage: (UIImage * )image
{
//The image gets downloaded over here..
}