如何从 URL 将图像加载到 imageView? [复制]

Posted

技术标签:

【中文标题】如何从 URL 将图像加载到 imageView? [复制]【英文标题】:How to load an image to the imageView from a URL? [duplicate] 【发布时间】:2016-06-02 15:38:08 【问题描述】:

我的ViewController.swift 类中有以下代码:

import UIKit

class ViewController: UIViewController 
    @IBOutlet weak var imageView: UIImageView!

    var newImage : UIImage?

    let imgURL = NSURL(string : DemoURLs.photoURL)

    func fetchImage()
        if let url = imgURL
           let imageData = NSData(contentsOfURL: url)

              if imageData != nil
                 newImage  = UIImage( data: imageData! )
               else 
                newImage = nil
            
        
    

    override func viewDidLoad() 
        super.viewDidLoad()

        imageView.image = newImage
    

demoURLs.swift 文件有一个像这样的简单结构:

import Foundation

struct DemoURLs
    static var photoURL = " http://science-all.com/images/wallpapers/image/image-6.jpg "

当我在模拟器中运行它时,我得到一个纯白屏幕。

【问题讨论】:

你从来没有运行过 fetchImage(),是吗? 【参考方案1】:

存在三个问题:

    你的网址在字符串的开头和结尾都包含空格(所以它以<Space>http://s...开头,但应该是http://s...

    如果您为 ios 9 开发,出于安全原因,它会阻止 http 请求。您可以通过转到 Info.plist 文件、添加 App Transport Security Settings 键并在其中添加另一个键 - Allow Arbitrary LoadsYES 值来禁用它。应该看起来像这样:

    您应该在设置图像imageView.image = newImage 之前在viewDidLoad() 中调用fetchImage()

【讨论】:

@EricD 是的,已添加,谢谢 :)

以上是关于如何从 URL 将图像加载到 imageView? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从android中重定向url加载图像

Android:如何在不加载完整位图的情况下将流式图像即时渲染到 ImageView?

如何使用 Glide 将 svg 图像加载到图像视图

使用 AsyncImageView 将图像加载到 ImageView 宽度

如何提升将多个图像从网络加载到 ImageViews

如何将图像文件加载到 ImageView?