Выполнение действий / работа с жестами через Live Preview (SwiftUI) - PullRequest
0 голосов
/ 15 марта 2020

У меня есть CustomToggle, и я хочу проверить это через Live Preview. Проблема в том, что нажатие на переключатель через Live Preview ничего не делает, но хорошо работает при запуске Simulator.

struct CustomToggle: View {
    @Binding var isOn: Bool

    // ... displaying CustomToggle view
    // ... and toggling isON onTapGesture

}
struct CustomToggle_Previews: PreviewProvider {
    @State static var isOn = true
    static var previews: some View {
        CustomToggle(isOn: $isOn)
    }
}

1 Ответ

0 голосов
/ 15 марта 2020

Вы можете определить структуру для этой цели:

struct StatefulPreviewWrapper<Value, Content: View>: View {
    @State var value: Value
    var content: (Binding<Value>) -> Content

    var body: some View {
        content($value)
    }

    init(_ value: Value, content: @escaping (Binding<Value>) -> Content) {
        self._value = State(wrappedValue: value)
        self.content = content
    }
}

Затем используйте ее в вашем предварительном просмотре следующим образом:


struct CustomToggle_Previews: PreviewProvider {
    static var previews: some View {
        StatefulPreviewWrapper(false) { CustomToggle(isOn: $0) }
    }
}

...