首页 > 解决方案 > SwiftUI 视图在移动时会被重新渲染,导致卡顿

问题描述

处理 SwiftUI 的最佳方法是重新渲染使用 anDragGesture.offset()修饰符移动的整个视图:MyView().offset(x: drag.translation.width)

一旦MyView()是一个非常大的视图,包含大量复杂的子视图,拖动就开始变得越来越不流畅,这显然是因为 SwiftUI 每次移动时都会重新渲染整个视图,这也导致所有要重绘的后代视图等等。

移动大视图时使用.offset()修饰符不可行吗?有没有其他方法?到目前为止,这里描述的使用 DragGewture 和偏移修改器(或在某些情况下的位置)似乎是常用的方法。

标签: swiftswiftuidraggesture

解决方案


推荐阅读