我正在尝试制作一个简单的西蒙游戏(不断增加的颜色闪烁序列,用户必须尝试重复该序列)。我要解决的方法是拥有 4 个 UIViews 和 8 个图像。所以有一个用于红色、蓝色、绿色和黄色的 UIView。我有深绿色、浅绿色、深红色、浅红色等的 GIF。
所以在我的代码中,我使用 UIView 的 transitionWithView 动画块: UIView imageView.image 默认为深色图像,这个块正在转换为浅色图像,完成后返回深色图像(给它“点亮”的样子)。
- (void) animateColor:(NSString *)color
{
...
//do stuff to default the dark and light image name and which UIView to animate based on the color parameter
...
[UIView transitionWithView:imageView
duration:.5
options: UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAutoreverse
animations:^{
imageView.image = [UIImage imageNamed:lightImage];
}
completion:^(BOOL finished){
if (finished){
imageView.image = [UIImage imageNamed:darkImage];
}
}];
}
当我用一种颜色调用此代码的方法时,这很好用。
问题是,假设我有一个 NSArray 或想要按顺序制作动画的颜色。因此,如果我的数组是“蓝色”、“绿色”,我希望使用蓝色调用 transitionWithView,为蓝色视图设置动画,然后为绿色视图设置动画。现在,它将同时为绿色视图和蓝色视图设置动画。
我现在正在尝试使用 NSTimer,但运气不佳。
任何建议都将不胜感激。