我遇到了以下代码的问题。
如果我使用这些代码并在模拟器上运行它,他只会向我显示转换中数组中的前两张图片。如果我在Iphone上运行它,我只会看到第一张照片。 他也不重复这些照片.-
我做错了什么?
- (void)viewDidLoad{
[super viewDidLoad];
welcomePhoto = [NSArray arrayWithObjects:@"Bild.jpeg",@"Bild1.jpeg", @"Bild2.png", nil];
imageView.image = [UIImage imageNamed:[welcomePhoto objectAtIndex:0]];
[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(transitionPhotos) userInfo:nil repeats:YES];
}
-(void)transitionPhotos{
int photoCount;
if (photoCount < [welcomePhoto count] - 1){
photoCount ++;
}else{
photoCount = 0;
}
[UIView transitionWithView:self.imageView
duration:2.0
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{ imageView.image = [UIImage imageNamed:[welcomePhoto objectAtIndex:photoCount]]; }
completion:NULL];
}
答案 0 :(得分:3)
尝试在viewDidLoad中添加它。
UIImageView* animatedImageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 90, 100, 100)];
[self.view addSubview:animatedImageView];
animatedImageView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"bild.png"],
[UIImage imageNamed:@"bild.png"],
[UIImage imageNamed:@"bild.png"], nil]; //etc
animatedImageView.animationDuration = 3.0f * [animatedImageView.animationImages count];
animatedImageView.animationRepeatCount = 0;
[animatedImageView startAnimating];
[self.view addSubview: animatedImageView];
答案 1 :(得分:2)
试试这段代码
NSArray *imagesArray;
int photoCount;
UIImageView *imageView;
-(void)setupImageView{
photoCount = 0;
[[NSArray alloc]initWithObjects:[UIImage imageNamed:@"imgA.png"] ,[UIImage imageNamed:@"imgB.png"] ,[UIImage imageNamed:@"imgC.png"] ,[UIImage imageNamed:@"imgD.png"] ,[UIImage imageNamed:@"imgE.png"] , nil]; imageView =[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, width, height)];
imageView.image = [imagesArray objectAtIndex:photoCount];
[self.view addSubview:imageView];
[NSTimer scheduledTimerWithTimeInterval:20.0 target:self selector:@selector(transitionPhotos) userInfo:nil repeats:YES];
}
-(void)transitionPhotos{
if (photoCount < [imagesArray count] - 1){
photoCount ++;
}else{
photoCount = 0;
}
[UIView transitionWithView:self.imageView1
duration:2.0
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{ imageView.image = [imagesArray objectAtIndex:photoCount]; }
completion:NULL];
}
答案 2 :(得分:1)
我找到了。你应该在transitionPhotos中跳过初始化photoCount。使它成为iVar或财产。