3

私は次のコードで問題を配線しました。

これらのコードを使用してシミュレーターで実行すると、トランジションのある配列の最初の2つの画像のみが表示されます。私が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 に答える
1

見つけた。transitionPhotos での photoCount の初期化をスキップする必要があります。iVar またはプロパティにします。

于 2012-04-24T14:38:14.313 に答える