Я хочу отображать определенную форму в приложении на основе выбранного значения Picker
. Однако когда я переключаюсь на сегментированный элемент управления достаточно быстро (здесь это кажется вынужденным, но когда форма более сложная, это очень заметно). Изменить: похоже, это происходит со всеми View
s, а не только с формами.
import SwiftUI
struct ContentView: View {
@State private var calculationType = CalculationType.months
@State private var balanceOwned: String = ""
var body: some View {
VStack {
Picker("Calculation Type", selection: $calculationType) {
ForEach(CalculationType.allCases, id: \.self) {
Text($0.rawValue.capitalized)
}
}.pickerStyle(SegmentedPickerStyle())
// This check seems to be the cause of the problem!
if calculationType == .months {
CustomForm(balanceOwned: $balanceOwned)
} else if calculationType == .fixed {
CustomForm(balanceOwned: $balanceOwned)
} else {
CustomForm(balanceOwned: $balanceOwned)
}
}
}
}
struct CustomForm: View {
@Binding var balanceOwned: String
var body: some View {
Form {
Section {
TextField("Test", text: $balanceOwned)
.foregroundColor(.white)
}
}
}
}
enum CalculationType: String, CaseIterable {
case months
case fixed
case minimum
}
Все, что находится внутри формы, мерцает. Как исправить?