使用 URL 设置 UIImageView

Posted

技术标签:

【中文标题】使用 URL 设置 UIImageView【英文标题】:Set UIImageView using URL 【发布时间】:2017-03-11 18:11:09 【问题描述】:

我正在使用 UIImageView 设置图像:

[self.imageView setImageWithURL:[NSURL URLWithString:urlString] placeholderImage:[UIImage imageNamed:@"random_image"]];

我可以按预期在手机上看到图像。

但是,如果我使用没有占位符参数的方法

[self.imageView setImageWithURL:[NSURL URLWithString:urlString]];

或者将 placeholderImage 作为 nil 传递

[self.imageView setImageWithURL:[NSURL URLWithString:urlString] placeholderImage:nil];

然后图像没有设置,我的 imageView 是空白的。我了解占位符图片用于“代表适合在您的扩展程序 UI 中临时显示的资产的当前状态。”。

我不明白它的缺席会对我产生怎样的影响。有什么指点吗?

【问题讨论】:

检查您的图像视图大小可能是 (0;0) 占位符图像为您的图像视图提供了固有大小,这有助于在占位符范围内替换实际图像。如果没有给图像视图提供高度/宽度限制,它的大小将为 (0, 0)。 我已经在情节提要中用非 (0,0) 声明了 imageView。但是你们是对的,在代码中帧大小是 0,0。但即使我手动给出帧大小,图片也不会显示。有没有其他方法来定义“内在尺寸”? 【参考方案1】:

如果您设置默认占位符图像,则 imageview 获取宽度和夜晚。否则 imageview 框架可能是 (0,0)。

或者

应该使用 NSURLConnection 异步下载图片,并且只有在完全下载后才能将其转换为 UIImage 并分配给图片视图

[NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:imageUrl]] queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)

ImageViewName.image = [UIImage imageWithData:data];

];

【讨论】:

感谢您的帮助。我尝试使用 CGRectMake 方法添加框架,还尝试了您的第二个解决方案。没用。【参考方案2】:

我发现了问题。我在 UITableViewCell 中添加了一个名为 imageView 的图像视图。显然, UITableViewCell 已经有一个同名的属性。我将 myImageView 的名称更改为 cellImageView,现在,我不再需要占位符参数了!话虽如此,我还是不明白屏幕后面发生了什么!

【讨论】:

【参考方案3】:

我希望这些代码对你有所帮助....

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
    dispatch_async(queue, ^

        UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:
                                                 [NSURL URLWithString:@“image URL”]]];
        dispatch_sync(dispatch_get_main_queue(), ^

                [[cell myimage] setImage:image];

            
         );
    );

【讨论】:

以上是关于使用 URL 设置 UIImageView的主要内容,如果未能解决你的问题,请参考以下文章

如何使用颤振 http 包设置基本 url 类?

使用 URL 设置 UIImageView

使用 ajax 请求设置引用 URL

使用URL设置ImageView

Angular 10:使用变量设置 IFrame URL 输入

使用css的background:url设置背景图方法