2013-01-02 82 views
-1

編輯:我解決了它UIActivityIndi​​catorView不停止UIWebView的

我解決它。 我改變:

@property(nonatomic,retain) UIActivityIndicatorView *activityIndicator; 

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

我的問題:

我想提出一個簡單的UIWebView的應用程序,我想指示燈停止轉動,當它完成加載網頁。我在故事板界面選中了「隱藏完成」,並將指示器連接到視圖控制器(activityIndi​​cator)。它仍然沒有停止。在我的頭文件,我有這樣的:

@interface ViewController : UIViewController<UIWebViewDelegate>{ 
IBOutlet UIBarButtonItem *bBack, *bForward, *toolbarStop, *toolbarRefresh; 
IBOutlet UIActivityIndicatorView *_activityIndicator; 

BOOL internetOK; 
NSTimer *timer; 

} 
-(void)tryInternet; 
-(void)loading; 
-(void)startAnimating; 
-(void)stopAnimating; 
-(void)verifyInternet; 
-(IBAction)refresh:(id)sender; 
-(IBAction)dontTouchMe:(id)sender; 
-(IBAction)refreshWebView:(id)sender; 
@property (weak, nonatomic) IBOutlet UIWebView *webview; 
@property(nonatomic,retain) UIActivityIndicatorView *activityIndicator; 

而在我的.m文件,我有這樣的:

- (void)webViewDidStartLoad:(UIWebView *)webView { 
    [_activityIndicator startAnimating]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    [_activityIndicator stopAnimating]; 

爲什麼不這項工作?你有什麼想法?

+1

並û代表連接到網頁視圖? –

+0

@amitsoni是正確的如果你還沒有設置UIWebView委託,那麼 - (void)webViewDidStartLoad:(UIWebView *)webView和(void)webViewDidFinishLoad:(UIWebView *)webView將不起作用。 – Warewolf

+0

您的意思是將UIWebView連接到活動指示器?我這樣做,不起作用。 – user1941966

回答

0

我解決了它。我改變:

@property(nonatomic,retain) UIActivityIndicatorView *activityIndicator; 

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

嘗試使用下面的代碼。

- (void)webViewDidStartLoad:(UIWebView *)webView 
{ 
[_activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; 
[_activityIndicator setFrame:CGRectMake(200, 10, 20, 20)]; 
[self.view addSubview:_activityIndicator]; 
[_activityIndicator startAnimating]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
[_activityIndicator startAnimating]; 
} 

我希望它能起作用。

+0

這不適合我。 – user1941966

0

在你的.h文件中,兩個名稱都相同,即activityIndi​​cator。 然後在你的.m文件中合成它,例如activityIndicator = _activityIndicator。 然後寫下面的代碼 -

- (void)webViewDidStartLoad:(UIWebView *)webView 
{ 
[activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; 
[activityIndicator startAnimating]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
[activityIndicator stopAnimating]; 
} 
+0

我不關注。 – user1941966

0

我認爲,你必須連接委託給您的視圖控制器。

而且每當調用webViewDidStartLoad代表UIWebView時,您的動畫都會啓動。

我認爲,而不是webViewDidFinishLoad方法,webViewFailedToLoad方法正在調用。因此,您需要在失敗的方法中編寫代碼[activityIndicator stopAnimating];

希望能對你有幫助。

乾杯!

相關問題