2

我懒惰地将图像通过加载setImageWithURLUIImageView嵌入的UIScrollView.

由于这是一个照片库,我试图myScrollView在完全加载后使用“成功”代码块来设置 'contentSize 和 imageview 的框架,以便它可以正确缩放。

问题是,我在通话中使用“成功”时不断收到一个奇怪的错误。如果我注释掉该方法的成功/失败部分,它可以工作,但我无法判断图像何时完成加载,因此无法正确调整容器大小,因此它可以正确缩放......帮助?

错误:

不兼容的块指针类型发送'void (^)(UIImage *__strong)'到类型参数'SDWebImageSuccessBlock'(又名'void (^)(UIImage *__strong, BOOL)'

success:^我在以下代码@以...开头的行上收到的错误是

代码:

 [_ivFullSize setImageWithURL:[NSURL URLWithString:[currentPhoto PhotoAbsoluteLocation]]
placeholderImage:[UIImage imageNamed:@"loading.png"]
success:^(UIImage *image){
                         [DejalBezelActivityView removeViewAnimated:YES];
                         self.myScrollView.contentSize = self.ivFullSize.image.size;
                         self.ivFullSize.frame = CGRectMake(0, 0,     self.ivFullSize.image.size.width, self.ivFullSize.image.size.height);
                     }
                     failure:^(NSError *error){
                                    [DejalBezelActivityView removeViewAnimated:YES];
                     }];
4

1 回答 1

5

在将 SDWebImage 版本升级到最新版本后,我最近遇到了同样的问题。我不知道为什么会发生这种情况,但我认为这是功能块中未记录的更改。基本上,该函数返回一个额外的布尔参数。

所以在不知道问题原因的情况下,我通过简单地向块中添加一个新的布尔参数来解决它。而不是写

...
success:^(UIImage *image)
{
  ... do something with image
}
failure:^(NSError *error)
...

我使用了以下内容:

...
success:^(UIImage *image, BOOL dummy)
{
  ... do something with image and ignore dummy
}
failure:^(NSError *error)
...

这消除了引发的错误,但仍然对附加布尔变量的性质产生疑问。任何额外的文件或澄清将不胜感激。这里的文档仍然是指旧版本。

于 2012-10-25T16:30:35.473 回答