In SwiftUI, How do I increase the height of a button?

前端 未结 4 837
青春惊慌失措
青春惊慌失措 2020-12-06 11:01

As you can see in the screenshot, the button height does not adjust to fit the text size, making it look ugly. How can I increase the hight of the buttons, so it does not lo

相关标签:
4条回答
  • 2020-12-06 11:36

    Use simpler initializer if you need only a title for your Button:

    Button("Click me") {
        // Perform action here
    }
    .frame(width: 100, height: 100)
    .background(Color.yellow)
    

    Note that frame modifier must come before background to make it looks larger. Otherwise, you can't see the difference.

    0 讨论(0)
  • 2020-12-06 11:40

    Please try below Code:

    Button(action: {
           //do action       
    }) {
        Text("SIGN IN")
            .frame(width: 200 , height: 50, alignment: .center)
            //You need to change height & width as per your requirement
    }
     .background(Color.blue)
     .foregroundColor(Color.white)
     .cornerRadius(5)
    

    Output

    0 讨论(0)
  • 2020-12-06 11:43

    You just need to set PlainButtonStyle and draw it as you wish...

    Here is for example one of your button:

    Button(action: {
    
    }) {
        Text("Singleplayer").font(.system(size: geometry.size.width/20))
            .padding()
            .background(RoundedRectangle(cornerRadius: 8).fill(Color.blue))
            .frame(minWidth: geometry.size.width/2)
    }
    .buttonStyle(PlainButtonStyle())
    

    custom button

    0 讨论(0)
  • 2020-12-06 11:43

    You need to change height of the stack

    struct ContentView: View {
    
       @State private var arr = ["String"]
    
        var body: some View {
    
             GeometryReader { geometry in
                    VStack (spacing: 8) {
                        Text("[Name not disclosed]Craft").font(.system(size: geometry.size.width/8))
                        Button(action: {
    
                        }) {
                            Text("Singleplayer").font(.system(size: geometry.size.width/20))
                                .frame(minWidth: geometry.size.width/2)
                        }
                        Button(action: {
    
                        }) {
                            Text("Multiplayer").font(.system(size: geometry.size.width/20))
                                .frame(minWidth: geometry.size.width/2)
                        }
                        HStack (spacing: 8) {
                            Button(action: {
    
                            }) {
                                Text("Options").font(.system(size: geometry.size.width/20))
                                    .frame(minWidth: (geometry.size.width/4)-16)
                            }
                            Button(action: {
                                exit(EXIT_SUCCESS);
                            }) {
                                Text("Quit Game").font(.system(size: geometry.size.width/20))
                                    .frame(minWidth: (geometry.size.width/4)-16)
                                }
                        } .frame(width: 100, height: 100, alignment: .leading) .background(Color.red)
                    }
                }
        }
    }
    
    0 讨论(0)
提交回复
热议问题