ScrollView + LazyStacks заикается

У меня было много подобных вопросов , чтобы это при использовании и LazyVStack/ LazyHStack где содержимое ленивого стека будет заикаться при отскоке от края.

Сначала я подумал, что это может быть связано с использованием сложных представлений в ленивом стеке, что вызовет проблемы с макетом в SwiftUI, но мне удалось придумать MWE, который использует очень простую иерархию представлений, и проблема все еще существует.

Это вызывает заикание при быстрой прокрутке влево и при отскоке от переднего края экрана. ScrollView:

      ScrollView(.horizontal) {
    LazyHStack {
        Color.red.frame(width: 450)
        Color.green.frame(width: 250)
        Color.blue.frame(width: 250)
    }
}
.frame(width: 350)

Уменьшение ширины первого вида устраняет заикание

      ScrollView(.horizontal) {
    LazyHStack {
        Color.red.frame(width: 400) //<- No stutter
        Color.green.frame(width: 250)
        Color.blue.frame(width: 250)
    }
}
.frame(width: 350)

Для этого MWE заикание происходит только на устройстве (возможно, потому, что я не могу прокручивать достаточно быстро в симуляторе). Однако у меня была такая же проблема в симуляторе с более сложными представлениями.

Есть идеи, если это ошибка в SwiftUI?

Протестировано на iPhone Xs Max с Xcode 13 beta 1 и iOS 15.

0 ответов

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