在按钮中居中文本

Kel*_*Lau 1 swift swiftui

我有以下内容View:

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

这允许我创建以下 UI:

在此处输入图片说明

该Spacer内部的HStack和Button是一个不错的入侵,所作的按钮延伸到它的父的宽度。但是,文本仍然处于领先地位。

任何人都知道如何将按钮内的文本居中?

Joh*_*tty 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)
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)


JMi*_*uel 6

HStack {
  ...
  VStack {
    ...
    Button("Sign In") {
        model.signIn()
    }
    .frame(maxWidth: .infinity, alignment: .center).padding()
    .background(Color.green).cornerRadius(5)
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

  • 我不同意。这些代码非常简单,解释起来只会重复它。毕竟代码是通用语言。 (7认同)
  • 请不要仅发布代码作为答案,还要提供解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常质量更高,并且更有可能吸引点赞。 (2认同)