我的故事板上有一个UIImageView,它链接到代码中的插座。当我运行代码时,它只显示故事板显示的静态图片,而不是我以编程方式创建的动画。有什么想法吗?
for(int i=0; i<4; i++) {
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"loading%d",i]];
[self.images addObject:image];
}
self.loadingView.animationImages = self.images;
self.loadingView.animationDuration = 2;
self.loadingView.animationRepeatCount = 1;
[self.loadingView startAnimating];
注意:loadingView是UIImageView,images是NSMutableArray。
答案 0 :(得分:2)
如果你想制作运行时数组,可以这样使用。
NSMutableArray *images = [[NSMutableArray alloc] init];
for (int i = 1 ; i < 4; i++) {
[images addObject:[UIImage imageNamed:[NSString stringWithFormat: @"loading%d.jpg", i]]];
}
self.loadingView.animationImages = images;
self.loadingView.animationDuration = 2;
self.loadingView.animationRepeatCount = 1;
[self.loadingView startAnimating];
希望这会对你有所帮助。它对我来说很好。
答案 1 :(得分:0)
我建议您直接使用数组。
NSArray *images = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"1.jpg"],
[UIImage imageNamed:@"2.jpg"],
nil];
self.loadingView.animationImages = images;
self.loadingView.animationDuration = 2;
self.loadingView.animationRepeatCount = 1;
[self.loadingView startAnimating];
希望这会对你有所帮助。
答案 2 :(得分:0)
问题在于这一行:
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"loading%d",i]]
格式字符串错误。您可能有图像命名,例如loading1.png
。但是您的格式字符串仅提供loading1
。这不适用于imageNamed:
。因此,您需要修复格式字符串以提供图像的全名。
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"loading%d.png",i]]
或者其他什么。使用NSLog确保您获得完全正确的图像名称!!!
更好的方法是使用动画图像,但是:
UIImage* im = [UIImage animatedImageNamed:@"loading" duration:2];
这将自动查找所有loading1.png
,loading2.png
等,然后创建图片并自动启动动画。