swiftui - 使用 SwiftUI GeometryReader 而不影响外框?

标签 swiftui

是否可以使用 GeometryReader以这样的方式,它不只是填满父 View ?

作为一个具体的例子,我想使用 .padding(.bottom, geometry.safeAreaInsets.bottom > 0 ? 0 : 12.0) 控制底部边距.这将使用安全区域作为 iPhone X 上的边距和旧设备上的自定义边距。

没有 GeometryReader我的 View 占用了适合其实际垂直尺寸的空间。对于阅读器, View 占据屏幕的 1/2。

    VStack {
      Spacer()
      GeometryReader { proxy in // Lays out nicely without this...
        HStack {
          Text("Wrong")
          Spacer()
        }.border(Color.gray, width: 1)
      }


Incorrect Layout Desired Layout

最佳答案

只需添加 .fixedSize() HStack 的修饰符。这将达到预期的效果。

关于swiftui - 使用 SwiftUI GeometryReader 而不影响外框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56524226/

相关文章:

swift - 如何为全局调用创建枚举预期的硬编码字符串

ios - 如何从 SwiftUI 的详细信息 View (编辑项目 View )中删除核心数据条目?

ios - 带有 PageTabViewStyle 的 TabView 上的edgesIgnoringSafeArea 不起作用

ios - 无法选择 SwiftUI TextField

swiftui - @state 变量更改后 View 不更新

swiftui - 选择器不可用。准备选取器时出错。请稍后再试

SwiftUI:如何让 TextField 成为第一响应者?

swiftui - 我怎样才能在 SwiftUI 中实现类似于 radiogroup 的一种可能选择

ios - SwiftUI 如何将 DatePicker 与 'TimeStamp' 类型的变量绑定(bind)?

swiftui-list - 我们如何在滑动列表 - SwiftUI 中添加两个自定义按钮?