Swiftui 可从外部类表示的UI。。。可能吗?
我正在处理一个可代表性的问题 我有一个像这样的角色Swiftui 可从外部类表示的UI。。。可能吗?,swiftui,Swiftui,我正在处理一个可代表性的问题 我有一个像这样的角色 struct MyRepresentable: UIViewControllerRepresentable { func makeCoordinator() -> Coordinator { Coordinator(self) } class Coordinator: NSObject, UIScrollViewDelegate { var control: MyScrollView init(
struct MyRepresentable: UIViewControllerRepresentable {
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
class Coordinator: NSObject, UIScrollViewDelegate {
var control: MyScrollView
init(_ control: MyScrollView) {
self.control = control
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
// User is currently scrolling
}
@objc func handleRefresh(sender: UIRefreshControl) {
sender.endRefreshing()
}
}
问题是,这个协调器中必须包含的内容非常庞大,有很多委托函数
我试图将其传递到一个单独的文件,以减少可表示文件上的混乱
然后我创建了一个像这样的新文件
class MyExternalCoordinator:NSObject, MyDelegate {
// here goes the monstrous code
}
然后,在我的UIViewRepresentable类中
func makeCoordinator() -> Coordinator {
MyExternalCoordinator()
}
我明白了
无法将“MyExternalCoordinator”类型的返回表达式转换为“MyRepresentable.Coordinator”类型的返回表达式
有什么想法吗?使返回类型对齐,如
func makeCoordinator() -> MyExternalCoordinator {
MyExternalCoordinator()
}
传递给不带参数的调用的参数修复很明显,已更新。但这对你的问题很重要-这是类型对齐。啊,很好,但这不是直观的。理论上,MyExternalCoordinator应该是Coordinator的一个子类,但事实并非如此。它是NSObject的一个子类。谢谢