Swiftui, передавая представление в виде параметров в @ViewBuilderIOS

Программируем под IOS
Anonymous
Swiftui, передавая представление в виде параметров в @ViewBuilder

Сообщение Anonymous »

Мое любопытство заставляет меня передать представление тип как параметр @ViewBuilder . Передача модели/примитивный тип как парамец в @viewbuilder совершенно действителен.
Как показано ниже код.

Код: Выделить всё

struct TestView: View {

let content: (String) -> Content

init(@ViewBuilder content: @escaping (String) -> Content) {
self.content = content
}

var body: some View {
content("Some text")
}
}

struct ContentTestView: View {

var body: some View {
TestView {
Text("\($0)")
}
}
}
вместо строки в

Код: Выделить всё

let content: (String) -> Content
Если я попытаюсь передать тип Swiftui , то компилятор недоволен этим.

Код: Выделить всё

let content: (View) -> Content
Несмотря на то, что параметры для @viewbuilder принимают пользовательский тип протокола, например, поиск , но не просмотр Protocol.
Компилятор Скажите мне, что этот протокол «представление» может использоваться только в качестве общего ограничения, поскольку он имеет требования к себе или связанный тип
Вся моя идея заключается в том, что контент Может быть разрешено удерживать раздел/список/текст в нем.

Код: Выделить всё

struct TestView: View {

let content: (View) -> Content

init(@ViewBuilder content: @escaping (View) -> Content) {
self.content = content
}

var body: some View {
content(
List {
ForEach(0.. _ in

Section(header: Text("Header goes here")) {
viewbody
}
}
}
}
В любом случае, могу ли я это достичь?

Подробнее здесь: https://stackoverflow.com/questions/643 ... iewbuilder

Вернуться в «IOS»