我正在尝试动画一个简单的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];
我做错了什么?
答案 0 :(得分:2)
关于您的原始问题,您的解决方案过于复杂。 UIImageView
内置了动画方法。您似乎正在尝试将它们与UIView
的动画功能结合使用,这些动画功能不会完全符合您的计划。查看每个文档,并确定哪些类&#39;您想要使用的动画功能。
(对于图像,UIImageView
的动画方法似乎是首选方式。)
至于你的第二个问题:documentation for UIImageView
中animationRepeatCount
州的注释:
默认值为0,指定无限期重复动画。
将animationRepeatCount
设置为1只能播放动画一次。