2013-04-27 4 views
0

Я пытаюсь изменить кадр изображения UIImageView, у меня есть несколько следующих изображений, которые нужно изменить с помощью кнопки. Вот мой код:iOS - Изменение рамки изображения за кадром

- (IBAction)next:(id)sender { 

    for(i = 0; i <= 31; i++) { 
     NSString* filename = [NSString stringWithFormat:@"pic%d.jpeg",i]; 
       _image.image = [UIImage imageNamed:filename]; 
    } 

} 

проблема мои коды изменить образ только первый кадр, когда я нажимаю кнопку

+0

Это катится через ** ** все мнения для каждой кнопки. Выньте цикл, если вы хотите показывать изображения по одному при каждом нажатии кнопки. Напишите 'i = (i + 1)% 31', чтобы увеличить эту переменную. – 2013-04-27 09:34:04

ответ

1

из-за ваше значение переменного я всегда 0

Попробуй для решение:

Создайте переменную экземпляра в файле .h

int imgCount; 

Перво атрический его в методе ViewDidLoad

imgCount = 0; 
NSString* filename = [NSString stringWithFormat:@"pic%d.jpeg",imgCount]; // img0 is displayed 
_image.image = [UIImage imageNamed:filename]; 


- (IBAction)next:(id)sender { 
    //first (by default) img0 is display 
    imgCount++; 

    if (imgCount > 30) { //suppose total image is 31 means 0 to 30 
     imgCount = 0; 
    } 
    NSString* filename = [NSString stringWithFormat:@"pic%d.jpeg",imgCount]; 
    _image.image = [UIImage imageNamed:filename]; 
} 

- (IBAction)previous:(id)sender { 
    imgCount--; 

    if (imgCount < 0) { //suppose total image is 31 means 0 to 30 
     imgCount = 30; 
    } 
    NSString* filename = [NSString stringWithFormat:@"pic%d.jpeg",imgCount]; 
    _image.image = [UIImage imageNamed:filename]; 
} 
+0

спасибо, один вопрос, как это можно сделать для последнего кадра для первого кадра? Я знаю, что мне нужно использовать: 'imgCount -;', но эта работа при нажатии следующей кнопки – Momi

+0

см. Мой отредактированный ответ – DharaParekh

+0

Я добавил эту часть кода, но для подсчета кода работает при нажатии следующей кнопки – Momi

0
// create the view that will execute our animation 
    UIImageView* campFireView = [[UIImageView alloc] initWithFrame:self.view.frame]; 

    // load all the frames of our animation 
    campFireView.animationImages = [NSArray arrayWithObjects: 
           [UIImage imageNamed:@"campFire01.gif"], 
           [UIImage imageNamed:@"campFire02.gif"], 
           [UIImage imageNamed:@"campFire03.gif"], 
           [UIImage imageNamed:@"campFire04.gif"], 
           [UIImage imageNamed:@"campFire05.gif"], 
           [UIImage imageNamed:@"campFire06.gif"], 
           [UIImage imageNamed:@"campFire07.gif"], 
           [UIImage imageNamed:@"campFire08.gif"], 
           [UIImage imageNamed:@"campFire09.gif"], 
           [UIImage imageNamed:@"campFire10.gif"], 
           [UIImage imageNamed:@"campFire11.gif"], 
           [UIImage imageNamed:@"campFire12.gif"], 
           [UIImage imageNamed:@"campFire13.gif"], 
           [UIImage imageNamed:@"campFire14.gif"], 
           [UIImage imageNamed:@"campFire15.gif"], 
           [UIImage imageNamed:@"campFire16.gif"], 
           [UIImage imageNamed:@"campFire17.gif"], nil]; 

    // all frames will execute in 1.75 seconds 
    campFireView.animationDuration = 1.75; 
    // repeat the annimation forever 
    campFireView.animationRepeatCount = 0; 
    // start animating 
    [campFireView startAnimating]; 
    // add the animation view to the main window 
    [self.view addSubview:campFireView]; 

Также скачать источник code form here.

+2

Все, этот массив ... – 2013-04-27 09:53:56

Смежные вопросы