【发布时间】:2019-11-01 15:44:14
【问题描述】:
我正在尝试使用 SwiftUI 创建一个计算器,我现在正在努力创建按钮网格以水平填充可用空间
现在我只是想让按钮填充一个高度和宽度相等的3 x 3 网格
根据this answer,我可以通过使用Spacer() 使它们具有相同的高度,但相同的宽度是我现在卡住的地方:
import SwiftUI
struct ContentView : View {
var body: some View {
VStack(alignment: .center, spacing: 50) {
HStack(alignment: .center, spacing: 50) {
Button(action: {}) {
Text("7")
Spacer()
}.background(Color.green)
Button(action: {}) {
Text("8")
Spacer()
}.background(Color.yellow)
Button(action: {}) {
Text("9")
Spacer()
}.background(Color.green)
}
HStack(alignment: .center, spacing: 50) {
Button(action: {}) {
Text("4")
Spacer()
}.background(Color.yellow)
Button(action: {}) {
Text("5")
Spacer()
}.background(Color.green)
Button(action: {}) {
Text("6")
Spacer()
}.background(Color.yellow)
}
HStack(alignment: .center, spacing: 50) {
Button(action: {}) {
Text("1")
Spacer()
}.background(Color.green)
Button(action: {}) {
Text("2")
Spacer()
}.background(Color.yellow)
Button(action: {}) {
Text("3")
Spacer()
}.background(Color.green)
}
}.aspectRatio(contentMode: .fill)
}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
这是我当前的输出与我想要的所需输出的示例。首先我尝试让按钮填充当前区域,稍后我将尝试让0 按钮填充 2 个单元格。
【问题讨论】: