ScrollView портит анимацию дочерних элементов - PullRequest
1 голос
/ 10 апреля 2020

Иногда, какая бы анимация по умолчанию ни существовала в все еще ограниченном ScrollView в Swift UI, это приводит к «смешанному» эффекту анимации.

ScrollView {
   Text("Hello")
      .animation(
         Animation.interpolatingSpring(stiffness: 200, damping: 3)
      )
}

Это может иногда приводить к гораздо более сильной пружине влияние (относительно offset) на начальную загрузку при визуализации ScrollView.

Есть ли способ изолировать эффект пружины от смещения относительно самого себя, а не от его абсолютного смещения.

Интересным замечанием является то, что если я поверну ScrollView в VStack этого не происходит. Кажется, ScrollView имеет некоторую анимацию при начальном рендере.

1 Ответ

0 голосов
/ 10 апреля 2020

Хорошо, вот взлом для любого отчаявшегося:

struct Hack: View {
  @State var show = false

  public var body: some View {
    ScrollView {
      Text("Hello")
        .animation(
          Animation.interpolatingSpring(stiffness: 200, damping: 3)
        )
        .opacity(show ? 1 : 0) // this is the hack
        .onAppear { self.show.toggle() }
    }
  }
}

Это отключит вопиющую (по крайней мере, в моем случае) анимацию при начальной загрузке. Это действительно не хороший ответ и не понимание того, что происходит с ScrollView.

...