Прокси-сервер WatchOS ScrollReader с медленной прокруткой

Для WatchOS я пытаюсь создать ScrollView, который автоматически прокручивается до последнего элемента, добавленного в список. Все это работает нормально, однако, как только ScrollView заполнится содержимым, scrollTofunc становится очень вялым и медленным. Установка продолжительности анимации для withAnimationна данный момент не действует. Есть идеи, почему анимация начинает тормозить? Заранее спасибо.

      struct ContentView: View {
    @State private var items: [Date] = []
    
    static var dateFormatter: DateFormatter = {
        let formatter = DateFormatter()
        formatter.dateFormat = "hh:mm:ss:SSS"
        return formatter
    }()
    
    var body: some View {
        VStack {
            ScrollView {
                ScrollViewReader { scrollProxy in
                    LazyVStack {
                        ForEach(items, id: \.self) { item in
                            Text(Self.dateFormatter.string(from: item))
                                .font(.system(size: 16.0))
                                .padding()
                                .background(
                                    RoundedRectangle(cornerRadius: 8.0)
                                        .fill(Color.blue)
                                )
                                .id(item)
                        }
                    }
                    .onReceive(items.publisher) { date in
                        withAnimation(.easeInOut(duration: 0.25)) {
                            scrollProxy.scrollTo(date, anchor: .bottom)
                        }
                    }
                }
            }
            
            Button("Add Item", action: { items.append(Date()) })
        }
    }
}

0 ответов

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