【问题标题】:ScrollView messing up child element animationScrollView 搞乱子元素动画
【发布时间】:2020-07-22 17:59:09
【问题描述】:

有时,Swift UI 中仍然有限的ScrollView 中存在的任何默认动画都会导致“复合”动画效果。

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

这有时会在ScrollView 被渲染时在初始负载上导致更强的弹簧效应(相对于offset)。

有没有办法将弹簧效果隔离到相对于自身的偏移量而不是绝对偏移量。

有趣的是,如果我将ScrollView 变成VStack,这不会发生。似乎ScrollView 在初始渲染时有一些动画。

【问题讨论】:

    标签: swift animation swiftui


    【解决方案1】:

    好吧,对于任何绝望的人来说,这里有一个技巧:

    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 发生的事情的洞察。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多