3

我用以下代码连接了问题。

如果我使用这些代码并在模拟器上运行它,他只会向我显示数组中的前两张图片以及过渡。如果我在 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];    
}
4

3 回答 3

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];
于 2012-04-24T14:03:01.007 回答
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];    
}
于 2013-10-29T09:39:43.623 回答
1

我找到了。您应该跳过在 transitionPhotos 中初始化 photoCount。使其成为 iVar 或属性。

于 2012-04-24T14:38:14.313 回答