2011-03-21 198 views
2

我有一個需要儘快按鈕被點擊,然後在條件語句後停止激活活動指示器...UIActivityIndi​​catorView啓動和停止

我在方式在網上看了實現這一點,但所有我能找到與網頁視圖設置它們不是簡單地關閉再開啓它們,然後....下面是我的基本問題

-(IBAction)SavePassword:(id)sender{ 
\\start animating activity indicator 
if(post recieved no errors){ 
\\stop animating activity indicator 
} 
\\else{ 
return the user error 
} 

如果有人能幫助這將是真棒:)

+0

是你的行動asynchrone?因爲如果是這樣,你必須在回調中停止動畫。 – 2011-03-21 10:30:19

+0

我使用asihttp,它只是一個syncroneous請求...也許如果我改變它異步它將工作.. – MrPink 2011-03-21 11:01:07

回答

10

它很直接轉發... 創建一個在實施出口,並在界面生成器連接..

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

只使用這兩種方法來啓動和停止動畫...

[self.activityIndicator startAnimating]; 

[self.activityIndicator stopAnimating]; 
+0

謝謝這真的很有幫助。但是我已經將指示器設置爲隱藏....因此,當按下按鈕時它現在需要顯示... – MrPink 2011-03-21 10:54:52

+3

活動指示器具有屬性'hidesWhenStopped'將其設置爲'YES'(或'TRUE').. – lukya 2011-03-21 11:14:57

+0

@MrPink在繼續閱讀之前,你如何閱讀一些有關iOS和Objective C的基本教程?自那時以來,一個月已經過去了 – TheBlack 2011-05-14 03:00:50

1

我在用同樣的方法隱藏和顯示時遇到了問題。通過設置可見性,它不會立即改變它,而只是在方法結束時纔會改變它。所以在你的情況下,它會顯示指標(技術上不在屏幕上)做一些東西,然後再次隱藏它。對於用戶而言,它永遠不會出現。您可以嘗試在後臺線程上執行操作,但不確定它是否足夠安全。 (因爲通常像.hidden所有的繪圖功能,必須出現在主線程)

[activityIndicator performSelectorInBackground:@selector(startAnimating) withObject:nil]; 
+0

你告訴你必須設置它是可見的,那麼你需要圍繞'[indicator setHidden:NO];'包裝另一個方法,因爲'YES'不是一個對象。然後調用這個只設置可見性的新方法。 – 2011-03-21 11:08:55

0

地方與界面生成器的幫助下,活動的指標。

然後作出該指標的iboulet。

IBoulet UIActivityIndicator *ac; 

那麼財產申報和實現類senthesize它

@property(nonatomic,retain) UIActivityIndicator *ac; 

synethesize它。

@synthesize ac; 

然後

[ac startAnimating]; 

和其中u要停止

[ac stopAnimating]; 
相關問題