maxWidth 无限失败 SwiftUI

maxWidth infinity failure SwiftUI

我有以下代码:

Button(action: {
                }, label: {
                    Text("Save".uppercased())
                        .foregroundColor(.white)
                        .font(.headline)
                        .background(Color.accentColor)
                        .frame(height: 55)
                        .frame(maxWidth: .infinity)
                        .cornerRadius(10)
                })
            }
            .padding(14)

我已经检查过了,显然遗漏了一些东西,因为最大宽度根本不起作用。该按钮仍然紧紧围绕着“SAVE”文本。我也试过手动调整宽度,但这并没有改变任何东西。

有什么建议吗?我是 运行 XCode 13.

视图修饰符中的顺序很重要 ;)
我想你想要这个:

            Text("Save".uppercased())
                .frame(maxWidth: .infinity)
                .frame(height: 55)
                .background(Color.accentColor)
                .cornerRadius(10)
            
                .foregroundColor(.white)
                .font(.headline)

文本本身的高度和宽度只是它需要的高度和宽度,所以首先框架定义大小,然后是该区域的背景颜色,然后是角半径。
前景色和字体可以随处使用。

您可以在预览中查看和检查许多(如果有效的话)效果,您可以在其中 select 单行代码并查看生成的帧。