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?
Você só precisa marcar
init
comHeader
'sType