WatchOS ScrollReader 代理滚动缓慢

问题描述

对于 WatchOS,我正在尝试构建一个自动滚动到添加到列表的最后一个项目的 ScrollView。这一切都很好,但是一旦 ScrollView 充满了内容scrollTo 函数就会变得非常缓慢和缓慢。为 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()) })
        }
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...