swift - SwiftUI 视图在移动时会被重新渲染,导致卡顿
问题描述
处理 SwiftUI 的最佳方法是重新渲染使用 anDragGesture
和.offset()
修饰符移动的整个视图:MyView().offset(x: drag.translation.width)
?
一旦MyView()
是一个非常大的视图,包含大量复杂的子视图,拖动就开始变得越来越不流畅,这显然是因为 SwiftUI 每次移动时都会重新渲染整个视图,这也导致所有要重绘的后代视图等等。
移动大视图时使用.offset()
修饰符不可行吗?有没有其他方法?到目前为止,这里描述的使用 DragGewture 和偏移修改器(或在某些情况下的位置)似乎是常用的方法。
解决方案
推荐阅读
- laravel - Laravel 8 社交名流登录重定向问题
- ffmpeg - FFMpeg - 将第一帧冻结 X 秒
- mysql - 如何在 mySQL Workbench 上添加完整性检查
- powershell - 如何在 Dev-ops Release Pipeline 中将单个工件部署到多个 Web 应用程序
- python - 有没有办法可以计算 OpenCV 中球的反弹?
- python - 调整变量然后附加到python中的列表
- java - Apache Atlas:HTTP ERROR 503 服务不可用
- python - 是什么导致了这个神秘的 pylint E1101 错误?
- python - python核心文件在哪里
- excel - 使用 Excel VBA 将多个图像转换为一个 PDF 文件并将每个图像适合一页