#swift #swiftui
Вопрос:
У меня есть главное представление, содержащее представление вкладок. Я хочу прокрутить страницу вверх, когда я нажимаю на элемент представления вкладок. Я нашел эту ссылку(ссылку), и теперь я могу перейти к началу первого элемента в списке.
Но во многих приложениях, таких как App Store, при нажатии на элемент нижней вкладки он прокручивается до верхней части представления навигации, а не до первого элемента.
На изображении gif, когда я хочу прокрутить до верхней части NavagationView, мне нужно прокрутить вручную. Или коснитесь строки состояния.
Я попытался добавить идентификатор в навигационное представление,
ScrollViewReader { proxy in
NavigationView {
BrowseList(data: $viewModel.items,
isLoading: $viewModel.isLoading,
loadMore: viewModel.loadMore) { item in
BrowseListViewItem(...)
}
.navigationBarTitle(Text("Browse"))
.onChange(of: moveToTopIndicator, perform: { _ in
withAnimation {
proxy.scrollTo("top")
}
})
}
.id("top")
}
или элемент TabView,
TabView(selection: $tabStateHandler.tabSelected) {
BrowseListView(viewModel: BrowseListViewModel(),
moveToTopIndicator: $tabStateHandler.moveBrowseTabToTop)
.tabItem {
Text("Browse")
Image(systemName: "magnifyingglass.circle")
}
.tag(SelectedTab.browse)
.id("top")
But none of it worked.
How can I make a scroll to top behaviour like when the tab status bar is pressed?