我正在为一个单人作业制作一个简单的游戏,并且我已经完成了所有要求,但是我遇到了以下令人恼火的问题:
我有一个 UIImageView,(显示硬币的图像),当点击屏幕时,它会动画以模拟旋转。我使用以下代码执行此操作(简化为仅显示相关内容):
- (void)spinCoin:(int)times
{
// Create a block scoped variable to store the amount of spins.
__block int blockTimes = times;
// Animate the coin to spin.
[UIView animateWithDuration:0.1
delay:0.0
options: UIViewAnimationCurveEaseOut
animations:^{
coinImageView.transform = CGAffineTransformMakeScale(0.001, 1);
}
completion:^(BOOL completed){
[UIView animateWithDuration:0.1
delay:0.0
options: UIViewAnimationCurveEaseOut
animations:^{
coinImageView.transform = CGAffineTransformMakeScale(1, 1);
}
completion:^(BOOL finished){
if (blockTimes < 4) {
// Spin 4 times.
[self spinCoins:blockTimes+1];
}
}];
}];
}
此方法在 touchesEnded 中调用。
本质上,它只是将 x 轴上的硬币图像缩放为 0,然后一旦完成,将其缩放回 1(并重复 4 次)。
尽管有点乱(哦,上帝的封锁),但它工作得很好,但是如果我点击主页按钮,然后重新打开应用程序,如果我点击屏幕,硬币翻转 1-3 次,然后 imageView 完全消失。控制台中没有错误等。
有谁知道这可能是什么原因造成的?核心图形/动画和应用程序移出后台是否存在问题?