问题标签 [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.

0 投票
2 回答
218 浏览

swiftui - SwiftUI scaleEffect 导致不需要的位置更改

Xcode 12.4 + macOS 11.2.3

我在 Mac 应用程序中编写了一个非常简单的 SwiftUI 项目,但我不明白为什么scaleEffect会这样。

这是我的代码:

我的期望是,当我单击按钮时,“Hi”文本会变大两倍。相反,一旦我的视图加载,文本就会上下移动。单击按钮后,文本开始变得越来越小,但上下移动仍在继续。

在此处输入图像描述

为什么不Text留在原地而变得越来越小?

0 投票
1 回答
213 浏览

ios - SwiftUI 中的动态过渡

我希望能够根据状态转换使用不同的转换。例如,如果我从 .one => .three 开始,我想在删除时淡出 ViewOne。如果我从 .one => .two 开始,我想在移除时将 ViewOne 移到左侧。现在我有这样的东西(很明显,它只适用于从 .one => .two 的转换):

如何根据状态动态更改转换?

更新: 这是一个更完整的示例:

0 投票
1 回答
50 浏览

swift - 如何使用 SwiftUI 实现已裁剪为形状的缓慢滑动图像?

到目前为止,我的视图中有这个圆圈和图像: 在此处输入图像描述

这是它的代码:

如何使图像在圆圈内缓慢向左滑动?

圆圈不应该移动,只有它里面的图像应该移动。当图像结束时,应该显示它的另一个副本并重复该操作。或者图像可能会快速跳回之前的位置并再次开始移动。另一种方法是当图像到达终点时,它开始缓慢向右移动。

关于如何做到这一点的任何想法,或者是否有任何图书馆可以帮助我实现这一目标?

Jeeva Tamil 给出的答案几乎是正确的,但它会在保持圆形形状的同时移动图像(如下所示)。 在此处输入图像描述

而我需要它“在移动时显示图像的不同部分”。

0 投票
0 回答
97 浏览

ios - 父视图上的转换覆盖子视图中的动画(按钮)

我在按钮标签内放置了以下视图:

那么以下意见:

当我单击按钮时,预期的行为是看到按钮的内容更改为省略号加载动画(点反复上下移动)。如果我删除.transition(.move(edge: .trailing))附加到ViewTwo. 但是,在其当前状态下,过渡动画似乎破坏了按钮动画。我看到它从后缘进进出出。有任何想法吗?SwiftUI 快把我逼疯了!

更新:

从一年前找到另一个答案,多产的 Asperi 做出了贡献。将我的按钮包装在其中一个中确实可以解决问题:

这是解决这个问题的唯一方法吗?

更新 2

切换到不透明度而不是偏移并添加一个.animation(nil)解决了动画继承父过渡的问题:

但是,添加自定义GeometryEffect来更改偏移量不起作用。此外,添加.transition(.identity)有和没有.animation(nil)也不起作用。在这里尝试一切。=)

0 投票
1 回答
255 浏览

iphone - SwiftUI 上的单上/下动画

我正在尝试制作一个动画,其中硬币翻转并向上移动然后返回并在按钮单击后停止。使用此代码,它会上下移动,但在动画结束后会捕捉到顶部位置。我知道这一定是因为“.offset”,但我不知道有什么办法。Youtube并没有太大帮助。

0 投票
0 回答
49 浏览

swiftui - 内购后如何重启动画?

我有一个动画背景图像在屏幕上水平移动。我导航以进行应用内购买,无论是在输入密码之前购买还是取消,当我返回时背景图像不再是动画。如果我在进入要求输入密码的框之前取消,则图像仍在动画中。我怎样才能防止这种情况发生,或者重新启动动画?

如果我在这里取消,动画仍然有效:

在此处输入图像描述

如果我在此处取消或完成购买,则不再有动画:

在此处输入图像描述

0 投票
0 回答
23 浏览

animation - SwiftUI 使用显式动画和隐式动画

我正在尝试使用 SwiftUI 动画。但是很难找到解决以下问题的方法。

我有一个视图(ExplicitAnimatedView),它使用显式动画作为其逻辑。

ExplicitAnimatedView在另一个使用隐式动画的视图中使用它。

问题是,显式动画ExplicitAnimatedView不再有效。它的行为就像显式动画Animation.linear(duration: 3).repeatForever(autoreverses: false)被外部视图的隐式动画替换/覆盖。.animation(.linear)

我在这里做错了什么,还是有办法完成这项工作?

注意:如果我将动画转换为ExplicitAnimatedView隐式动画,则一切正常,没有任何问题。但这不是一个选项,因为ExplicitAnimatedView它来自我无法修改的第三方库。

0 投票
1 回答
419 浏览

animation - 来自 @Published 属性的 SwiftUI 动画从视图外部更改

SwiftUI 提供.animation()了将动画更改为视图的绑定。但是,如果@Published来自某个属性的@ObserveredObject“自主”更改(例如,来自计时器),虽然视图将更新以响应更改,但没有明显的方法可以让视图为更改设置动画。

在下面的示例中,当isOn从 Toggle 更改时,它会动画,但从 Toggle 更改时Timer不会。有趣的是,如果我在这里使用三元条件而不是if/else甚至切换也不会触发动画。

当值更改不是来自绑定时,如何触发动画?

0 投票
1 回答
51 浏览

swiftui - 如何从模型创建 SwiftUI 动画效果?

我有一个模型对象,它有一个已发布的属性 displayMode,它通过来自服务器的事件异步更新。

然后,我有一个视图,它通过根据值将一些图像放置在某个位置来显示此模式。

此代码工作正常,但我想在值更改时为运动设置动画。如果我更改视图内代码块中的值,我可以withAnimation {..}用来创建动画效果,但我无法从模型中弄清楚如何做到这一点。

0 投票
1 回答
67 浏览

swiftui - SwiftUI 按钮的 Aura 动画

如何制作下面的动画?触摸按钮时会出现灵气,整个盒子就像手指的重量一样收缩。

在此处输入图像描述 推时 在此处输入图像描述