Не получил событие конца прокрутки карты в SwiftUI
Мы используем функциональность карты с аннотациями.
Функциональность: у нас есть 2000 записей в массиве, но нам нужно отфильтровать 150 записей в соответствии с регионом, измененным на карте в SwiftUI. Но в SwiftUI нет события конца прокрутки карты.
Мы использовали приведенный ниже код
Map(coordinateRegion: self.$viewModel.region, interactionModes: [.all], annotationItems: self.viewModel.mapLocations), annotationContent: { pin in
}
Мы получили последний обновленный регион в .onChange(of: viewModel.region) }. Но мы не получили событие окончания прокрутки карты. Мы помещаем код в onChange(of), но он отстает при прокрутке. Итак, это не сработало для нас.
Также. Мы попробовали Drag-Gesture, но это не сработало.
.gesture(DragGesture()
.onEnded { value in
//Did not getting this event while map scroll end
})
1 ответ
SwiftUI обычно не работает должным образом при попытке переопределить жесты для встроенных представлений, особенно сMap
Combine
с.debounce
обычно является лучшим решением, когда речь идет о фильтрации, основанной на быстром изменении@Published
как регион