为了在SwiftUI列表中实现向右滑动,我正在尝试使UIViewControllerRepresentable UITableViewController。
但是,当displayMode为.large时,它与导航栏不兼容。
我想,当滚动移动时,它应该
#2在我的表视图中不起作用,因此需要做一些事情。 我需要你的帮助。
[图片]
要复制的[代码](从xcode创建swiftui项目后,替换 ContentView.swift和下面的代码。)
import SwiftUI
final class TableViewWrapper: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UITableViewController {
let viewController = UITableViewController()
viewController.tableView.delegate = context.coordinator
viewController.tableView.dataSource = context.coordinator
return viewController
}
func updateUIViewController(_ uiViewController: UITableViewController, context: Context) {
uiViewController.tableView.reloadData()
}
func makeCoordinator() -> Coordinator {
Coordinator()
}
class Coordinator: NSObject, UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 100
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .subtitle, reuseIdentifier: nil)
cell.backgroundColor = .black
cell.textLabel!.textColor = .white
cell.textLabel!.text = "Test"
return cell
}
}
}
struct ContentView: View {
var body: some View {
NavigationView {
TableViewWrapper()
.navigationBarTitle("Nav title", displayMode: .large)
}
}
}
答案 0 :(得分:1)
我有解决办法。
TableViewWrapper()
.edgesIgnoringSafeArea(.top)