Представление SwiftUI значительно перерисовывается при перемещении, вызывая заикание

Лучший способ справиться со SwiftUI - это повторно отрисовать все представление, которое перемещается с помощью DragGesture и модификатор: MyView().offset(x: drag.translation.width)?

Как только MyView() - это очень большое представление, содержащее огромное количество сложных подвидов, перетаскивание становится все менее и менее плавным, что, очевидно, связано с тем, что SwiftUI повторно визуализирует все представление при каждом его перемещении, что также приводит к тому, что все дочерние представления перерисовываться и так далее.

Использует .offset()модификатор не применим при перемещении больших видов? есть ли альтернативный подход? Пока что использование DragGewture и модификатора смещения (или положения в некоторых случаях), как описано здесь, кажется обычным способом.

0 ответов

Другие вопросы по тегам