構造体
ViewBuilder
クロージャからビューを構築するカスタムパラメータ属性。
宣言
@resultBuilder struct ViewBuilder
概観
通常、子ビューを生成するクロージャパラメータのパラメータ属性として ViewBuilder を使用して、これらのクロージャが複数の子ビューを提供できるようにします。たとえば、以下の contextMenu 関数は、ビュービルダーを介して 1 つ以上のビューを生成するクロージャを受け入れます。
func contextMenu<MenuItems: View>(
@ViewBuilder menuItems: () -> MenuItem
) -> some View
この関数のクライアントは、以下の例に示すように、複数文のクロージャを使用して、いくつかの子ビューを提供できます。
myView.contextMenu {
}
トピックス
ブロックのビルド
static func buildBlock() -> EmptyView
文をまったく含まないブロックから空のビューを作成します。
static func buildBlock<Content>(Content) -> Content
子ビューとして記述された単一のビューを変更せずに渡します。
static func buildBlock<C0, C1>(C0, C1) -> TupleView<(C0, C1)>
static func buildBlock<C0, C1, C2>(C0, C1, C2) -> TupleView<(C0, C1, C2)>
static func buildBlock<C0, C1, C2, C3>(C0, C1, C2, C3) -> TupleView<(C0, C1, C2, C3)>
複数文のクロージャ内の "if" 文のサポートを提供し、"then" 分岐の条件付きコンテンツを生成します。
複数文のクロージャ内の "if-else" 文のサポートを提供し、"else" 分岐の条件付きコンテンツを生成します。
static func buildIf<Content>(Content?) -> Content?
複数文のクロージャ内の "if" 文のサポートを提供し、条件が true と評価された場合にのみ表示されるオプションのビューを生成します。
型メソッド
static func buildLimitedAvailability<Content>(Content) -> AnyView
複数文のクロージャ内で #available() 句を使用した "if" 文のサポートを提供し、"then" 分岐、すなわち条件付きで利用可能な分岐の条件付きコンテンツを生成します。
以下も見よ
カスタムビューの実装
ビューのコンテンツと動作。
必須。 デフォルトの実装が提供されます。
このビューの本体を表すビューの型。
必須。
Previews in Xcode (Xcode でのプレビュー)
カスタムビューの動的でインタラクティブなプレビューを生成します。