处理 SwiftUI 的最佳方法是重新渲染使用 anDragGesture
和.offset()
修饰符移动的整个视图:MyView().offset(x: drag.translation.width)
?
一旦MyView()
是一个非常大的视图,包含大量复杂的子视图,拖动就开始变得越来越不流畅,这显然是因为 SwiftUI 每次移动时都会重新渲染整个视图,这也导致所有要重绘的后代视图等等。
移动大视图时使用.offset()
修饰符不可行吗?有没有其他方法?到目前为止,这里描述的使用 DragGewture 和偏移修改器(或在某些情况下的位置)似乎是常用的方法。