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
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.
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
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())
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)
}
}
}
}