【问题标题】:View going under Status Bar in SwiftUI在 SwiftUI 的状态栏下查看
【发布时间】:2021-06-21 07:02:17
【问题描述】:

使用 ScrollView 时,如何停止 SwiftUI 中的视图进入状态栏下方?我已经尝试在状态栏下直接放置一个视图,但是没有效果。

我没有在任何地方使用 .edgesIgnoringSafeArea。

我的代码:

ScrollView {
    HStack {
        Spacer()
        Text("ScrollMe")
            .padding()
    }
}

截图:

【问题讨论】:

  • 你能显示那个代码吗?
  • 您在某处使用.edgesIgnoringSafeArea 吗?这会导致这种情况发生。
  • @jnpdx 不,我没有使用.edgesIgnoringSafeArea

标签: swift view swiftui statusbar


【解决方案1】:

您必须添加约束以分别为每个设备布局视图。你可以像这张图片那样做,然后它将有空间(f.e. 240)到你选择的视口:

yourView.heightAnchor.constraint(equalToConstant: 240)

【讨论】:

  • 使用约束并不意味着您必须为每个设备专门设置它们(请参阅stackoverflow.com/questions/46317061/…)。此外,OP 还专门询问了 SwiftUI,它不使用这样的约束。
【解决方案2】:

这是ScrollView 将屏幕滚动到安全区域插图的预期行为。

如果您真的想避免这种行为,您需要其他一些高度非零且位于安全区域下方的临时视图。比如修改你的代码:

struct ContentView: View {
    var body: some View {
        VStack {
            Spacer().frame(height: 1)
            ScrollView {
                HStack {
                    Spacer()
                    Text("ScrollMe")
                        .padding()
                }
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 2013-09-30
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 2015-02-05
    • 1970-01-01
    相关资源
    最近更新 更多