swift - SwiftUI macOS 视图在显示多个图表时开始滞后
问题描述
我在一个视图中显示多个图表。
图表只是框架中的路径,数据来自 csv 文件(不大于 400mb)。
这些图表显示在 LazyVGrid 内,整个视图位于滚动视图内。
加载视图大约需要 10 - 20 秒,但是当我开始滚动图表时,它变得非常滞后。
为了解决这个问题,我尝试将 .drawingGroup() 附加到图表视图,但几乎没有性能变化。
代码看起来像这样:
import SwiftUI
struct GroupView: View {
@State var chartData = [CGFloat]()
let columns = [
GridItem(.adaptive(minimum: 720))
]
var body: some View {
VStack{
ScrollView {
LazyVGrid(columns: columns){
CSVChart(data: chartData, chartName: String, x-yaxisName: [String](), lineColor: CGColor)
.frame(width: 700, height: 300, alignment: .center)
.drawingGroup() // there is as well no performance change when .drawingGroup() is inside the chart view
}
}
}.onAppear{
chartData = // get csv data logic
}
}
}
我知道 csv 文件非常大,这会导致行为缓慢,但我认为其他应用程序在处理大文件时并没有那么滞后,所以这可能是可以修复的。
如果有人可以帮助我解决这个问题,那就太好了。
解决方案
将轴添加到您的 ScrollView 以判断它可以在哪一侧增长。
ScrollView(.vertical) {
推荐阅读
- php - 我想从表 sql 中获取数据
- ckeditor - this.props.editor.create 不是 CKEditor 中的函数 - NextJS
- android - 海量数据解包时如何减少Message Pack库的解析时间
- javascript - Discord JS:我想在机器人所在的每个公会中向名为“general”的频道发送嵌入信息,但出现错误
- html - 将属性添加到 css
- angular - Angular,当导航到另一个页面时,会出现未定义的错误
- flutter - 当导航栏颤动时暂停视频播放器
- python - 将 DataFrame 从 pandas 转换为 dask
- c - 7.2.Record结构中的程序有编译错误
- c - 使用迭代插入函数在第二次插入后初始化二叉搜索树时出现分段错误