【问题标题】:How to add flag image from an API?如何从 API 添加标志图像?
【发布时间】:2018-05-31 15:12:30
【问题描述】:
import UIKit

class DetailsViewController: UIViewController {
   @IBOutlet weak var alpha3CodeLbl: UILabel!
   @IBOutlet weak var regionLbl: UILabel!
   @IBOutlet weak var flagImage: UIImageView!

    var countrie:jsonStruct?


    override func viewDidLoad() {
        super.viewDidLoad()
        alpha3CodeLbl.text = countrie?.alpha3Code
        regionLbl.text = countrie?.region
        let urlString = "http://restcountries.eu/rest/v2/all" + (countrie?.flag)!

        flagImage.downloadedFrom(url: url!)


    }
}

extension UIImageView {
    func downloadedFrom(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 downloadedFrom(link: String, contentMode mode: UIViewContentMode = .scaleAspectFit) {
        guard let url = URL(string: link) else { return }
        downloadedFrom(url: url, contentMode: mode)
    }
}

我正在尝试从这个 API http://restcountries.eu/rest/v2/all 获取标志图像

没有错误,但图像没有出现。但是,如果这里有人可以解决此问题,则没有结果。 拜托,不是万事大吉,尝试用太多方法获取图像但仍然没有结果。

我也试试这个

    let urlString = "http[enter image description
 here][1]://restcountries.eu" + (countrie?.flag)!

【问题讨论】:

  • 发送 URL 示例,因为 let data = data 不是此 http://restcountries.eu/rest/v2/all 中的图像
  • 从这个 url let urlString = "http://restcountries.eu/rest/v2/all" + (countrie?.flag)! 发送示例什么是 (countrie?.flag)
  • 该 API 不支持您尝试使用的 URL。标志 URL 的格式为 https://restcountries.eu/data/jor.svg。而UIImage 不适用于 SVG 文件。
  • countrie:jsonStruct 这是一个包含 var fla 类型字符串的结构
  • svg 的问题

标签: ios json swift api


【解决方案1】:

需要解决的一些问题。你应该在使用它之前测试 url。

let str = "yourURL"
guard let theUrl = URL(string: str) else { return }

正如@rmaddy 在上面的评论中所提到的,UIImage 不适用于 SVG 文件。改用 UIWebView

var request = URLRequest(url:theUrl)
webView.loadRequest(request)

或尝试使用 SVGKit 来转换 SVG,如 here 所述

【讨论】:

  • 我的代码正在运行,当更改 api 时它正在运行并且没有问题我的问题是如何使图像从这个 api 出现在我的 imageView 中,而来自这个 api api.opendota.com/api/heroStats 的图像出现在我的图像视图
  • PNG 和 SVG 是两种不同的格式,您必须调整您的代码。转换 SVG 可能是您想要做的。我更新了我的帖子,提供了转换 SVG 说明的链接。
  • 非常感谢。你给我解释了很多我不知道的意思,打开了我不知道的意思,让我关注新事物
  • 绝对,但仅供参考,我在 webkit 视图中显示了图片,没有使用 pod 或任何东西,我知道你告诉我有 SVG 图像,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 2019-08-22
相关资源
最近更新 更多