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
Ответить

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

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

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

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

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