Похоже, все должно быть просто.
Button(action: {
}){
ZStack{
Circle()
.frame(width: 100, height: 100)
.foregroundColor(.blue)
Text("Press me")
}
}
Это дает мне:
Я могу нажать только на часть прямоугольника. Также бонусные баллы, если вы можете указать, почему круг обрезан
РЕДАКТИРОВАТЬ: Оказывается, это проблема с MacO.
Проблема с кнопками в SwiftUI на MacOS
РЕДАКТИРОВАТЬ 2: Как Asmari упоминает ниже, вы можете использовать PlainButtonStyle:
var body: some View {
VStack{
Button(action: {
print("Pressed!")
}){
Text("Press me")
.frame(width: 100, height: 100)
.foregroundColor(Color.black)
.background(Color.red)
.clipShape(Circle())
}.buttonStyle(PlainButtonStyle())
}.frame(width: 300, height: 500)
}
}
или использовать собственный стиль:
struct BlueButtonStyle: ButtonStyle {
func makeBody(configuration: Self.Configuration) -> some View {
configuration.label
.frame(width: 100, height: 100)
.foregroundColor(Color.black)
.background(Color.red)
.clipShape(Circle())
}
}
struct ContentView: View {
var body: some View {
VStack{
Button(action: {
print("Pressed!")
}){
Text("Press me")
}.buttonStyle(BlueButtonStyle())
}.frame(width: 300, height: 500)
}
}