查找有关如何为表视图编写SwiftUI包装器的示例。
之所以这样做是因为SwiftUI在列出数据方面受到限制。请参阅my previous post,其中描述了我认为是SwiftUI中当前的开发不足和/或错误,其中在使用大数据集并修改显示的行数时,UI会锁定并固定CPU。 / p>
我相信目前,唯一的解决方法是编写一个自定义包装器,以将旧表View合并到我的SwiftUI View中。我无法弄清楚如何完成此操作,也找不到任何现有示例这个特定的UIView。任何人都可以通过示例代码提供任何帮助吗?
表视图必须从CoreData实体中提取数据。
我希望能够这样称呼它:
struct ContentView: View {
var body: some View {
MyCustomTableViewWrapper()
}
}
到目前为止,这是我使用UIViewRepresentable的结果,我不知道是如何将CoreData放入此UITableView中的:
import Foundation
import UIKit
import SwiftUI
import CoreData
struct LegacyTableView : UIViewRepresentable {
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func makeUIView(context: Context) -> UITableView {
let control = UITableView()
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 = "Table View Content"
control.addSubview(label)
return control
}
func updateUIView(_ uiView: UITableView, context: Context) {
// code to update scroll view from view state, if needed
}
class Coordinator: NSObject {
var control: LegacyTableView
init(_ control: LegacyTableView) {
self.control = control
}
@objc func handleRefreshControl(sender: UIRefreshControl) {
// handle the refresh event
sender.endRefreshing()
}
}
}
答案 0 :(得分:1)
按照Apple's tutrial所述使用chart.update({
tooltip: {
enabled: false
},
plotBorderWidth: 1
});
或UIViewControllerRepresentable
。