SwiftUI 按钮大小/形状/颜色不变

Posted

技术标签:

【中文标题】SwiftUI 按钮大小/形状/颜色不变【英文标题】:SwiftUI Button Size/Shape/Color Not Changing 【发布时间】:2021-03-02 07:38:59 【问题描述】:

我正在尝试使用 SwiftUI 为 MacOS 应用程序制作自定义按钮,但是,我似乎无法调整按钮区域的大小,并且按钮的颜色似乎无法更改。我在网上找到的所有示例都说使用 .frame 或 .padding 来设置宽度和高度,但这不会改变按钮的形状。有没有其他人在开发 MacOS 应用程序时遇到过这种情况? Image of button here

struct customButton: View 
    var body: some View 

        Button(action: 
            print("Delete button tapped!")
        ) 
            HStack 
                Image(systemName: "trash")
                    .resizable()
                    .scaledToFit()
                    .imageScale(.large)
                Text("Delete")
            
            .padding()
            .background(
                Capsule().strokeBorder(Color.white, lineWidth: 1.25)
            )
        
        .accentColor(Color.white)
        
    

【问题讨论】:

这能回答你的问题吗? Matching parent's width on ios works but doesn't work on Mac OS (SwiftUI) 【参考方案1】:

您必须使用 .buttonStyle(PlainButtonStyle()) 来摆脱默认按钮 UI。

Button(action: 
    print("Delete button tapped!")
) 
    HStack 
        Image(systemName: "trash")
            .resizable()
            .scaledToFit()
            .imageScale(.large)
        Text("Delete")
    
    .padding()
    .background(
        Capsule().strokeBorder(Color.white, lineWidth: 1.25)
    )

.accentColor(Color.white)
.buttonStyle(PlainButtonStyle())

【讨论】:

非常感谢!我一直在努力寻找解决文档的方法。这个问题已经困扰了我好几个星期了

以上是关于SwiftUI 按钮大小/形状/颜色不变的主要内容,如果未能解决你的问题,请参考以下文章

Android - 可绘制形状样式中的多种颜色和大小

SwiftUI:列表的背景颜色不变

如何修改拖放预览SwiftUI的背景颜色和形状?

在swift UI中点击按钮时如何更改背景颜色和图像?

Swift UI笔记

如何使用 Swift 5 在 SwiftUI 中将颜色与 RGB 或十六进制值一起使用? [复制]