swift - 使用 SwiftUI 调整宽度/水平对齐

标签 swift swiftui

我在 SwiftUI 中实现了以下布局:

VStack {
  TextField(...)
  TextField(...)
  Button(...)
}

enter image description here

我试着让我的 VStack 成为父 View 的 50%,所以我添加了以下修饰符:

VStack { ... }
  .relativeWidth(0.5)

enter image description here

不是 50% 的 super View ,但我更感兴趣的是实现水平居中。有人知道如何在 SwiftUI 中实现这一点吗?

有一个可用的 alignmentGuide(_:computeValue:) 修饰符,但我正在努力提供正确的输入以满足编译器的要求。

最佳答案

我会使用一些垫片和 HStack ...

struct LoginView: View {

    @State var myText: String = ""

    var body: some View {
        HStack {
            Spacer()
            VStack {
                TextField($myText, placeholder: Text("Email"))
                    .textFieldStyle(.roundedBorder)
                    .textContentType(.username)

                TextField($myText, placeholder: Text("Password"))
                    .textFieldStyle(.roundedBorder)
                    .textContentType(.password)

                Button(action: {
                    // Do your login thing here
                }) {
                    Text("Login")
                }
            }
             Spacer()
        }
    }
}

关于swift - 使用 SwiftUI 调整宽度/水平对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56469743/

相关文章:

ios - 在 UIScrollView 中调整 View 大小

ios - 可选类型 UILabel 的值未展开。

swift - 核心数据插入 block UI

ios - 如何在 SwiftUI 中使用图像 CDN?

state - 如何在 SwiftUI 的 init 函数中初始化 @State 变量?

ios - 拖动手势的单元格将覆盖使用SwiftUI滚动列表

ios - 如何在不声明的情况下保留 [x]-数量的 viewController 的引用

按属性快速排序对象

ios - 在大标题模式下获取或设置导航标题的前导间距 - SwiftUI

swift - 如何在 SwiftUI 上使 LongPressGesture 失败