@ViewBuilderとは?

SwiftUI

今回は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を返せるのでとても便利です。

コメント