元のドキュメント: developer.apple.com/documentation/swiftui/material


構造体


Material


背景素材の型。


iOS 15.0+ iPadOS 15.0+ Mac Catalyst 15.0 macOS 12.0+

tvOS 15.0 VisionOS 1.0+ WatchOS 8.0+

struct Material




概観


別のビューの背後に表示されるビューにぼかし効果を適用するには、background(_:ignoresSafeAreaEdges:) 修飾子を持つ material (素材) を追加します。


ZStack {
    Color.teal
    Label("Flag", systemImage: "flag.fill")
        .padding()
        .background(.regularMaterial)
}

上記の例では、ZStack によって Labelteal 色の上に重ねられています。背景修飾子は、ラベルの下に通常の素材を挿入し、ラベル(パディングを含む)が覆う背景部分をぼかします。



material (素材) はビューではありませんが、material を追加することは、変更されたビューとその背景の間に半透明の層を挿入するようなものです。



この素材によるぼかし効果は、単純な不透明度を加えることではありません。プラットフォーム固有のブレンド処理を用いることで、曇りガラスのような効果を生み出しています。複雑な背景、例えば以下のような画像で、この効果がより分かりやすくなります。


ZStack {
    Image("chili_peppers")
        .resizable()
        .aspectRatio(contentMode: .fit)
    Label("Flag", systemImage: "flag.fill")
        .padding()
        .background(.regularMaterial)
}


実際の素材の場合、背景色が透過する度合いは厚みによって決まります。また、明暗の見え方によっても効果は変化します。



素材に特定の形状を持たせる必要がある場合は、background(_:in:fillStyle:) 修飾子を使用できます。たとえば、角が丸い素材を作成できます。


ZStack {
    Color.teal
    Label("Flag", systemImage: "flag.fill")
        .padding()
        .background(.regularMaterial, in: RoundedRectangle(cornerRadius: 8))
}


素材を追加すると、前景要素に鮮やかさが現れます。これは、前景と背景の色が文脈に応じてブレンドされ、コントラストが向上します。しかし、foregroundStyle(_:) を使用してカスタムの前景スタイルを設定すると(secondary などの階層スタイルを除く)、鮮やかさは無効になります。


注意


素材は、アプリの一部である背景をぼかしますが、画面上でアプリの背後に表示されるものには影響しません。たとえば、ホーム画面上のコンテンツはウィジェットの外観に影響を与えません。




トピックス


素材の型の取得


static let ultraThin: Material

ほぼ半透明な素材。


static let thin: Material

不透明というよりは透明に近い素材。


static let regular: Material

やや透明な素材。


static let thick: Material

透明というよりは不透明に近い素材。


static let ultraThick: Material

ほぼ不透明な素材。


static let bar: Material

システムツールバーのスタイルにマッチする素材。


インスタンスメソッド


func materialActiveAppearance(MaterialActiveAppearance) -> Material

この素材に対して、明示的なアクティブな外観を設定します。





関連


以下に準拠


Sendable

SendableMetatype

ShapeStyle

View




以下も見よ


サポートする型


struct AngularGradient

角度のグラデーション。


struct EllipticalGradient

楕円を描く放射状グラデーション。


struct LinearGradient

線形のグラデーション。


struct RadialGradient

放射状のグラデーション。


struct ImagePaint

画像の領域を繰り返して形状を塗りつぶす形状スタイル。


struct HierarchicalShapeStyle

番号付きのコンテンツスタイルのいずれかに対応する形状スタイル。


struct HierarchicalShapeStyleModifier

階層構造を持つ形状に適用できるスタイル。


struct ForegroundStyle

現在の文脈における前景のスタイル。


struct BackgroundStyle

現在の状況における背景のスタイル。


struct SelectionShapeStyle

プラットフォームの慣習的な色や動作に従って、選択状態を視覚的に示すために使用されるスタイル。


struct SeparatorShapeStyle

前景の区切り線や境界線に適したスタイル。


struct TintShapeStyle

現在の tint 色を反映したスタイル。


struct FillShapeStyle

上塗り塗りつぶしの 1 つを表示する形状スタイル。


struct LinkShapeStyle

リンクに適したスタイル。


struct PlaceholderTextShapeStyle

プレースホルダーテキストに適したスタイル。


struct WindowBackgroundShapeStyle

要素が配置されているウィンドウの背景色に合わせるべき要素に適したスタイル。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ