SwiftUI - 如何增加 Toggle 的目标触摸大小?
SwiftUI - how to increase Toggle's target touch size?
出于可用性目的,我想增加 Toggle 的目标大小。
使用按钮很容易 .frame(width: 200, height: 200) 。但我不知道如何将其应用于切换。
这是我的代码。我已经标记了它可以工作的地方和不工作的地方。
import SwiftUI
struct ContentView: View {
@State private var test = true
var body: some View {
VStack {
Text("Hello, world!")
.padding()
Button(action: {
print("button pressed")
}) {
Image(systemName: "checkmark.circle.fill")
.font(.largeTitle)
// This works for Button
.frame(width: 200, height: 200)
}
Toggle(isOn: Binding<Bool>(
get: { test },
set: {
test = [=10=]
})) {
Text("Done")
}
// This doesn't work for Toggle
.frame(width: 200, height: 200)
.labelsHidden()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
您可以尝试这样的操作:
Toggle(isOn: Binding<Bool>(
get: { test },
set: {
test = [=10=]
})) {
Text("Done")
}
.frame(width: 200, height: 200)
.labelsHidden()
.contentShape(Rectangle())
.onTapGesture {
withAnimation {
test.toggle()
}
}
出于可用性目的,我想增加 Toggle 的目标大小。 使用按钮很容易 .frame(width: 200, height: 200) 。但我不知道如何将其应用于切换。
这是我的代码。我已经标记了它可以工作的地方和不工作的地方。
import SwiftUI
struct ContentView: View {
@State private var test = true
var body: some View {
VStack {
Text("Hello, world!")
.padding()
Button(action: {
print("button pressed")
}) {
Image(systemName: "checkmark.circle.fill")
.font(.largeTitle)
// This works for Button
.frame(width: 200, height: 200)
}
Toggle(isOn: Binding<Bool>(
get: { test },
set: {
test = [=10=]
})) {
Text("Done")
}
// This doesn't work for Toggle
.frame(width: 200, height: 200)
.labelsHidden()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
您可以尝试这样的操作:
Toggle(isOn: Binding<Bool>(
get: { test },
set: {
test = [=10=]
})) {
Text("Done")
}
.frame(width: 200, height: 200)
.labelsHidden()
.contentShape(Rectangle())
.onTapGesture {
withAnimation {
test.toggle()
}
}