SwiftUI:设置工作表呈现 View 的背景颜色

标签 swift swiftui

有没有办法可以指定用于在 SwiftUI 中显示工作表的 View 的背景颜色?我知道我可以在我的 View 上设置 .background,但在 iPhone X 上这不会影响安全区域。我还可以使用 .edgesIgnoringSafeArea 来填充该区域,但我不想弄乱它。

enter image description here

最佳答案

最后你需要处理 edgesIgnoringSafeArea 因为你需要超出安全区域(你必须在 UIKit 中做同样的事情)。重要的是,您只忽略背景的安全区域。因此,就 SwiftUI 而言,您只需将 edgesIgnoringSafeArea 应用于传递给 background 的 View :

struct ContentView: View {
    var body: some View {
        VStack {
            Text("hey there")
            Text("Another line")
        }.background(Color.blue.edgesIgnoringSafeArea(.all))
    }
}

但是,这要求您使用 background 的 View 已经请求所有可用空间(上面的示例代码中的情况并非如此),因为背景仅绘制 View 的背景并且不会自行填满屏幕。如果您不是这种情况,您需要使用例如ZStackyour answer 所示.

关于SwiftUI:设置工作表呈现 View 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57300262/

相关文章:

ios - 在准备 Segue 中实例化的变量在 ViewDidLoad 中具有 nil 属性

ios - Swift 3 UIScrollview 不要求缩放

ios - 使用 SwiftUI 在不同的 UI 层次结构之间切换的正确方法是什么?

ios - 我可以创建一个可以被多个 ContentView 使用的通用 ObservableObject 类吗?

ios - WKWebView 在 iPad 上水平滚动

ios - iPhone X 键盘出现显示额外的空间

iOS - 在 Swift 中的 UIImage 上绘制矩形 (CGRect) 无法正常工作

swiftui - 如何从 SwiftUI 中的 NavigationView 中删除搜索栏?

ios - 清除 Swift UI 和 ObservableObject 对象数据

ios - 类型 'any View' 不能符合泛型协议(protocol)上的 'View'