Estou criando uma visualização SwiftUI personalizada que será baseada em Section(). Meu código básico se parece com isso, que funciona:
struct SettingsSection<Header: View, Content: View>: View {
var header: () -> Header
var content: () -> Content
init(@ViewBuilder header: @escaping () -> Header, @ViewBuilder content: @escaping () -> Content)
{
self.header = header
self.content = content
}
var body: some View {
Section(content: {
content()
}, header: {
header()
})
}
}
No entanto, eu quero adicionar um init mais simples que aceite apenas uma string como cabeçalho. Eu tentei fazer o seguinte:
init(_ headerStr: String, @ViewBuilder content: @escaping () -> Content) {
self.init(header: {
Text(headerStr)
}, content: content )
}
Mas estou recebendo o erro "O parâmetro genérico 'Cabeçalho' não pôde ser inferido" se SettingsSection for usado assim, que é o que pretendo:
SettingsSection("Actions") {
// ... content of the section
}
Posso entender que o tipo de cabeçalho não seja especificado usando este novo init(), mas certamente deve haver uma maneira de criar um construtor tão simplificado... estou certo?