Как добавить пользовательский вид контейнера в SwiftUI - PullRequest
3 голосов
/ 10 июня 2019

Мне интересно, можете ли вы создать собственный контейнерный вид в SwiftUI.Я знаю, что вы можете создавать собственные представления контента, такие как Text(), но не был уверен, сможете ли вы воспроизвести функциональность, скажем, HStack { }

Что-то похожее на:

HGrid {
    Text("Lorem ipsum")
    Text("Lorem ipsum")
}

Где пользовательское представление контейнера (также известное как HGrid), скажем, добавит Spacer() между каждым добавленным компонентом.По существу, в качестве примера, перенесем его на:

HStack {
    Text("Lorem ipsum")
    Spacer()
    Text("Lorem ipsum")
}

1 Ответ

4 голосов
/ 10 июня 2019

SwiftUI реализует это с ViewBuilder @functionBuilder

struct HGrid <Content: View>: View {
    init(@ViewBuilder builder: () -> Content) {
        let content = builder()
        ...
    }
}

Смотри также

...