我正在使用AFNetworking
类别UIImageView+AFNetworking.h
才能从S3下载图片。我得到一个预先签名的URLRequest并继续获取图像。这是一个仅用于显示照片的控制器:
- (void)viewWillAppear:(BOOL)animated
{
NSURLRequest *request = [BFAWSUploader downloadPhotoWithFileName:[NSString stringWithFormat:@"%@.jpg", _topicMessage.attachment_s3_name]];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
[_imageView setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"Default.png"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
NSLog(@"Pulled down image successfully");
[hud hide:YES];
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
NSLog(@"Failed to pull down image");
}];
}
我看到日志条目“成功拉下图像”,但之后我没有看到图像视图更新。相反,我必须离开视图控制器,然后返回,我将看到缓存的条目。
答案 0 :(得分:1)
来自UIImageView+AFNetworking.h
:
“如果指定了成功块,则在返回之前设置图像视图的图像是块的责任。如果未指定成功块,则使用self.image = image
设置图像的默认行为是执行“。
因此,您需要在成功阻止中_imageView.image = image
。