У меня есть список с выбором строк и панель поиска. Панель поиска замораживает список , но я исправил это, используя id(UUID())
Это создало еще одну проблему, в которой, когда пользователь нажимает на строку, прокрутка переходит наверх . Иногда при выборе нескольких строк вылетает с этой ошибкой: precondition failure: attribute failed to set an initial value: 96
struct ContentView: View {
@ObservedObject var viewModel = ViewModel()
@State private var searchText: String = ""
@State private var selected = Set<Model>()
var body: some View {
VStack {
SearchBar(text: $searchText, placeholder: "Search")
List(
viewModel.strings.filter({ searchText.isEmpty ? true : $0.title.lowercased().contains(searchText.lowercased()) })
, selection: $selected) { model in
MultipleSelectionRow(selectedItems: self.$selected, model: model)
}
.id(UUID()) /// This line causes strange behaviour.
}
}
}
Полный проект доступен на GitLab с другими скринкастами и файлами, такими как выбор view, панель поиска и viewModel. ![Screencast shows jumping scroll view](https://i.stack.imgur.com/2oybe.gif)