Используя средство выбора, встроенное в форму и NavigationView, я могу использовать средство выбора, чтобы выбрать элемент один раз, но при нажатии на него впоследствии оно становится серым. Ниже приведен мой код в ContentView.swift
.
var body: some View {
NavigationView {
Form {
Section {
Picker(selection: $selectedType, label: Text("Type")) {
ForEach(0..<types.count) {
Text(self.types[$0])
}
}
}
Section {
TextField("Author", text: $quotee)
TextField("Quote", text: $content)
}
}
}
}
Снимок экрана проблемы в симуляторе
При втором нажатии (тот, который его серый), следующий в консоли регистрируется ошибка:
2020-03-07 17: 18: 13.037229 + 0800 Quotable [5645: 286914] [TableView] Только предупреждение только один раз: UITableView было сказано разметить его видимые ячейки и другое содержимое, не входящее в иерархию представлений (табличное представление или одно из его суперпредставлений не было добавлено в окно). Это может привести к ошибкам, заставляя представления внутри табличного представления загружаться и выполнять компоновку без точной информации (например, границ табличного представления, сбора признаков, полей макета, вставок безопасной области и т. Д. c), а также приведет к ненужным потерям производительности из-за дополнительные макеты проходит. Создайте символьную c точку останова в UITableViewAlertForLayoutOutsideViewHierarchy, чтобы перехватить это в отладчике и посмотреть, что вызвало это, так что вы можете вообще избежать этого действия, если это возможно, или отложить его, пока представление таблицы не будет добавлено в окно. Представление таблицы: <_TtC7SwiftUIP33_BFB370BA5F1BADDC9D83021565761A4925UpdateCoalescingTableView: 0x7ffe2f9ab000; baseClass = UITableView; кадр = (0 0; 414 842); clipsToBounds = YES; авторазмер = W + H; жестRecognizers =; слой =; contentOffset: {0, -108}; contentSize: {414, 249.66666666666671}; AdjustContentInset: {108, 0, 34, 0}; dataSource: <_TtGC7SwiftUIP13 $ 7fff2c69da4419ListCoreCoordinatorGVS_20SystemListDataSourceOs5Never_GOS_19SelectionManagerBoxS2 ___: 0x7ffe2ece5420 >>
*1013* *1013* не может выдать это тестирование, если я не могу это проверить, это не так