NSMutableArray *animateImage =[[NSMutableArray alloc]init];
for ( int i = 1 ; i <= listImages.count ; i++)
{
[animateImage addObject:[UIImage imageNamed:[listImages objectAtIndex:i]]];
}
UIImageView *animation= [[UIImageView alloc]initWithFrame:CGRectMake(10,110, 315,180)];
animation.animationImages=animateImage;
animation.animationDuration = 3.00;
[self.view addSubview:animation];
[animation startAnimating];
请帮帮我。我不知道我在哪里做错了
答案 0 :(得分:1)
基于你粘贴和解释的内容,我只能猜测,但很可能你正在加载一个不存在的imageNamed:导致:
addObject:nil
您可以检查图像是否为零并打印出来以找出导致图像崩溃的图像。
for ( int i = 1 ; i <= listImages.count ; i++)
{
NSString* imageName = [listImages objectAtIndex:i];
UIImage* image = [UIImage imageNamed:imageName];
if(image)
{
[animateImage addObject:image]];
}
else
{
NSLog(@"non existing image: %@", imageName);
}
}
打印阵列中的所有值,并确保目标中包含列出的所有图像。记住区分大小写。
另外你应该修复你的循环:
for ( int i = 0 ; i < listImages.count ; i++)
{
}
否则它会在最后一个元素上崩溃,因为它超出了数组范围。
答案 1 :(得分:0)
而不是这段代码:
NSMutableArray *animateImage =[[NSMutableArray alloc]init];
for ( int i = 1 ; i <= listImages.count ; i++)
{
[animateImage addObject:[UIImage imageNamed:[listImages objectAtIndex:i]]];
}
将其替换为:
NSMutableArray *animateImage = [[NSMutableArray alloc] init];
for (int i = 0; i < listImages.count; i++) {
[animateImage addObject:[UIImage imageNamed:[listImages objectAtIndex:i]]];
}
快乐的编码......:)
答案 2 :(得分:0)
在将图像添加到阵列之前,应该验证图像是否为零。试试这个:
NSMutableArray *animateImage = [[NSMutableArray alloc] init];
for (int i = 0; i < listImages.count; i++) {
UIImage *img = [UIImage imageNamed:[listImages objectAtIndex:i]];
if (img != nil)
[animateImage addObject:img];
}