SwiftUI LazyVStack или List очень медленно загружается со многими элементами и ScrollTo в onAppear

У меня есть LazyVStack в ScrollView с прокси-сервером ScrollViewReader. Это приложение для чата, поэтому при первой загрузке представления я хочу, чтобы оно переместилось в нижнюю часть LazyVStack.

Проблема в том, что когда я добавляю прокси scrollTo в onAppear, он значительно замедляет отображение списка с задержкой, прямо пропорциональной количеству элементов в LazyVStack.

Я предполагаю, что это потому, что прокрутка заставляет загружать все строки.

Мне интересно, есть ли что-нибудь вокруг этого?

      var body: some View {
    GeometryReader { geometry in
        ScrollView(.vertical) {
            ScrollViewReader { scrollView in
                LazyVStack {
                    Section(footer: (Spacer().frame(height: 8)).id("Footer")) {
                        ForEach(messages, id: \.id) { message in
                            MessageView(message: message)
                        }
                    }
                }
                .onAppear {
                    scrollView.scrollTo(messages.last.id)
            }
        }
    }
}

0 ответов

Другие вопросы по тегам