问题标签 [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 投票
1 回答
762 浏览

swiftui - 理解 SwiftUI 中的 scaleEffect

以下代码在加载图像后立即对其大小进行动画处理,将其从一半大小设置为完整大小,但我对scaleFactor.

有人可以解释scaleEffect修饰符内的参数吗?

  1. 为什么它可以采用布尔参数?
  2. 如何输入比例范围1.0 : 0.5参数?
  3. 做什么的?

据我所见,scaleEffect修饰符只接受两个参数, aCGFloat和 a UnitPoint

0 投票
1 回答
343 浏览

swiftui - SwiftUI 中 ScrollView 中的动画过渡和内容

我不是 SwiftUI 的老手,但我已经发布了几个中等复杂度的应用程序。不过,我不能声称我完全理解它,我希望有更深入了解的人可以对这个问题有所了解:

我有一些想要打开和关闭的内容,与.sheet()不同,但我想要更多地控制它。这是一些“重构”的代码,但它应该能够抓住本质:

它的作用是打开和关闭一些内容块(这里由ScrollView中的Rectangle表示)。发生这种情况时,内容视图会通过一些动画从底部移入进行过渡。再次点击按钮时会发生相反的情况。

这段特定的代码按预期工作,但仅仅是因为这一行:

反过来,这需要一个额外的GeometryReader,否则,内容的宽度会被动画化,从而产生不需要的效果(我发现的另一个“修复”是使用.fixedSize()修饰符,但是为了产生合理的效果,它需要假定其自身宽度的内容,如Text

我对明智的问题是:是否可以在不使用此类“修复”的情况下很好地转换封装在ScrollView中的内容?或者,是否有更优雅的解决方法?

@Asperi 回答后的问题的快速补充:内容应保持动画。你是我唯一的希望,

——巴格兰

0 投票
1 回答
164 浏览

swiftui - 带有底部过渡的 ScrollView 给出了奇怪的行为?

只需复制并粘贴代码即可查看行为。我想确认我做错了什么还是这是一个错误?

运行代码并按Hide数字将开始无限抖动,如果我删除.transition修饰符,一切似乎都正常。

同样重要的是要注意删除.edgesIgnoringSafeArea修饰符会解决它,但我确实需要这个修饰符。

0 投票
0 回答
367 浏览

swift - 将 SwiftUI 与动画延迟链接 - 仅显示最后一个动画,除非对象是显示所有动画的中间动画

似乎在另一个问题中,有人给出了一个可以将 withAnimations 链接在一起的解决方案。这对我来说很有意义,所以我尝试了它,它几乎可以工作。当对象不运动时,仅显示最后一个动画。但是,如果我中断当前动画,所有动画都可以顺利播放。是否缺少步骤或者我没有正确设置某些东西?

这是我的测试代码。

0 投票
1 回答
307 浏览

swiftui - ScrollView 中的初始 SwiftUI 动画

在我的应用程序中ScrollView,我有一个VStack. 有VStack一个animation修饰符。它还有一个带有transition修饰符的条件视图。过渡有效。但是,当视图首次出现时,内容会以 0 的起始宽度放大。您可以在下面视频的绿色边框上看到这一点。这只发生在 theVStack内部ScrollViewVStack具有animation修饰符的情况下。

我尝试了其他不同的方法,例如设置 afixedSize或设置animation(nil),但我无法让它工作。

我不在乎开头是否有动画,或者视图是否转换到屏幕上。但我绝对不想要一开始的糟糕动画。当我单击按钮时,TextButton都应该动画。

我还使用以下简化代码测试了这种行为。

0 投票
1 回答
1770 浏览

swift - SwiftUI - 如何将动画范围限制为仅 onAppear 过渡

我是 SwiftUI 的新手,并且通过一些示例项目来掌握它的窍门,但我一直在限制我为.transitionAnimationModifier 设置的动画范围,因此它只会影响过渡动画而不会影响其他任何东西在视图中。

虽然单独的转换受到尊重,onAppear()而另一个为onDisappear(). 即使明确声明,AnimatableModifier 中的动画也会覆盖从网格中删除项目

我尝试在 AnimatableModifier 和 GameView 中的 CardView 中将 Animation 设置为 .offset 转换,当我这样做时,根本不会触发动画:

因此,必须有一种方法来限制范围或显式声明过渡动画或动画修改器中的两个单独动画,但我没有找到任何关于如何前进的资源。

GameView.swift

GameView.swift

Dealer.Swift - AnimatableModifier

0 投票
1 回答
156 浏览

ios - 如何在 SwiftUI 中的多个视图之间添加依赖动画?

我想用 SwiftUI 实现点进度动画。

我认为我们需要在每个点动画与另一个点动画之间添加依赖关系,有了这种依赖关系,我们可以实现下面的动画!

参考在此处输入图像描述

我尝试使用以下代码,但运气不起作用,我知道这不是实现此类动画的正确方法。

如果有人有解决方案,请随时在您的代码中回答。

感谢您的帮助,不胜感激!

0 投票
0 回答
67 浏览

swift - SwiftUI AnyTransition.animation 在使用 .offset 时不会覆盖动画参数

我有一个视图,我想在其中使用偏移过渡。据我了解,我可以使用 AnyTransition 上的 .animation 函数来覆盖显式动画的动画参数。

在这个简单的示例中,我希望 Rectangle 过渡比移动的文本长 10 倍。

它在使用 AnyTransition.opacity 时有效

使用 AnyTransition.offset 时不起作用

0 投票
1 回答
1074 浏览

swift - SwiftUI:第一个动画完成后如何运行另一个动画?

我是新手SwiftUI(以及整个 iOS 开发)。我了解到,要为视图设置动画,SwiftUI您可以执行以下操作:

但我似乎无法弄清楚当这个动画结束时我怎么能听,所以我可以触发一些其他的事情,比如运行不同的动画或做一些网络请求。

有人可以指导我吗?有没有我可以附加的回调,以便我可以在动画结束时收到通知?

提前致谢。

0 投票
1 回答
106 浏览

swift - SwiftUI 动画 onLongPressGesture(minimumDuration: 0.5) 自动启动

我创建了一个圆形按钮,我指定它在 .onLongPressGesture(minimumDuration: 0.5) 上显示比例动画,代码如下:

我在主视图中从这个视图创建了 4 个实例,如下所示:

我有一个按钮来添加人数,这会导致在视图上显示实例。我的问题是添加到 numberofpeople 后动画会自动触发这里是显示问题的 gif:

显示的动画问题

显示动画的正确方法是在我触摸它 0.5 秒后

动画应该是这样的,应该在长按后触发