2

アプリ用の簡単な写真スライドショーを作成しました。問題は、コードが最後の画像の後に画像を繰り返さないことです。ここに私のコードがあります:

- (IBAction)start:(id)sender {

    _button.hidden = YES;
    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(photoCounter) userInfo:nil repeats:YES];


}


- (void)photoCounter {

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.90];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:NO];
    [self updatePhoto];
    imageCount ++;
    [UIView commitAnimations];

}

- (void)updatePhoto {

    switch (imageCount) {

        case 0:
            _images.image = [UIImage imageNamed:@"wall1.jpg"];
            break;

        case 1:
            _images.image = [UIImage imageNamed:@"wall2.jpg"];
            break;
        case 2:
            _images.image = [UIImage imageNamed:@"wall3.jpg"];
            break;
        case 3:
            _images.image = [UIImage imageNamed:@"wall4.jpg"];
            break;
        case 4:
            _images.image = [UIImage imageNamed:@"wall5.jpg"];
            break;

        default:
            break;
    }

}
4

3 に答える 3

5

photoCounter メソッドから imageCount++ を削除し、

- (void)updatePhoto 
{
    switch (imageCount) 
    {
        case 0:
            _images.image = [UIImage imageNamed:@"wall1.jpg"];
            break;
        case 1:
            _images.image = [UIImage imageNamed:@"wall2.jpg"];
            break;
        case 2:
            _images.image = [UIImage imageNamed:@"wall3.jpg"];
            break;
        case 3:
            _images.image = [UIImage imageNamed:@"wall4.jpg"];
            break;
        case 4:
            _images.image = [UIImage imageNamed:@"wall5.jpg"];
            break;

        default:
            break;
    }
    imageCount ++;
    if (imageCount > 4)
        imageCount = 0;

}
于 2013-03-29T08:56:45.580 に答える
2

多分よくなる

- (void)updatePhoto {
    NSString *imageName = [NSString stringWithFormat:@"wall%d", imageCount];
    _images.image = [UIImage imageNamed:imageName];
    (imageCount > 4) ? imageCount = 0 : imageCount++;

}

于 2013-03-29T10:14:13.387 に答える
1

関数- (void)photoCounter... の代わりにimageCount++、入れてみてください

if(imageCount > 4){ 
    imageCount = 0;
} else { 
    imageCount++;
}
于 2013-03-29T08:52:10.963 に答える