Ios 如何将视图固定到屏幕边缘?

Ios 如何将视图固定到屏幕边缘?,ios,swift,swiftui,Ios,Swift,Swiftui,如何使用SwiftUI将视图(在本例中为标签/文本)固定到屏幕边缘?对于故事板,我只会使用AutoLayout,但这在SwiftUI中不可用 在视图中使用此修改器 .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) SwiftUI使用任何视图所需的最小空间,为了增加空间,您可以根据情况使用不同的方法。 此外,还可以使用relativeSize()修饰符,但当它工作时,我还

如何使用
SwiftUI
将视图(在本例中为标签/文本)固定到屏幕边缘?对于故事板,我只会使用
AutoLayout
,但这在
SwiftUI
中不可用


在视图中使用此修改器

  .frame(minWidth: 0, maxWidth: .infinity,
         minHeight: 0, maxHeight: .infinity)
SwiftUI使用任何视图所需的最小空间,为了增加空间,您可以根据情况使用不同的方法。
此外,还可以使用relativeSize()修饰符,但当它工作时,我还没有得到它

您可以将主要内容包装在一个名为
GeometryReader
的特殊容器中。它的默认大小与其父视图相同,因此如果它是根视图,它将像AutoLayout一样将内容固定到屏幕边缘

GeometryReader { in geometry
    YourContentView().frame(width: geometry.size.width, height: geometry.size.height)
}

你可以这样做

    VStack {
        HStack {
            Text("Label")
            Spacer()
        }
        Spacer()
    }

VStack
中的
Spacer
将确保
HStack
位于顶部,
HStack
中的
Spacer
将确保
Text
位于左侧。您也可以通过对齐来解决此问题。

如果有人在这里想找到从顶部固定视图x点的方法,您可以执行以下操作:

VStack {
        Spacer()
            .frame(height: 40)
        Text("Space me")
        Spacer()
    }

两个垫片都需要。如果您来自自动布局,这可能有点违反直觉,但实际上非常方便。VStack底部的垫片将从默认(即居中)y位置向顶部“推”VStack视图,直到其遇到阻力–默认情况下为安全区域的上边缘。然后,可以使用顶部间隔将静止点向下推x点,从而产生与自动布局的顶部约束类似的效果

您希望如何查看透明背景上的更改?:)调用背景修改器以在帧修改器之后更改颜色)您可以通过填充来完成此操作。你不需要垫片。