【问题标题】:UIimage may not respond to "setImageWithUrl" iOSUIimage 可能无法响应“setImageWithUrl”iOS
【发布时间】:2014-11-25 12:21:57
【问题描述】:

我想在图像视图中使用 URL 显示图像。我试过用这个:

[cell.avatarImageView.image setImageWithURL:[NSURL URLWithString:@"http://www.innovaworks.com/wp-content/themes/innovaworks/images/home_person.png"]];

但它给了我这个警告:

UIImage 可能无法响应“setImageWithUrl”

图片未显示。

【问题讨论】:

  • 你用的是custum cell吗?
  • 这个错误是不言自明的。 UIImage 没有 setImageWithURL: 方法。如果您的某个类别定义了该方法,那么您需要添加到您的问题中。您的应用程序通常会因此类错误而崩溃,但我假设 image 属性的图像是 nil,这就是运行时没有任何反应的原因。
  • 是的,我使用自定义单元格
  • 自定义单元格与否,UIImage还是没有这个方法
  • @arbi mahndi .. 非常欢迎.. 请接受我的回答 :)

标签: ios uiimage cell


【解决方案1】:

UIImage 上没有设置图片的方法。

有关如何根据 url 的数据内容设置图像的完整说明,请参阅此答案:https://stackoverflow.com/a/2782491/209867

要点是:

UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.innovaworks.com/wp-content/themes/innovaworks/images/home_person.png"]]];

了解这是同步 UITableView 内的滚动性能将是可怕的,你不应该使用它!我仅出于技术准确性和全面性而提供此答案。

您似乎从某个地方复制了这段代码,有许多开源类别将从 url 异步加载图像。

SDWebImage 就是一个这样的开源项目。 https://github.com/rs/SDWebImage 这是一个被广泛使用的项目,它可以让您轻松地异步从 url 加载 UIImage

【讨论】:

  • 不要这样做。像这样加载 URL 会在访问网络时阻塞主线程。在此期间,您的应用将无响应。
  • 当然。当我发表评论时,您的回答并不完整 :-) 从那以后您已经对其进行了编辑。
【解决方案2】:

-setImageWithURL: 不是UIImage 方法。您想先获取图像数据,使用NSURLRequestNSURLSession 等(documentation)。然后分配一个 UIImage 并使用initWithData: 构造函数。然后使用image view的setImage:方法进行设置。

【讨论】:

    【解决方案3】:

    试试

     [cell.avatarImageView setImageWithURL:[NSURL URLWithString:@"http://www.innovaworks.com/wp-content/themes/innovaworks/images/home_person.png"]];
    

    或者

    cell.avatarImageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.innovaworks.com/wp-content/themes/innovaworks/images/home_person.png"]]];
    

    【讨论】:

    • 我的答案重复。
    • @arbi mahdi.. 从您的代码中删除“.image”.. 它会起作用.. 否则您的代码是正确的.. 这是因为 UIImage 没有 setImageWithURL:method。 :)
    • 亲爱的尼基塔,你不能给出答案,试试这个或这个或这个或这个,如果有人不工作请检查其他人的答案。仍然无法找到然后谷歌...大声笑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2011-11-06
    • 2011-01-06
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多