我正在尝试创建2个等宽的按钮,两个按钮垂直放置。它看起来应该像这样:
我将2放置Buttons
在VStack
其中,它会自动扩展到较大按钮的宽度。我正在尝试做的是将按钮的宽度扩展为,以填充的宽度VStack
,但这是我得到的:
VStack(alignment: .center, spacing: 20) { NavigationLink(destination: CustomView()) { Text("Button") }.frame(height: 44) .background(Color.primary) Button(action: { self.isShowingAlert = true }) { Text("Another Button") }.frame(height: 44) .background(Color.primary) }.background(Color.secondary)
设置宽度将其VStack
展开,但是按钮无法展开以适合:
VStack(alignment: .center, spacing: 20) { ... }.frame(width: 320) .background(Color.secondary)
所以我的问题是:
除了手动设置布局中每个项目的框架外,还有其他方法吗?
我宁愿不必指定每一个,因为这将变得难以管理。
设置.infinity
为maxWidth
,该frame(minWidth: maxWidth: minHeight:)
API可用于使子视图展开以填充:
VStack(alignment: .center, spacing: 20) { NavigationLink(destination: CustomView()) { Text("Button") }.frame(minWidth: 100, maxWidth: .infinity, minHeight: 44) .background(Color.primary) Button(action: { self.isShowingAlert = true }) { Text("Another Button") }.frame(minWidth: 100, maxWidth: .infinity, minHeight: 44) .background(Color.primary) }.frame(width: 340) .background(Color.secondary)