2011-05-12 42 views
0

我想改變的UIImageView的形象和3秒後回到第一個圖像...這是我的代碼:改變的UIImage的圖像隨着時間的推移

-(void)change: (UIImageView *)sender 
{ 
    UIImage *image = [UIImage imageNAmed: @"anImage"]; 
    [sender setImage:image]; 
    [self performSelector: @selector(doNothing) withObject:nil afterDelay:3]; 
    [sender setImage: [UIImage imageNamed: @"firstImage"]]; 
} 

它不工作。

回答

0

嘗試:

-(void)change: (UIImageView *)sender 
{ 
    UIImage *image = [UIImage imageNAmed: @"anImage"]; 
    [sender setImage:image]; 
    [sender performSelector: @selector(setImage:) withObject:[UIImage imageNamed: @"firstImage"] afterDelay:3]; 
} 

performSelector時間表選擇調用一些延遲。它不會延遲當前方法的執行

0

您可以發佈doNothing的代碼嗎?

如果doNothing真的什麼都不做,然後發生的事情是3秒後doNothing方法被稱爲從下面的行執行時:

[self performSelector: @selector(doNothing) withObject:nil afterDelay:3]; 

這裏的東西,下面的線在您的doNothing方法已被預定在三秒鐘後運行後直接執行:

[sender setImage: [UIImage imageNamed: @"firstImage"]]; 

換句話說,方法執行不會等待您的doNothing方法完成,它會繼續,並且doNothing在單獨的線程上運行。

0

你已經說過在3秒的延遲後執行函數doNothing。所以3秒後它會被調用,所以在doNothing函數中將圖像更改回firstImage。

相關問題