2012-12-26 106 views
1

嗨我想問一個簡單的問題,當我加載UIWebView時,如何隱藏或禁用進度條,我加ProgressBarsubview,webview。我在下面的方法中使用了這種方法,但它不能幫助我,因爲每個站點因其內容大小而需要不同的時間加載,所以請告訴我如何在webview中的任何站點加載時隱藏或刪除ProgressBar如何在webview加載時隱藏progressview

- (void)makeMyProgressBarMoving { 

    float actual = [threadProgressView progress]; 

    if (actual < 1) { 
     threadProgressView.progress = actual + 0.2; 
     [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(makeMyProgressBarMoving) userInfo:nil repeats:NO]; 
    } 
    else 
    { 
     threadProgressView.hidden = YES; 
     threadValueLabel.hidden = YES; 
    } 
} 

回答

2

先加授人以UIWebView的 對於添加進度條: - Web視圖的委託方法: -

- (void)webViewDidStartLoad:(UIWebView *)webView 
{ 
    threadProgressView.hidden = NO; 
} 

去除進度條: - Web視圖的委託方法: -

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    threadProgressView.hidden = YES; 
} 

希望這有助於你

+0

我添加了進度條作爲webivew –

+0

的子視圖,然後你可以在hidden = NO上使用addSubView,在hidden = YES上使用removeFromSuperView; –

+0

@AdnanQadir:它解決了你的問題嗎? –

0

檢查您的WebView被完全地或沒有加載。

if(!yourWebView.loading) 
{ 
    [yourProgress removeFromSuperView]; 
} 

裝載

一個布爾值,它指示接收器是否加載完成 內容。 (只讀)@property(nonatomic, readonly, getter=isLoading) BOOL loading>

討論

如果是,則接收器仍在加載的內容;否則,否。 可用性

Available in iOS 2.0 and later. 

您可以實現的UIWebView的webViewDidFinishLoad委託方法。

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [yourProgress removeFromSuperView]; 
} 

webViewDidFinishLoad

網絡視圖完成加載一個幀後發送。 - (void)webViewDidFinishLoad:(UIWebView *)webView

參數

webView的

The web view has finished loading. 

可用性

Available in iOS 2.0 and later. 

參考UIWebViewDelegateUIWebView更多細節