これが私が使用しているコードです。これはシミュレーターでは問題なく機能することを覚えておいてください。ただし、iPadデバイスでテストするときに同じコードを実行すると、画像が読み込まれません。なぜこれができるのでしょうか?
SDWebImageManager *manager = [SDWebImageManager sharedManager];
NSURL *url = [NSURL URLWithString:@"http://www.mywebsite.net/folder/Photos/thumbnails/IMG_1780.JPG"];
UIImage *cachedImage = [manager imageWithURL:url];
if (cachedImage)
{
// Use the cached image immediatly
}
else
{
// Start an async download
[manager downloadWithURL:url delegate:self];
}
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(80+196, 5, 192, 192)];
[button setImage:cachedImage forState:UIControlStateNormal];
[button addTarget:self action:@selector(imageSelected:) forControlEvents:UIControlEventTouchUpInside];
[cell addSubview:button];
return cell;
助けていただければ幸いです!ありがとうございました!
編集:変更されたコードは、Simでも機能しますが、デバイスでは機能しません。
- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image
{
// Do something with the downloaded image
//testImage = image;
testButton = [[UIButton alloc] initWithFrame:CGRectMake(80+196, 5, 192, 192)];
[testButton setImage:image forState:UIControlStateNormal];
[testButton addTarget:self action:@selector(imageSelected:) forControlEvents:UIControlEventTouchUpInside];
}
SDWebImageManager *manager = [SDWebImageManager sharedManager];
NSURL *url = [NSURL URLWithString:@"http://www.mywebsite.net/album/Photos/thumbnails/IMG_1780.JPG"];
UIImage *cachedImage = [manager imageWithURL:url];
[self webImageManager:manager didFinishWithImage:cachedImage];
if (cachedImage)
{
// Use the cached image immediatly
//[self webImageManager:manager didFinishWithImage:cachedImage];
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(80+196, 5, 192, 192)];
[button setImage:cachedImage forState:UIControlStateNormal];
[button addTarget:self action:@selector(imageSelected:) forControlEvents:UIControlEventTouchUpInside];
[cell addSubview:testButton];
}
else
{
// Start an async download
[manager downloadWithURL:url delegate:self];
}