Я хотел бы, чтобы представление исчезало при переходе наверх, но я понятия не имею, как это сделать с помощью SwiftUI. Вот мой код:
struct MyList: View {
@State private var loading = true
@State private var elements: [MyElement] = []
var body: some View {
ZStack {
Color.white
List(elements) {
ListRow($0)
}
if loading {
LoadingView() // This is the view I want to slide to the top when hiding
.ignoresSafeArea()
}
}
.onAppear {
callAPI() { elements in
self.elements = elements
self.loading = false
}
}
}
}
Я хочу скрыть LoadingView() с переходом от слайда к началу, но не знаю, как это сделать.
Спасибо за помощь!
Вы можете использовать модификатор .transition
.
LoadingView()
.transition(.move(edge: .top))
Но не забудьте анимировать его:
.onAppear {
self.loading = true
callAPI() { elements in
self.elements = elements
DispatchQueue.main.async { // as this is probably from background Thread dispatch it
self.loading = false
}
}
}.animation(.default, value: loading)
Это ответ на ваш вопрос stackoverflow.com/a/65856845/12299030?