Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SwiftUI中增加按钮的大小?(多平台项目)_Swiftui - Fatal编程技术网

如何在SwiftUI中增加按钮的大小?(多平台项目)

如何在SwiftUI中增加按钮的大小?(多平台项目),swiftui,Swiftui,我正在尝试在多平台项目中增加SwiftUI中的按钮(Xcode 12.5)的大小: Button("Click me") { // Perform action here } .frame(width: 100, height: 100) .background(Color.yellow) .buttonStyle(BorderlessButtonStyle()) 检查后,我发现我可以样

我正在尝试在多平台项目中增加SwiftUI中的按钮(Xcode 12.5)的大小:

Button("Click me") {
            // Perform action here
        }
        .frame(width: 100, height: 100)
        .background(Color.yellow)
        .buttonStyle(BorderlessButtonStyle())
检查后,我发现我可以样式的按钮,但我不能想出如何使点击框更大。因此,整个黄色框架接收单击操作,而不仅仅是标签

编辑:

抽头区域问题在这里得到了很好的解释:

但解决方案是在按钮中添加一个元素,并改变按钮的大小,这只在iOS项目中起作用。在多平台项目中,按钮的框架大小错误:


该按钮无法识别该位置上的修改器。解决办法是:

        Button(action: {}, label: {
            Text("Click me")
                .frame(width: 100, height: 100)
                .background(Color.yellow)
        })

这里有一个可能的解决方案

适用于iOS

适用于macOS(macOS版本也适用于iOS版本)


我发现,添加contentShape似乎可以解决这个问题:

Button(action: doSomething) {
        Text("Click me")
           .frame(width: 100, height: 100)
           .contentShape(Rectangle())
    }
    .background(Color.yellow)
    .buttonStyle(PlainButtonStyle())

使用比例效应,但我仍然不清楚你到底需要什么。我想要按钮啤酒。令人沮丧的是,在当前版本中,这是多么困难。因为旧版本中的所有示例都不起作用。比例效应确实产生了一个不同的问题。我将把它添加到问题中。我还发现了一个在当前版本中有效的答案。可能是
.buttonStyle(PlainButtonStyle())
-它去掉了所有默认样式。您测试过这个吗?与大多数其他解决方案一样,此解决方案的填充错误。这将导致我发布的第二张图像。@kiatra,在iOS中测试没有问题。你是想在macOS中实现这一点吗?@Seugjun,我已经在一个多平台项目中进行了测试。您的回答是正确的,它确实在iOS平台项目中起作用。@kiatra hi我更新了我的答案,将macOS也包括在内,您能再次检查吗?此解决方案仅在iOS上起作用。我编辑了这个问题,补充说我做了一个多平台项目。
 Button(action: {
                //add actions at here
            }) {
                VStack {
                    Text("Name")
                }.frame(width: 100, height: 100)
                .background(Color.yellow)
                .cornerRadius(20)
                
            }
struct ContentView: View {
  
    var body: some View {
        VStack{
         
            
            Button(action: {
                //add actions at here
            }) {
                VStack {
                    Text("Button Name")
                }.frame(width: 100, height: 100)
                .background(Color.yellow)
                .cornerRadius(20)
                
            }.buttonStyle(CustomButtonStyle())
        }
    }
}

struct CustomButtonStyle: ButtonStyle {
    func makeBody(configuration: Self.Configuration) -> some View {
        configuration.label
            .foregroundColor(Color.blue)
            .cornerRadius(10.0)
            .padding()
    }
}
Button(action: doSomething) {
        Text("Click me")
           .frame(width: 100, height: 100)
           .contentShape(Rectangle())
    }
    .background(Color.yellow)
    .buttonStyle(PlainButtonStyle())