2013-04-27 89 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

,因爲你的變量i的值始終爲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 2013-04-27 10:18:54

+0

看到我編輯的答案 – DharaParekh 2013-04-27 10:22:53

+0

我添加了那段代碼,但是爲了計算回來,代碼在按下一個按鈕時工作 – Momi 2013-04-27 10:31:09

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

Aww,那個數組...... – 2013-04-27 09:53:56