IOS,Swift,动画链接,等待主线程直到链接完成

IOS,Swift,动画链接,等待主线程直到链接完成,ios,animation,swift,Ios,Animation,Swift,这个问题被问了至少和我寻找答案的次数一样多,但从来没有让我满意过。我有一个视图,其中52个子视图代表一副牌。这些牌出现在屏幕中央,分成两叠牌,然后合并成一副洗牌 如果我从viewdispect()调用self.standardShuffle(),在实例化卡片图像之后,它就可以正常工作了 但是,如果我连续调用self.standardShuffle()2次,第二次调用将捕获飞行中的第一个动画,动画将被破坏。必须有一种方法阻止调用线程,直到动画链完成。计时器太笨重了,我不能把我所有的代码都放在动画块

这个问题被问了至少和我寻找答案的次数一样多,但从来没有让我满意过。我有一个视图,其中52个子视图代表一副牌。这些牌出现在屏幕中央,分成两叠牌,然后合并成一副洗牌

如果我从
viewdispect()
调用
self.standardShuffle()
,在实例化卡片图像之后,它就可以正常工作了

但是,如果我连续调用
self.standardShuffle()
2次,第二次调用将捕获飞行中的第一个动画,动画将被破坏。必须有一种方法阻止调用线程,直到动画链完成。计时器太笨重了,我不能把我所有的代码都放在动画块中(而且它也不起作用)

有人知道真正的答案吗?求你了

必须有一种方法来阻止调用线程

不,没有。永远不要阻塞。从来没有

如果你认为你看到的答案不令人满意,那么你没有仔细阅读。读它们并相信它们。您可以很容易地(并且以许多不同的方式)安排在第一个动画之后被回调;这是开始第二个动画的时刻。或者,创建一个连续执行两个动画的单个分组动画


这些是你的选择——你唯一的选择。如果您发现很难与代码协调,那是因为您的代码架构不正确。重新建造它。使用框架,不要与之抗争。

您能发布一些示例代码,说明您希望在哪些约束条件下工作吗?我通常会使用UIView。动画。。。具有BeginFromCurrentState选项的函数。