как управлять анимацией изображений? - PullRequest
0 голосов
/ 05 июля 2011

я использую следующий код

imgview.animationImages=[NSArray arrayWithObjects:
                                                     [UIImage imageNamed:@"1.png"],
                                                     [UIImage imageNamed:@"2.png"],
                                                     [UIImage imageNamed:@"3.png"],
                                                     [UIImage imageNamed:@"4.png"],
                                                     [UIImage imageNamed:@"5.png"],nil ];

    imgview.animationDuration=1.0;
    imgview.animationRepeatCount=0;
    [imgview startAnimating];
    [self.view addSubview:imgview];

здесь imgview - UIImageView, но теперь я хочу использовать IBAction UIButton для управления этим.Изображение по умолчанию 1.png, когда я нажимаю кнопку, imgview покажет следующее изображение.например, когда текущее изображение 1.png, оно будет показывать 2.png, когда я нажимал кнопку, оно будет отображать 3.png, когда я снова нажимал кнопку, и продолжал.если текущее изображение 5.png, то при нажатии кнопки будет отображаться 1.png, как это сделать?

1 Ответ

0 голосов
/ 05 июля 2011

Вы можете сохранить текущее изображение в свойстве вашего viewController, например currentImage, это может быть int с позицией в массиве, тогда вы можете просто получить currentImage + 1 из массива. Примерно так:

// On view initialization
currentImage = 0;

NSArray myArray = [NSArray arrayWithObjects:
                                                 [UIImage imageNamed:@"1.png"],
                                                 [UIImage imageNamed:@"2.png"],
                                                 [UIImage imageNamed:@"3.png"],
                                                 [UIImage imageNamed:@"4.png"],
                                                 [UIImage imageNamed:@"5.png"],nil ];

imgview.animationImages = myArray;

//callback from UIButton when pressed.
if (currentImage + 1 >= [myArray count]) {
    currentImage = 0;
}

UIImage myDisplayedImage = [myArray objectAtIndex:currentImage];
currentImage++;
...