问题标签 [swiftui-animation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - SwiftUI 中的动态过渡
我希望能够根据状态转换使用不同的转换。例如,如果我从 .one => .three 开始,我想在删除时淡出 ViewOne。如果我从 .one => .two 开始,我想在移除时将 ViewOne 移到左侧。现在我有这样的东西(很明显,它只适用于从 .one => .two 的转换):
如何根据状态动态更改转换?
更新: 这是一个更完整的示例:
ios - 父视图上的转换覆盖子视图中的动画(按钮)
我在按钮标签内放置了以下视图:
那么以下意见:
当我单击按钮时,预期的行为是看到按钮的内容更改为省略号加载动画(点反复上下移动)。如果我删除.transition(.move(edge: .trailing))
附加到ViewTwo
. 但是,在其当前状态下,过渡动画似乎破坏了按钮动画。我看到它从后缘进进出出。有任何想法吗?SwiftUI 快把我逼疯了!
更新:
从一年前找到另一个答案,多产的 Asperi 做出了贡献。将我的按钮包装在其中一个中确实可以解决问题:
这是解决这个问题的唯一方法吗?
更新 2
切换到不透明度而不是偏移并添加一个.animation(nil)
解决了动画继承父过渡的问题:
但是,添加自定义GeometryEffect
来更改偏移量不起作用。此外,添加.transition(.identity)
有和没有.animation(nil)
也不起作用。在这里尝试一切。=)
iphone - SwiftUI 上的单上/下动画
我正在尝试制作一个动画,其中硬币翻转并向上移动然后返回并在按钮单击后停止。使用此代码,它会上下移动,但在动画结束后会捕捉到顶部位置。我知道这一定是因为“.offset”,但我不知道有什么办法。Youtube并没有太大帮助。
animation - SwiftUI 使用显式动画和隐式动画
我正在尝试使用 SwiftUI 动画。但是很难找到解决以下问题的方法。
我有一个视图(ExplicitAnimatedView
),它使用显式动画作为其逻辑。
我ExplicitAnimatedView
在另一个使用隐式动画的视图中使用它。
问题是,显式动画ExplicitAnimatedView
不再有效。它的行为就像显式动画Animation.linear(duration: 3).repeatForever(autoreverses: false)
被外部视图的隐式动画替换/覆盖。.animation(.linear)
我在这里做错了什么,还是有办法完成这项工作?
注意:如果我将动画转换为ExplicitAnimatedView
隐式动画,则一切正常,没有任何问题。但这不是一个选项,因为ExplicitAnimatedView
它来自我无法修改的第三方库。
animation - 来自 @Published 属性的 SwiftUI 动画从视图外部更改
SwiftUI 提供.animation()
了将动画更改为视图的绑定。但是,如果@Published
来自某个属性的@ObserveredObject
“自主”更改(例如,来自计时器),虽然视图将更新以响应更改,但没有明显的方法可以让视图为更改设置动画。
在下面的示例中,当isOn
从 Toggle 更改时,它会动画,但从 Toggle 更改时Timer
不会。有趣的是,如果我在这里使用三元条件而不是if
/else
甚至切换也不会触发动画。
当值更改不是来自绑定时,如何触发动画?
swiftui - 如何从模型创建 SwiftUI 动画效果?
我有一个模型对象,它有一个已发布的属性 displayMode,它通过来自服务器的事件异步更新。
然后,我有一个视图,它通过根据值将一些图像放置在某个位置来显示此模式。
此代码工作正常,但我想在值更改时为运动设置动画。如果我更改视图内代码块中的值,我可以withAnimation {..}
用来创建动画效果,但我无法从模型中弄清楚如何做到这一点。