ScrollView 加载数据后不更新。只有在我切换到另一个屏幕并返回后,ScrollView 才能成功显示数据。 https://youtu.be/0q3R6LaKbnE
对于异步图像加载,请使用:https : //github.com/dmytro-anokhin/url-image
import Combine
import SwiftUI
class NewsAPI: ObservableObject {
@Published var articles: Articles = [Article]()
init() {
guard let url: URL = URL(string: "https://newsapi.org/v2/top-headlines?country=ru&apiKey=376a97643c6c4633afe57427b71e8ebd") else { return }
URLSession.shared.dataTask(with: url) { (data, response, error) in
do {
guard let json = data else { return }
let welcome = try JSONDecoder().decode(ModelNews.self, from: json)
DispatchQueue.main.async {
self.articles = welcome.articles!
}
}
catch {
print(error)
}
}
.resume()
}
}
Run Code Online (Sandbox Code Playgroud)
struct CardList: View {
@ObservedObject var newsAPI: NewsAPI = NewsAPI()
var body: some View {
NavigationView {
ScrollView {
VStack(alignment: .center) {
ForEach(self.newsAPI.articles, id: \.self) { i in
CardView(article: i)
Run Code Online (Sandbox Code Playgroud)
小智 7
我解决了这个问题。更新工作正常,问题出在别的地方!我已经努力了几个小时来解决这个问题,我找到了一个解决方案。
如果您提供来自相同类型或仅显示的视图的默认值,则当数组为空时,一切都会正常工作。似乎视图的大小不正确,如果数组为空,那么您什么也看不到,因为大小不会随着内容的更新而改变。
简而言之:如果数组为空,则提供默认值或显示的替代视图。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
522 次 |
| 最近记录: |