【发布时间】:2014-08-06 14:24:07
【问题描述】:
我正在尝试为一个简单的 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];
我做错了什么?
【问题讨论】:
-
您不能为对 UI 没有影响的属性更改设置动画。我要冒昧地说你对这些课程的运作方式有一些基本的误解。阅读文档(UIView、UIImageView),它们会帮助你。
-
如果您阅读图像视图的类参考,您可以更轻松地做到这一点。
-
@esqew 我用另一种可行的动画方法更新了我的答案,但是我现在的问题是我无法阻止动画重复。
-
如果您按照我的建议阅读了文档,您就会知道,对于
animationRepeatCount,“默认值为 0,它指定无限期地重复动画。”我> -
@esqew 对。我在这里完全是懒惰的白痴。我的印象是 0 意味着它将运行一次然后不再重复。谢谢你的帮助。如果你把它放在答案中,我很乐意打勾先生。
标签: ios objective-c animation uiview uiimageview