当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Optional 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大神的英文原创作品 Optional overlay(_:ignoresSafeAreaEdges:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。