2011-05-11 65 views
1

我有一個按鈕,當它按下時,它從網上下載幾個圖像,以便在另一個視圖中顯示它們。但是,此刻,當我按下按鈕時,按鈕會變爲突出顯示的狀態,並在圖像下載時(看起來下一個視圖已準備好)卡住了。我並不關心按鈕被突出顯示模式卡住(實際上我更喜歡這種方式)。UIActivityIndi​​catorView,在當前視圖的圖像下載過程中顯示

但是,我希望UIActivityView顯示在顯示按鈕時下一個視圖加載(並從網上下載圖像,因爲這需要一段時間)的視圖...如何我會去實施這個邏輯?

感謝,

傑克

+1

你是如何下載圖像的? – kball

回答

0

我假設你使用NSURLConnection來連接和下載圖像?如果是這樣的話,你會想要使用這樣的方法:

在IB中,將UIActivityIndi​​catorView放置在您想要的視圖上,並在其「屬性」面板中定義其樣式。告訴它停止時隱藏。並且一定要將它與您所有者頭文件中的代碼關聯起來。

UIActivityIndicatorView *indicator; 

@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *indicator; 

當您創建NSURLConnection的,並開始請求,告訴指示開始動畫與[indicator startAnimation];。如果你不想在屏幕上顯示你的按鈕,你可以從超級視圖中刪除它,如果你喜歡。

完成下載後,您可以在- (void)connectionDidFinishLoading:(NSURLConnection *)connection方法中告訴指示器[indicator stopAnimation](並且如果您之前已經將其移除,請將按鈕添加回去)。

如果您在不使用NSURLConnection的情況下下載圖像,這當然會有所不同,但邏輯上它應該是相同的方法。雖然我與大衛同意,這也許應該在後臺線程

0

你是做在主線程中長時間工作。您應該更改您的代碼,以便下載在後臺線程中進行。您可以更改按鈕的狀態以指示正在下載,但不要以這種方式保留主線程。

在後臺線程中,加載圖片並調用主線程上的選擇器,更新UIActivtyView以指示其下載更多圖片的進度。

0

做爲了您的按鍵問題指派爲加亮狀態,你是分配正常

UIImage *newImage12 = [UIImage imageNamed:@"yourimagename"]; 
[deleteButton setBackgroundImage:newImage12 forState:UIControlStateNormal]; 
[deleteButton setBackgroundImage:newImage12 forState:UIControlStateHighlighted]; 

爲了增加活動的指標

相同的圖像

在.h文件中

IBOutlet UIActivityIndicatorView *indicator; 

作出財產

在xib中添加指標並進行連接。

合成和釋放中。M於您的按鈕文件

點擊你想顯示你的指標: -

[indicator startAnimating]; 
要停止

您的指示寫

[indicator stopAnimating]; 
-1

您需要將您的指標框架是哪裏你需要它; UIButton的中心。

您還沒有指定您如何下載圖像,但是當你開始下載,使用[indicator startActivity];並在下載完成後,使用[indicator stopActivity];

您還可以添加一個setHidden:YES/setHidden:NO在其中添加啓動/停止呼叫。

相關問題