當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift Never overlay(_:ignoresSafeAreaEdges:)用法及代碼示例


實例方法

overlay(_:ignoresSafeAreaEdges:)

在此視圖前分層指定樣式。

聲明

func overlay<S>(
    _ style: S,
    ignoresSafeAreaEdges edges: Edge.Set = .all
) -> some View where S : ShapeStyle

返回值

在其前麵繪製的具有指定樣式的視圖。

參數

style

符合 ShapeStyle 的類型的實例,SwiftUI 在修改後的視圖前麵分層。

edges

添加覆蓋時忽略安全區域插圖的邊集。默認值為 Edge/Set/all 。指定一個空集以尊重所有邊上的安全區域插圖。

詳述

使用此修飾符在視圖前分層符合 ShapeStyle 協議的類型,例如 ColorMaterialHierarchicalShapeStyle 。例如,您可以將 ShapeStyle/ultraThinMaterial 覆蓋在 Circle 上:


struct CoveredCircle: View {
    var body: some View {
        Circle()
            .frame(width: 300, height: 200)
            .overlay(.ultraThinMaterial)
    }
}

SwiftUI 將樣式錨定到視圖的邊界。對於上麵的示例,疊加層填充了整個圓圈的框架(恰好比圓圈的高度更寬):

SwiftUI 還將樣式的範圍限製為視圖的 container-relative 形狀。如果您使用 View/containerShape(_:) 修飾符約束 CoveredCircle 視圖,您可以看到此效果:


CoveredCircle()
    .containerShape(RoundedRectangle(cornerRadius: 30))

疊加層采用指定的容器形狀:

默認情況下,覆蓋忽略所有邊上的安全區域插入,但您可以提供一組特定的邊來忽略,或者提供一個空集來尊重所有邊上的安全區域插入:


Rectangle()
    .overlay(
        .secondary,
        ignoresSafeAreaEdges: []) // Ignore no safe area insets.

如果要指定 View 或視圖堆棧作為覆蓋而不是樣式,請改用 View/overlay(alignment:content:)。如果要指定 Shape ,請使用 View/overlay(_:in:fillStyle:)

可用版本

iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Never overlay(_:ignoresSafeAreaEdges:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。