2014-10-17 98 views
-3

这个问题已被询问至少有多少次,因为我已经搜索了答案,但从来没有让我满意。我有52个子视图代表一副牌。卡片出现在屏幕的中央,分成两堆卡片,然后合并在一起作为洗牌平台。IOS,Swift,动画链接,等待主线程,直到链完成

如果我从viewDidAppear()调用self.standardShuffle(),在实例化卡片图像后,它工作得很好。

但是,如果我连续两次拨打self.standardShuffle(),则第二次调用将捕获飞行中的第一个动画,并且动画将被毁坏。必须有一种方法来阻止调用线程,直到动画链完成。定时器太笨重了,我不能将所有的代码放在动画块中(反正它不起作用)。

任何人都有真正的答案吗?请。

+0

你可以发布一些示例代码,显示你想要在其中工作的约束吗?我通常会使用UIView.animate ...函数和BeginFromCurrentState选项。 – 2014-10-17 15:20:02

回答

5

必须有阻塞调用线程

没有没有办法。 从不块。 从不

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

这些是你的选择 - 你的只有的选择。如果您发现难以与代码协调,那是因为您错误地构建了代码。重新设计它。 使用的架构,不要吧。