SwiftUI ScrollView Refreshable не работает должным образом ⇐ IOS
-
Anonymous
SwiftUI ScrollView Refreshable не работает должным образом
Я занимаюсь разработкой для iOS версии 16.0, и у меня возникла проблема с обновлением прокрутки в SwiftUI. Я хочу обновить и перезагрузить данные для ScrollView из CoreData, и код ScrollView написан следующим образом.
ScrollView { Разделитель() .frame(высота: 50) ForEach(viewModel.insightList, id: \.self) { InsightData в InsightListCardView (viewModel: InsightListCardViewModel (insight: InsightData)) } } .обновляемый { viewModel.getInsightList() } И функция getInsightList() вызывает только одну функцию, которая приведена ниже.
func getAllInsights() -> [InsightData] { пусть fetchRequest: NSFetchRequest = InsightData.fetchRequest() пусть результат = попробовать? context.fetch(fetchRequest) вернуть результат?.reversed() ?? [] } И проблема вот в чем. Когда я пытаюсь обновить прокрутку с помощью вытягивания, содержимое прокрутки перемещается вниз. Начальная позиция индикатора прокрутки также перемещается вниз, но не вся высота прокрутки уменьшается, поэтому доступна прокрутка вверх.
Самое странное здесь. Когда я проверяю иерархию представлений, перемещается только экран, а фактические компоненты остаются в соответствующем положении. Кнопки работают не тогда, когда я нажимаю на позицию на экране, а когда я нажимаю на исходную позицию.
скриншоты симулятора
Я занимаюсь разработкой для iOS версии 16.0, и у меня возникла проблема с обновлением прокрутки в SwiftUI. Я хочу обновить и перезагрузить данные для ScrollView из CoreData, и код ScrollView написан следующим образом.
ScrollView { Разделитель() .frame(высота: 50) ForEach(viewModel.insightList, id: \.self) { InsightData в InsightListCardView (viewModel: InsightListCardViewModel (insight: InsightData)) } } .обновляемый { viewModel.getInsightList() } И функция getInsightList() вызывает только одну функцию, которая приведена ниже.
func getAllInsights() -> [InsightData] { пусть fetchRequest: NSFetchRequest = InsightData.fetchRequest() пусть результат = попробовать? context.fetch(fetchRequest) вернуть результат?.reversed() ?? [] } И проблема вот в чем. Когда я пытаюсь обновить прокрутку с помощью вытягивания, содержимое прокрутки перемещается вниз. Начальная позиция индикатора прокрутки также перемещается вниз, но не вся высота прокрутки уменьшается, поэтому доступна прокрутка вверх.
Самое странное здесь. Когда я проверяю иерархию представлений, перемещается только экран, а фактические компоненты остаются в соответствующем положении. Кнопки работают не тогда, когда я нажимаю на позицию на экране, а когда я нажимаю на исходную позицию.
скриншоты симулятора
Мобильная версия