如何使动画与UIImageView的当前位置相关联?

时间:2014-05-20 19:08:03

标签: ios animation methods uiimageview

我有一个在两个不同图像之间切换的ImageView。当一个事件发生并且它在ImageView1中时,我希望它能够播放特定的动画。当一个事件发生并且它在ImageView2中时,我希望它能够播放特定的不同动画。到目前为止我的代码设置基本上是

if (ImageView1 == YES)
{
ImageView.animationImages = [NSArray arrayWithObjects:
                            [UIImage imageNamed:@"ImageAnimate1.png"],
                            [UIImage imageNamed:@"ImageAnimate2.png"],
                            [UIImage imageNamed:@"ImageAnimate3.png"],
                            [UIImage imageNamed:@"ImageAnimate4.png"], nil];
    [ImageView setAnimationRepeatCount:1];
    ImageView.animationDuration = 1;
    [ImageView startAnimating];
}

else
{
    ImageView.animationImages = [NSArray arrayWithObjects:
                                [UIImage imageNamed:@"ImageAnimate5.png"],
                                [UIImage imageNamed:@"ImageAnimate6.png"],
                                [UIImage imageNamed:@"ImageAnimate7.png"],
                                [UIImage imageNamed:@"ImageAnimate8.png"], nil];
    [ImageView setAnimationRepeatCount:1];
    ImageView.animationDuration = 1;
    [ImageView startAnimating];
}

我知道它不需要拥有2组不同的动画重复和持续时间,但这只是他们稍后改变的开始。

主要问题是,第一组动画仅在我正在将其设置为ImageView1时才会播放。我的意思是,如果我点击/触摸屏幕左侧,它会创建ImageView1,如果我点击向右,它会创建ImageView2。我怎样才能将其从当前点击左侧以播放该动画更改为仅在当前显示ImageView时播放动画?

可能就像将其设置为当前的UIImage一样简单,但我并不完全确定如何操作。

换句话说,我想以某种方式写作。

if (UIImage ImageViewLeft = YES)
    ImageView.animationImages etc etc etc.

else ImageView.animationImages would be the second variation.

编辑:我刚把它改成了

 if (ImageView.image == [UIImage imageNamed:@"ImageLeft.png"])
     { code here

现在发生了什么,但是在另一个事件发生之前,我无法改变方向。基本上它会在事件发生之前被卡在左侧或右侧,然后它与正确的图像相关联。

1 个答案:

答案 0 :(得分:-1)

一种简单的方法是为imageIsRight创建一个BOOL。当您开始在右侧播放动画时将其设置为YES,将其设置为NO,当它向左移动时。然后创建一个计时器,每隔.05秒(或任何工作)触发。该计时器可以调用一个方法来检查您创建的BOOL,并重复/继续当前动画或停止它并启动另一个。

上述细节可能不适合您的情况,这对我来说有点模糊,但这种方法应该可以让您到达目的地。