gpt4 book ai didi

swift - swiftUI 下拉刷新数据

转载 作者:行者123 更新时间:2023-12-05 07:17:41 27 4
gpt4 key购买 nike

我正在尝试在 SwiftUI 中开发我的第一个 IOS 应用程序,我想要一个下拉列表来刷新列表。我已经知道目前 Apple 尚未实现它,但我在 stackoverflow ( Pull down to refresh data in SwiftUI ) 上找到了以下解决方案,并且我从第一个答案开始实现了该解决方案。这很好用。

但现在我想在这个可刷新的 View 中有一个 SwiftUI View 。解决方案说我必须:

wrapping them in a UIHostingController and dropping them in makeUIView

这是我的问题。我必须做什么?我尝试了以下但它不起作用。

func makeUIView(context: Context) -> UIScrollView {
let control = UIScrollView()
control.refreshControl = UIRefreshControl()
control.refreshControl?.addTarget(context.coordinator, action:
#selector(Coordinator.handleRefreshControl),
for: .valueChanged)

// Simply to give some content to see in the app
/*let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 30))
label.text = "Scroll View Content"
control.addSubview(label)*/

let parent = UIViewController()
let child = UIHostingController(rootView: RecipeList())
child.view.translatesAutoresizingMaskIntoConstraints = false
child.view.frame = parent.view.bounds
// First, add the view of the child to the view of the parent
parent.view.addSubview(child.view)
// Then, add the child to the parent
parent.addChild(child)

return control
}

有没有人知道我做错了什么并且可以告诉我我必须改变什么?

谢谢和最好的问候

亨里克

最佳答案

iOS 15+

struct ContentView: View {
var body: some View {
NavigationView {
if #available(iOS 15.0, *) {
List(1..<100) { row in
Text("Row \(row)")
}
.refreshable {
print("write your pull to refresh logic here")
}
} else {
// Fallback on earlier versions
}
}
}
}

关于swift - swiftUI 下拉刷新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58676397/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com