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.