我问了一个问题(动画有时不会发生) 前段时间关于一个动画,显然,有时不会发生。我没有得到任何有用的答案。所以,经过大量的研究和玩耍,我发现有时应该第二个发生的动画,有时会先发生。另一种确实发生了,只是没有在预期发生的时候发生。两个动画分别是“翻转”和“消失”。例如,有四个图块。当触摸一个瓷砖时,它会翻转。当第二个瓷砖被触摸时,它应该翻转。如果瓷砖匹配,两个瓷砖都消失了。如果它们不匹配,则瓷砖会翻转回来。就我所知,翻转动画总是正确地发生。换句话说 - 第一个瓷砖被翻转。第二块瓷砖被翻转。瓷砖不匹配。两个瓷砖翻转。至于瓷砖什么时候匹配,第一个瓷砖正确翻转。有时第二个图块正确翻转然后它们都消失了(旋转和收缩动画组)。有时第二块瓷砖没有正确翻转,但它们都在第二块瓷砖翻转之前消失了。这是不可接受的。
这是我迄今为止尝试过的 - 我尝试过 NSThread 暂停。这不起作用,因为整个线程都被暂停了,这并没有让没有发生的动画发生。我查看了 NSTimer - 但是被调用的方法有两个参数,这意味着我必须执行 NSInvocation 并且我还没有弄清楚 - 并且不确定它是否会起作用。现在,我已经放置了一个标志来标记翻转动画何时完成。如果这种方法最终有效,我必须弄清楚如何在不增加完成计数的情况下反复翻转单个图块。无论如何 - 使用这种方法,我需要弄清楚如何告诉我的第二个动画等到第一个动画完成后再运行。
理想情况下,我希望能够告诉消失动画始终等到第二个图块完全翻转后再提交。
我想不通的是a)为什么有时动画以正确的顺序发生,有时却没有,以及b)当动画试图不以正确的顺序发生时,如何强制它们以正确的顺序发生命令。
不太确定哪些代码会对您有所帮助。问,我会提供!
这是调用动画的代码:
-(void)buttonPressed: (UIButton*)buttoni
{
[self flipTiles:(UIButton *)buttoni];
[self twoTilesFlipped];
}
显然,首先调用了flipTiles 动画。我不明白为什么有时直到在 twoTilesFlipped 中调用的代码之后才调用它。我认为编程是关于逻辑的,这对我来说没有逻辑意义。哦,我只是想到了......我将在这段代码中添加一个 NSTimer 延迟 - 也许这会成功!