今回はSwiftUIにおける@ViewBuilderについて説明します。
環境
- Xcode13.4.1
@ViewBuilderとは
@ViewBuilder はSwiftUIが提供するResult Builderの一つです。これを使うことで複数のViewをTupleViewという一つの型にまとめてくれます。
使い方
Viewを返す関数を書く場合は以下のようになるかと思います。
func content() -> some View {
Text("テキスト")
}
上記のように1つのViewを返すだけなら問題ないのですが、複数のViewをまとめて返すことはできないので
func content() -> some View {
Group {
Text("テキスト")
Text("テキスト")
}
}
このようにGroupやStackを使って1つのViewにして返す必要があります。
しかし@ViewBuilderを使用すると以下のようにかけます。
@ViewBuilder
func content() -> some View {
Text("テキスト")
Text("テキスト")
}
無駄に1つのViewにすることなく複数のViewを返せるのでとても便利です。
コメント