1

我有以下内容View

HStack {
  ...
  VStack {
    ...
    Button(action: model.signIn) {
      HStack {
        Text("Sign In")
        Spacer()
      }
    }.relativeHeight(2).background(Color.green).cornerRadius(5)
  }
  ...
}

这允许我创建以下 UI:

在此处输入图像描述

内部Spacer和是一个很好的技巧HStackButton使按钮扩展到其父级的宽度。但是,文本仍然处于领先地位。

任何人都知道在按钮内居中文本的方法吗?

4

2 回答 2

6

你可以通过两种方式

  1. 删除Spacer文本后面的 - 这将缩小按钮以匹配 txt 大小。
  2. Spacer在文本之前添加一个。喜欢

代码:

HStack {
  ...
  VStack {
    ...
    Button(action: model.signIn) {
      HStack {
        Spacer()
        Text("Sign In")
        Spacer()
      }
    }.relativeHeight(2).background(Color.green).cornerRadius(5)
  }
  ...
}
于 2019-06-06T14:23:54.617 回答
3
HStack {
  ...
  VStack {
    ...
    Button("Sign In") {
        model.signIn()
    }
    .frame(maxWidth: .infinity, alignment: .center).padding()
    .background(Color.green).cornerRadius(5)
  }
  ...
}
于 2020-04-10T11:29:56.460 回答