Как реализовать собственный стек компоновки, чтобы брать дочерние элементы вместо параметра в SwiftUI? - PullRequest
0 голосов
/ 20 марта 2020

Я новичок в разработке iOS, поэтому заранее прошу прощения за неправильную терминологию.

Я реализовал пользовательский макет, используя комбинацию VStacks и HStacks, и он отлично работает. Однако я хотел бы сделать generic c и использовать его повторно.

Вот что я сейчас делаю:

UniformGrid(rows: 5, columns: 5, content: [String])

Проблема в том, что я жестко запрограммировал то, что ребенок взгляды есть.

То, что я хочу, это:

UniformGrid(rows: 5, columns: 5) {
     Text("Dogs")
     Image("cats")
     ...
}

Может кто-нибудь дать мне какое-то руководство о том, как этого добиться?

1 Ответ

0 голосов
/ 20 марта 2020

Вы можете использовать этот способ:

struct UniformGrid <Content>: View where Content: View {

    let content: () -> Content
    var row: Int
    var column: Int

    init(row: Int, column: Int, @ViewBuilder content: @escaping () -> Content) {
        self.content = content
        self.row = row
        self.column = column
    }

    var body: some View {
        content()
    }
}

В вашем root представлении:

struct ContentView: View {

    var body: some View {
        UniformGrid(row: 5, column: 5) {
            Text("")
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...