Я пытаюсь создать список в SwiftUI, который я могу перетащить до содержимого Refre sh. Я прошел через версии Custom ScrollView и UIKit, которые содержат слишком много кода, и мне не нужны сторонние пакеты. Поэтому я сделал небольшое расширение, которое совсем не работает. Но у него есть базовое c представление о том, чего я хочу достичь. Я не могу получить доступ к объекту List внутри класса.
Итак, как я могу заставить этот код работать или Есть ли лучший способ закодировать этот Refre sh Control?
import UIKit
import SwiftUI
extension List {
func refresh(perform: @escaping () -> Void, isLoading: Bool) -> some View {
var view = Refresher(perform,isLoading)
return view.configureRefreshControl()
}
}
class Refresher {
var tableView: UITableView
let perform: () -> Void
var isLoading: Bool
init(_ perform: @escaping () -> Void,_ isLoading: Bool){
self.perform = perform
self.isLoading = isLoading
}
func configureRefreshControl() -> UITableView {
tableView.refreshControl = UIRefreshControl()
tableView.refreshControl?.addTarget(self, action: #selector(handleRefreshControl), for: .valueChanged)
return tableView
}
@objc func handleRefreshControl(_ tableView: UITableView) {
self.isLoading = true
// Update your content…
self.perform()
// Dismiss the refresh control.
DispatchQueue.main.async {
tableView.refreshControl?.endRefreshing()
self.isLoading = false
}
}
}