ios - URL 图像不适用于 Swift Playgrounds 中的 UIButton

标签 ios swift swift-playground

我尝试使用以下代码从 URL 制作 UIImage,并将 URL 输入到浏览器中工作正常。如果我更改背景颜色,该按钮也可以完美运行并显示出来,但图像不会显示在按钮上。我正在使用最新版本的 Swift Playgrounds。

let ARIconURLString = "https://lh3.googleusercontent.com/emT3b9yhU2o-uz-ZOoomqucgSvylLeWOKYKWbz88tP9zWJSzmIKiADxTWtxD39OiCO_aitwvhIzQ8ICmFbjSuZPTAgvgIEADjN3eft3IQewMVNNLsiKlYPQqnIzAvtn98Do5tBkAcNcY0Li1mX01UQmYyGBx8jF9oCytWirOxOwU68cF00oioqb1x-PVddQiMwcKf1UYtsqSUVXGvwK4G2KkSWOgvXYiH243bzt9PdVvDmz6rVsKqqTUTJewsKyyQf77xF772T8E_tkGQx0g-h8xgKhBhWJI21Zr2v1Z6A_c5xY7arR2ltA-m_yV30afoPm1wCz4dosnqNs7VqCdt2VnhMLhjc-NdFeVYG6b1LAmMDyZOFkTw_xrmnh-Z416ffolEtcZMjuNzEbHwBFwFDsmpMJj-R4SKXrRxtgBrYwRCpG1G3icgI_0G-Kj_rHIHrw4nMfHb708X5_K1SKIyeL5LIThfnxk5JOuS11vX680nFMRu9kmzrP3IdFoJT-6JLYPHtuTgS0kXfcoN7F3QSKd6E2Fl-X8uOxNRSbl9lvKk0I7ymChF5XFHJh5Q1zWCFxczDf8gEdQ1gKGJn4IrzISSwGqw51U2BgGQ6t5qV26CYIoRVeG1tZYUPBdtOdwrOPXgoP6oZDlemcfuJhxJxC4qAV8CSA=s512-no"
    let ARIconURL = URL(string: ARIconURLString)!
    let ARIconData = try! Data(contentsOf: ARIconURL)
    let ARIcon = UIImage(data: ARIconData)
    ARButton.contentMode = .scaleAspectFit
    ARButton.setImage(ARIcon, for: .normal)

最佳答案

使用同步代码通常是一种不好的做法。 通常你可以异步获取图像:

   final private func downloadFrom(urlString: String?){


    self.imageView.image = nil

    guard let urlString = urlString, let myURL = URL(string: urlString) else{
        return
    }

    let session = URLSession.shared

    self.task = session.dataTask(with: myURL) { (data: Data?, response: URLResponse?, error: Error?) in

        if let error = error  {
            print(error)
            return
        }


    guard let data = data else{
        return
    }


    if 200 ... 299 ~= statusCode {            
        self.loadImage(data: data)
    }else{
        // self.manageError(data: data)
    }

}

self.task?.resume()
}




final private func loadImage(data : Data){
        let image = UIImage(data: data)
        DispatchQueue.main.async {
            self.imageView.image = image
        }
}

关于ios - URL 图像不适用于 Swift Playgrounds 中的 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55204128/

相关文章:

ios - 当文本较少且UITextview的高度较大时滚动UITextview中的文本

swift - Realm IOS 类型转换结果关闭

ios - 为什么 viewForAnnotation 方法弄乱了我的用户位置?

swift - Xcode 7 playground 中没有显示轴

ios - defer 函数在 Swift 2.0 中不起作用

iOS - AudioKit 在接听电话时崩溃

ios - didReceiveIncomingPushWithPayload 应用程序被杀死时不工作

ios - Cocoa pods 如果没有版本安装,它会安装旧包

swift - 在父类(super class)中使用 className() 来获取 Realm 中子类的名称

ios - 如何在 Xcode 9 中使用带有 playground 的自定义框架