我有一個按鈕,當它按下時,它從網上下載幾個圖像,以便在另一個視圖中顯示它們。但是,此刻,當我按下按鈕時,按鈕會變爲突出顯示的狀態,並在圖像下載時(看起來下一個視圖已準備好)卡住了。我並不關心按鈕被突出顯示模式卡住(實際上我更喜歡這種方式)。UIActivityIndicatorView,在當前視圖的圖像下載過程中顯示
但是,我希望UIActivityView顯示在顯示按鈕時下一個視圖加載(並從網上下載圖像,因爲這需要一段時間)的視圖...如何我會去實施這個邏輯?
感謝,
傑克
我有一個按鈕,當它按下時,它從網上下載幾個圖像,以便在另一個視圖中顯示它們。但是,此刻,當我按下按鈕時,按鈕會變爲突出顯示的狀態,並在圖像下載時(看起來下一個視圖已準備好)卡住了。我並不關心按鈕被突出顯示模式卡住(實際上我更喜歡這種方式)。UIActivityIndicatorView,在當前視圖的圖像下載過程中顯示
但是,我希望UIActivityView顯示在顯示按鈕時下一個視圖加載(並從網上下載圖像,因爲這需要一段時間)的視圖...如何我會去實施這個邏輯?
感謝,
傑克
我假設你使用NSURLConnection來連接和下載圖像?如果是這樣的話,你會想要使用這樣的方法:
在IB中,將UIActivityIndicatorView放置在您想要的視圖上,並在其「屬性」面板中定義其樣式。告訴它停止時隱藏。並且一定要將它與您所有者頭文件中的代碼關聯起來。
UIActivityIndicatorView *indicator;
和
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *indicator;
當您創建NSURLConnection的,並開始請求,告訴指示開始動畫與[indicator startAnimation];
。如果你不想在屏幕上顯示你的按鈕,你可以從超級視圖中刪除它,如果你喜歡。
完成下載後,您可以在- (void)connectionDidFinishLoading:(NSURLConnection *)connection
方法中告訴指示器[indicator stopAnimation]
(並且如果您之前已經將其移除,請將按鈕添加回去)。
如果您在不使用NSURLConnection的情況下下載圖像,這當然會有所不同,但邏輯上它應該是相同的方法。雖然我與大衛同意,這也許應該在後臺線程
你是做在主線程中長時間工作。您應該更改您的代碼,以便下載在後臺線程中進行。您可以更改按鈕的狀態以指示正在下載,但不要以這種方式保留主線程。
在後臺線程中,加載圖片並調用主線程上的選擇器,更新UIActivtyView以指示其下載更多圖片的進度。
做爲了您的按鍵問題指派爲加亮狀態,你是分配正常
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];
您需要將您的指標框架是哪裏你需要它; UIButton的中心。
您還沒有指定您如何下載圖像,但是當你開始下載,使用[indicator startActivity];
並在下載完成後,使用[indicator stopActivity];
您還可以添加一個setHidden:YES
/setHidden:NO
在其中添加啓動/停止呼叫。
你是如何下載圖像的? – kball