TGViewer
Мобильная разработка Мобильная разработка @mobi_dev · 13.2K subscribers
Post #4779 477
Как сделать прокрутку LazyVStack в SwiftUI предсказуемее

LazyVStack не строит весь список сразу: он загружает элементы у видимой области, а размеры строк за экраном оценивает по уже размещённым. Когда реальные размеры отличаются, стек уточняет общую высоту и смещение ScrollView. Поэтому логика, привязанная к абсолютному смещению, может срабатывать в разных местах.

Для длинной ленты в iOS полезны три правила: задавать предсказуемую высоту строк с переменным текстом; не сдвигать анимацией невидимые элементы в область экрана; отслеживать появление строк через onScrollTargetVisibilityChange, а не по абсолютному смещению.

Apple подробно разбирает оценку размеров, загрузку представлений, предзагрузку и программную прокрутку. Доклад рассчитан на разработчиков, уже знакомых с компоновкой стеков в SwiftUI.
More from @mobi_dev
  1. Sep 29, 2026Когда SubcomposeLayout в Jetpack Compose оправдывает свою цену Обычный Layout измеряет и р…
  2. Sep 29, 2026Как тестировать App Intents и Spotlight без автоматизации интерфейса На WWDC26 Apple показ…
  3. Sep 28, 2026Как связать список и экран деталей анимацией в Jetpack Compose Схема интеграции с Navigati…
  4. Sep 28, 2026Как ускорить первый кадр камеры в iOS 26 с AVFoundation Apple предлагает разделить запуск…
  5. Sep 28, 2026Как загружать локальный HTML в SwiftUI WebView через свою URL-схему В iOS 26 у SwiftUI поя…
  6. Sep 27, 2026Как встроить генерацию изображений через Image Playground в iOS-приложение Фреймворк Image…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →