Я ищу способ удалить метку Toggle
в SwiftUI ...
Я пробовал с ToggleStyle
, но, похоже, это не правильный путь:
Toggle(isOn: $isBlinky) {
Text("DO NOT DISPLAY").color(.red)
}
.toggleStyle(.switch)
Поскольку метка, кажется, включена в сам тип (struct Toggle<Label>
), возможно, не будет способа иметь только один переключатель ...
Кстати, если я использую Text("")
, а затем scaledToFit()
переключатель все еще немного вправо и не в самом центре ...
В любом случае, если у кого-то есть идея!
PS: В ожидании решения я завернул старый добрый UISwitch
, но это не идея ...
struct Switch : UIViewRepresentable {
@Binding var isOn : Bool
func makeUIView(context: Context) -> UISwitch {
let uiView = UISwitch()
uiView.addTarget(
context.coordinator,
action: #selector(Coordinator.didChange(sender:)),
for: .valueChanged)
return uiView
}
func updateUIView(_ uiView: UISwitch, context: Context) {
uiView.isOn = isOn
}
// MARK:- Coordinator
func makeCoordinator() -> Switch.Coordinator {
return Coordinator(self)
}
class Coordinator: NSObject {
var control: Switch
init(_ control: Switch) {
self.control = control
}
@objc func didChange(sender: UISwitch) {
control.isOn = sender.isOn
}
}
}