如何从URL加载图像到imageView?

时间:2016-06-02 15:38:08

标签: ios swift uiimageview uiimage

我的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 "
}

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

1 个答案:

答案 0 :(得分:1)

有三个问题:

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

  2. 如果您针对iOS 9进行开发,则会因安全原因阻止http请求。您可以通过转移Info.plist文件,添加App Transport Security Settings密钥并在其中添加其他密钥 - Allow Arbitrary LoadsYES值来禁用它。应该看起来像这样:

  3. enter image description here

    1. 在设置图片fetchImage()
    2. 之前,您应该在viewDidLoad()中致电imageView.image = newImage