0

我有一个UIimageView显示为静态图像的图像。当图像被触摸时,它会在其中触发 16 个图像的动画UIImageView。动画完成后,我想将图像设置为UIImageView新图像。我不知道如何按照我目前拥有我的代码的方式执行此操作。谁能告诉我该怎么做?我曾尝试使用NSTimer(设置为动画持续时间)来调用另一种方法,但这并没有真正起作用。这是我的代码。我会很感激任何帮助。

- (void) hdFallingAnim {
    NSString *fileName; 
    NSMutableArray *imageArray = [[NSMutableArray alloc] init];
    for(int i = 1; i < 17; i++) {
        fileName = [NSString stringWithFormat:@"FallingReg/HD_Falling_REG%d.png", i];
        [imageArray addObject:[UIImage imageNamed:fileName]];
    }
    hdFalling.userInteractionEnabled = YES;
    hdFalling.animationImages = imageArray;
    hdFalling.animationDuration = 2;
    hdFalling.animationRepeatCount = 1;
    hdFalling.contentMode = UIViewContentModeCenter;
    [self.view addSubview:hdFalling];
    [hdFalling startAnimating];


}
4

1 回答 1

0

没有官方方法可以用这些类型的动画检测到这一点。您可以在后台线程中进行轮询,如下所示:

dispatch_queue_t queue = dispatch_queue_create("waste.of.resources.but.it.works", 0);
    dispatch_async(queue, ^{
        while( [hdFalling isAnimating]) {
            //Waiting....
        }

        //Finished
        hdFalling.animationImages = nil;
        hdFalling.image = //Your image
    });
    dispatch_release(queue);
于 2012-06-21T14:48:25.933 回答