天气图标未显示在天气应用程序的图像视图中
Posted
技术标签:
【中文标题】天气图标未显示在天气应用程序的图像视图中【英文标题】:weather icon not displaying in imageview in weather pp 【发布时间】:2021-03-24 11:11:06 【问题描述】:我正在使用 openweathermap api 开发天气应用程序,我已经获取并设置了所有数据,还获取了字符串中的图像名称,但天气图标未显示在 imageview 中。
import UIKit
import Alamofire
class WeatherViewModel
var modelWeather2 = [MyWeatherData]()
weak var vc: ViewController?
func getWeather()
AF.request("http://api.openweathermap.org/data/2.5/weather?q="+(vc?.cityTextField.text)!+"&units=metric&appid=88236c7916643a06e2cd64d56f4e5077", method: .get).response
response in
// debugPrint(response)
if let data = response.data
do
let apiResponse = try JSONDecoder().decode(MyWeatherData.self, from: data)
self.modelWeather2.append(apiResponse)
debugPrint(apiResponse)
DispatchQueue.main.async
self.vc?.tempLabel.text = String(apiResponse.main.temp)
self.vc?.titleLabel.text = apiResponse.weather[0].main
self.vc?.descriptionLabel.text = apiResponse.weather[0].description
let iconUrl = "http://openweathermap.org/img/wn/\(apiResponse.weather[0].icon).png"
self.vc?.weatherImage.image = UIImage(named: iconUrl)
catch let error
print(error.localizedDescription)
这是我的代码
【问题讨论】:
UIImage(named:) 用于存储在应用程序包中的图像。它不适用于远程图像的 url。 如何从 url 设置 您可以通过简单的搜索找到许多教程。这是一个hackingwithswift.com/example-code/uikit/… @AliAhmed 如果你打印iconUrl
它会打印什么?
我已经解决了错误
【参考方案1】:
您可以像下面发布的那样使用原始解决方案
extension UIImageView
func downloadImage(for url: String)
DispatchQueue.global(qos: .default).async
if let url = URL(string: url), let data = try? Data(contentsOf: url), let image = UIImage(data: data)
self.image = image
最后你可以把它当作
self.vc?.weatherImage.downloadImage(for: "YOUR_URL_HERE")
同样,解决方案非常原始,除了简单地下载图像之外,不提供缓存功能或任何其他功能
【讨论】:
什么是自我。图片和什么是=图片都一样我很困惑 它是UIImageView
的扩展,imageView有一个名为image的属性,因此self.image
,=image是下载的图像,如果你看到上面写的一系列if let I,它有@987654325 @ 这就像它在 swift 中一样简单,如果您是 swift 新手,我建议您阅读 doc/swift 手册
我得到这个错误变量在它自己的初始值中使用
2 to things, 1.您发布的代码不会导致错误“变量在其自己的初始值内使用” 2.错误与您的问题“天气图标未显示在 imageview 中”无关天气pp“如果有错误,添加正确的错误,行号和与错误相关的所有代码,你设置图像的方式也是错误的,因此我编写了代码来下载图像,毕竟这是你原来的问题跨度>
变量在其自己的初始值中使用此错误是您未在我的代码中提供的扩展方法以上是关于天气图标未显示在天气应用程序的图像视图中的主要内容,如果未能解决你的问题,请参考以下文章