SwiftUI中的自定义节初始化程序

3

Xcode 12.3 | SwiftUI 2.0 | macOS 11

我试图编写一个自定义初始化器。

Section("TITLE") { ... content ... }

不要这样写:

Section(header: Text("TITLE") { ... content ... } 

但是我无法创建自定义初始化器,因为self.init没有被识别:

extension Section { 
    init(_ title: String, @escaping () -> Content) { 
        self.init(........ <--- No autocompletions for self initializers
    }
}

我在自定义按钮初始化方面遇到了同样的问题。

有人知道如何从扩展中访问这些初始化程序吗?


1
请参考以下链接,了解有关如何使用泛型创建 SwiftUI 扩展的技巧:https://www.swiftbysundell.com/tips/swiftui-extensions-using-generics/ - Raja Kishan
1个回答

3
这里提供一个解决方案(在Xcode 12.1 / iOS 14.1上测试通过)。
extension Section where Parent == Text, Content: View, Footer == EmptyView {
    init(_ title: String, content: @escaping () -> Content) {
        self.init(header: Text(title), content: content)
    }
}

在 GitHub 上


我怎样才能知道需要哪些通用类型?例如 ParentContentFooter - AlbertUI
请查看 struct Section 的声明。 - Asperi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接