【发布时间】:2018-04-15 10:39:59
【问题描述】:
我对动画有问题,因为我想要具有不同端点的相同动画,在完成前一个动画时被调用并顺利执行而不会稍有停止。
让我用示例代码和 cmets 详细说明。
Func animate()
{
Start animation(completionHandler: {
If condition is true
Repeat the animation and check after it finishes
}
}
但是这段代码的问题是,在完成第一个动画和开始另一个动画之间,会有一个不平滑的瞬间停止。例如,我有一个关于零点的视图以动画移动到 A 点 (x:100,y:100),然后它会收到 B 点 (x:500, y:900),到达 A 点后将停止一瞬间然后移动到 B 点。由于这些点是动态的,我不知道是否有新点,如果我这样做了,我不会事先知道坐标,所以我需要保持逻辑动态和使动画在点之间保持平滑。
我尝试了很多逻辑,结果不是我想要的。我面临的流畅排队动画的问题是:
-
我在下面尝试了 UIView.animate:
一个。我尝试设置动画持续时间,比如说 2 秒,然后在完成后,它会在完成处理程序/关闭/块中再次调用动画,但它会导致两个动画之间的停止时间少于一秒。
b.我尝试启动 2 个动画,第二个被延迟,与第一个动画的确切持续时间相同,但结果也在 2 个动画之间短暂停止。
2.我尝试了使用关键帧的动画,但是由于我事先不知道所有动画,所以这行不通。
您能否帮助我实现流畅的动态动画?
【问题讨论】:
-
您能发布您目前为动画制作的代码吗?
-
Objective-C 的这个答案,但你可以用 Swift 做类似的事情:stackoverflow.com/questions/14730460/…
-
@Jake 我可以,但主要是在 for 循环中调用 UIview.animate 是不够的
-
@Raviprakash 问题是我不知道我需要动画多少次,这取决于条件所以它不是固定的次数
-
谁能至少告诉我投反对票的原因是什么?请赐教