将图像加载到缓存中并显示到UIImageView中

时间:2014-03-26 10:18:12

标签: ios objective-c uicollectionview

如何使用Cache将图像显示到UICollectionView并将大图像显示到另一个图像中 查看UICollectionView didSelect。这里的CollectionView上的大图像和拇指图像都是下一个查看大图像而不是空白。使用EMAsyncImageView

NSURL *url = [NSURL URLWithString:@"http://leewayinfotech.com/mobile/girlwallpaper/api.php?category=abstract&device=i5&hits=all"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[NSURLConnection sendAsynchronousRequest:req queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
    NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    //NSLog(@"Response String=%@",responseString);
    NSError *jsonError;
    NSData *trimmedData = [responseString dataUsingEncoding:NSUTF8StringEncoding];
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:trimmedData options:NSJSONReadingAllowFragments error:&jsonError];

    if (jsonError) {
        NSLog(@"JSON parse error: %@", jsonError);
        return;
    }

    obj_Array=[[NSMutableArray alloc] init];
    obj_Array=[json objectForKey:@"wallpaper"];

    //NSMutableArray *tmp = [NSMutableArray arrayWithCapacity:[obj_Array count]];
    imgPage.thumb_img_Array=[NSMutableArray arrayWithCapacity:[obj_Array count]];
    imgPage.device_img_Array=[NSMutableArray arrayWithCapacity:[obj_Array count]];
    imgPage.imgNo_Array=[NSMutableArray arrayWithCapacity:[obj_Array count]];

    for (int i=0; i<[obj_Array count]; i++) {
        ImgClass *obj_Class=[[ImgClass alloc] init];
        obj_Class.main_id=[[[obj_Array objectAtIndex:i] valueForKey:@"id"] integerValue];

        [obj_Class.thumb_img_Array addObject:[[[obj_Array objectAtIndex:i] objectForKey:@"images"] objectForKey:@"image_thumb"]];
        [obj_Class.device_img_Array addObject:[[[obj_Array objectAtIndex:i] objectForKey:@"images"] objectForKey:@"image2"]];
         NSLog(@"Thumb-->%@\n\nDevice-->%@",[obj_Class.thumb_img_Array description],[obj_Class.device_img_Array description]);
        [appDelg.my_Array addObject:obj_Class];
    }

2 个答案:

答案 0 :(得分:0)

您使用EGOImageView进行图片缓存支持。

答案 1 :(得分:0)

你可以使用SDWebImage.Using SDWebImage你可以使用imageURLString像下面的CacheType一样设置图像。

[yourImgView setImageWithURL:[NSURL URLWithString:imageURLString]
                       placeholderImage:[UIImage imageNamed:@"noimage.png"]
                              completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType)
         {
             if (!error && image)
             {

             }
         }];

希望它会帮助你......