ios - 如何在 Swift 中将 oData 网络链接显示/转换为 UIImage?
问题描述
我正在使用此 api 从 microsoft 帐户获取图像: https ://graph.microsoft.com/beta/me/photo
这个 api 获得了输出中显示的数据。但我不知道如何在 Swift 中将此链接显示为图像。
输出 :
"@odata.context" = "https://graph.microsoft.com/beta/$metadata#users('rahulchopra.93%40outlook.com')/photo/$entity";
"@odata.mediaContentType" = "image/jpeg";
height = 2;
id = 2X2;
width = 2;
解决方案
创建 UIImageView 的扩展
extension UIImageView {
func downloaded(from url: URL, contentMode mode: UIViewContentMode = .scaleAspectFit) {
contentMode = mode
URLSession.shared.dataTask(with: url) { data, response, error in
guard
let httpURLResponse = response as? HTTPURLResponse, httpURLResponse.statusCode == 200,
let mimeType = response?.mimeType, mimeType.hasPrefix("image"),
let data = data, error == nil,
let image = UIImage(data: data)
else { return }
DispatchQueue.main.async() {
self.image = image
}
}.resume()
}
func downloaded(from link: String, contentMode mode: UIViewContentMode = .scaleAspectFit) {
guard let url = URL(string: link) else { return }
downloaded(from: url, contentMode: mode)
}
}
并像这样使用
imageView.downloaded(from: "http://www.apple.com/euro/ios/ios8/a/generic/images/og.png")
推荐阅读
- java - mp3player\MainApplication.java:29:错误:找不到符号导入 lrandomdev.com.online.mp3player.models.MyObjectBox;
- python - 在模型中添加项目
- reactjs - React:获取调用的 then 函数未被调用
- maven - Maven 执行器插件未执行
- python - 我有一个关于 MIMEMultipart 的问题
- r - 在 R 中使用 psych 预测 PCA
- python - 在 imdb 数据集上使用朴素贝叶斯研究情感分析器,以下是获取评论功能,从 ds 获取评论。但给出错误
- php - 贝宝 API 上下文
- javascript - React js 单元测试返回 Received: 序列化为相同的字符串
- java - 如何使用 PowerMockito 模拟 Java 日历