Положение Lazyvstack или Lazyhstack в Scrollview вызывает заиканиеIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Положение Lazyvstack или Lazyhstack в Scrollview вызывает заикание

Сообщение Anonymous »

xcode версия 12.4 (12d4e) < /p>
Я встречался с этим каждый раз, когда я реализовал ленивый стек в Scrollview: < /p>

[*] Добавить a lazyhstack в горизонтальный Scrollview или LazyVstack в вертикальный Scrollview
Добавить достаточно контента, чтобы Размер содержимого представления прокрутки превышает свои границы < /li>
< /ol>
сценарий 1 - вытяните Scrollview за пределы (как будто вы тянули, чтобы обновить)
ожидаемое поведение : оно ведет себя так же, как и ожидалось, где Scrollview остается под вашим пальцем
Наблюдаемое поведение : оно заикается и прыгает
сценарий 2 - быстро прокрутите к краю, чтобы оно приходилось отскочить
ожидаемое поведение : он плавно отскакивает
наблюдаемое поведение : он останавливается и дрожат, когда достигает края, но не работает 't Bounce < /p>
моя теория < /strong>
Моя теория заключается в том, что из -за использования ленивого стека, когда вид выходит из экрана, он удаляется из Просмотреть иерархию, создавая заикание. < /p>
Мне интересно, столкнулся ли кто -нибудь еще? Это ошибка в Swiftui? Я надежно воспроизводил это в течение нескольких месяцев в разных проектах и ​​в конечном итоге прибегал к тому, чтобы не использовать ленивые стеки, которые я хотел бы.
Пример кода

Код: Выделить всё

        ScrollView {
LazyVStack {
ForEach(viewModel.items) { items in
SomeView(viewModel: .init(context: viewModel.context, item: item))
}
}
Примечание: заикание происходит только в верхней части просмотра прокрутки
** Обновлено 10 июля, 2021 **
Это все еще происходит в iOS 15, версия 13.0 Бета (13A5155E).
В видео ниже, обратите внимание Поведение прокрутки и заикания, когда мы добираемся до дна:

** Обновлено 19 июля 2021 года **
Я все разорвал все, на мой взгляд, и набрал его обратно один за другим - Lazyvstack начинает заикаться, как только я положил Vstack/hstack/zstack вокруг простого текста element.
Если я добавляю фиксированный размер (горизонтальный: false, vertical: true) в текст элемент, кажется, перестает заикаться. Как только я добавляю uiviewResentable высоты переменной, он снова начинает заикаться. Чиво Swiftui View для работы. < /p>
Я буду продолжать копать. Должен ... решить ... < /p>
** 24 февраля 2024 г. **
После долгого перерыва я вернулся в Swiftui, и я вижу, что Lazyvstack больше не заикается, когда он в Scrollview.
Я не уверен, какая версия исправила это, но ура!>

Подробнее здесь: https://stackoverflow.com/questions/665 ... stuttering
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»