ScrollViewReader прокруткаЧтобы слишком много прокручивать на iOS 15 ⇐ IOS
-
Anonymous
ScrollViewReader прокруткаЧтобы слишком много прокручивать на iOS 15
В iOS 15 возникла проблема с ScrollTo в ScrollViewReader: он прокручивает слишком много. У меня есть кнопка и средство выбора даты. При нажатии на кнопку я показываю средство выбора даты, но я хочу, чтобы средство выбора даты было полностью видно на экране, поэтому я прокручиваю его до него. Код, воспроизводящий проблему, приложен ниже:
импортировать SwiftUI структура ScrollToIssue: Просмотр { @State var showPicker: Bool = false @State переменная дата: Дата = Дата() var body: some View { ScrollViewReader {scrollViewReader в ПрокруткаView { Цвет.красный.рамка(высота: 400) Цвет.желтый.рамка(высота: 200) ВСтек { Кнопка (действие: { showPicker.toggle() если шоуПиккер { DispatchQueue.main.asyncAfter(deadline: .now() + 1, выполните: { сАнимацией { ScrollViewReader.scrollTo("pickerrrr") } }) } }, этикетка: { Текст("Выбор шоу") }) если шоуПиккер { DatePicker(выбор: $date, displayComponents: .date, метка: { EmptyView() }) .labelsHidden() .datePickerStyle(GraphicalDatePickerStyle()) .id("пикерррр") } } .border(Цвет.зеленый) Цвет.синий.рамка(высота: 500) } } } } На iOS 16/17 работает нормально. Также пытался переместить ScrollViewReader внутри/снаружи ScrollView, без разницы, также пробовал с привязкой .bottom, проблема все та же.
Я использовал Xcode 15.0 с Iphone 13, iOS 15.5
В iOS 15 возникла проблема с ScrollTo в ScrollViewReader: он прокручивает слишком много. У меня есть кнопка и средство выбора даты. При нажатии на кнопку я показываю средство выбора даты, но я хочу, чтобы средство выбора даты было полностью видно на экране, поэтому я прокручиваю его до него. Код, воспроизводящий проблему, приложен ниже:
импортировать SwiftUI структура ScrollToIssue: Просмотр { @State var showPicker: Bool = false @State переменная дата: Дата = Дата() var body: some View { ScrollViewReader {scrollViewReader в ПрокруткаView { Цвет.красный.рамка(высота: 400) Цвет.желтый.рамка(высота: 200) ВСтек { Кнопка (действие: { showPicker.toggle() если шоуПиккер { DispatchQueue.main.asyncAfter(deadline: .now() + 1, выполните: { сАнимацией { ScrollViewReader.scrollTo("pickerrrr") } }) } }, этикетка: { Текст("Выбор шоу") }) если шоуПиккер { DatePicker(выбор: $date, displayComponents: .date, метка: { EmptyView() }) .labelsHidden() .datePickerStyle(GraphicalDatePickerStyle()) .id("пикерррр") } } .border(Цвет.зеленый) Цвет.синий.рамка(высота: 500) } } } } На iOS 16/17 работает нормально. Также пытался переместить ScrollViewReader внутри/снаружи ScrollView, без разницы, также пробовал с привязкой .bottom, проблема все та же.
Я использовал Xcode 15.0 с Iphone 13, iOS 15.5
Мобильная версия