UIView动画无法正常工作 - iOS

时间:2014-08-06 14:24:08

标签: ios objective-c animation uiview uiimageview

我正在尝试动画一个简单的UIImageView,但它无法正常工作。这是我的代码:

在我的头文件中,我已将“light_bulb”声明为UIImageView。

NSMutableArray *bulb_off_images = [[NSMutableArray alloc] init];

for (int loop = 0; loop < 11; loop++) {

    if (loop >= 10) {
        [bulb_off_images addObject:[UIImage imageNamed:[NSString stringWithFormat:@"bulb_off-%d.png", loop]]];
    }

    else {
        [bulb_off_images addObject:[UIImage imageNamed:[NSString stringWithFormat:@"bulb_off-0%d.png", loop]]];
    }
}

[UIView animateWithDuration:0.5 delay:2.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    light_bulb.animationImages = bulb_off_images;

} completion:^(BOOL finished){

    if (finished) {
        NSLog(@"Finished !!!!!");
    }
}];

代码似乎运行并调用完成块,但动画不会发生.....

**更新1 **

我尝试用这种方式制作动画,但我需要一种阻止动画重复自身的方法。我如何知道何时调用“stopAnimating”。这是我的代码:

light_bulb.animationImages = bulb_off_images;
light_bulb.animationDuration = 0.5;
light_bulb.animationRepeatCount = 0;
[light_bulb startAnimating];

我做错了什么?

1 个答案:

答案 0 :(得分:2)

关于您的原始问题,您的解决方案过于复杂。 UIImageView内置了动画方法。您似乎正在尝试将它们与UIView的动画功能结合使用,这些动画功能不会完全符合您的计划。查看每个文档,并确定哪些类&#39;您想要使用的动画功能。

(对于图像,UIImageView的动画方法似乎是首选方式。)


至于你的第二个问题:documentation for UIImageViewanimationRepeatCount州的注释:

  

默认值为0,指定无限期重复动画。

animationRepeatCount设置为1只能播放动画一次。