SwiftUI ScrollView — анимация привязки, когда ScrollTargetBehavior имеет значение `.paging` или `.viewAligned(limitBehavIOS

Программируем под IOS
Anonymous
SwiftUI ScrollView — анимация привязки, когда ScrollTargetBehavior имеет значение `.paging` или `.viewAligned(limitBehav

Сообщение Anonymous »

У меня есть базовый элемент ScrollView с постраничным отображением, использующий ScrollTargetBehavior как .viewAligned(limitBehavior: .alwaysByOne) или .paging. Это полноэкранный вертикальный пейджер, т.е.

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

GeometryReader { geo in
ScrollView(.vertical) {
LazyVStack(spacing: 0) {
ForEach(items, id: \.self) { item in

}
.frame(
width: geo.size.width,
height: geo.size.height
)
}
.scrollTargetLayout()
}
.scrollPosition(id: $selectedItem, anchor: .top)
.animation(.spring, value: selectedItem)
.scrollTargetBehavior(.viewAligned(limitBehavior: .alwaysByOne))
}

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

.animation
влияет только на программную прокрутку (т. е. если я его удалю, анимация не будет, если я изменю selectedItem).
Когда пользователь вручную прокручивает список, а затем отпускает, появляется анимация, когда правильная страница привязывается к экрану. В конце это довольно медленно (ощущение легкости). Я хочу сделать это немного быстрее, но мой предполагаемый подход (

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

.animation(..)
), похоже, ничего не делает.

Подробнее здесь: https://stackoverflow.com/questions/796 ... -is-paging

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