如何在不使用块结构的情况下为 UIView 设置动画?我只需要强制动画在调用后立即执行,并且我没有将程序的其余部分放在基于代码结构的完成块中的奢侈。
具体来说,现在,这就是正在发生的事情
while (actionsRemaining)
{
[self performDesiredAnimation];
....computation ....
[barWidget decreaseValueTo:resultOfComputation];
}
当我运行此代码时,所有 [performDesiredAnimation] 动画同时发生,大约 10 个 barWidgets 全部同时减少。我想要的是:
performDesiredAnimation1 --> barWidget 减少 --> performDesiredAnimation2 --> barWidget 减少 --> performDesiredAnimation3 --> barWidget 减少 --> ...但是未知次数。
我不知道有多少次,因为如果 barWidget 减少超过某个值,动作将从 actionsRemaining 中删除,即循环数将取决于中间计算。
更简单地说,当我只调用循环的一次迭代时,我想要的结果与我现在看到的结果相同
[self performDesiredAnimation];
....computation ....
[barWidget decreaseValueTo:resultOfComputation];
,然后是第二次迭代,然后是第三次,所有这些都是孤立的。现在,如果我注释掉循环,动画看起来还不错,但是当我将循环保留在那里时,它们都会一起粉碎。我只希望动画从迭代到迭代顺序执行,而不是一次全部执行。