Прокси-сервер WatchOS ScrollReader с медленной прокруткой
Для WatchOS я пытаюсь создать ScrollView, который автоматически прокручивается до последнего элемента, добавленного в список. Все это работает нормально, однако, как только ScrollView заполнится содержимым,
scrollTo
func становится очень вялым и медленным. Установка продолжительности анимации для
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()) })
}
}
}