為UIWebView加上Loading

在app中使用in app browser並不會自動顯示下載進度,當網站尚未下載完成時,很多時候會出現白屏,這樣很容易令用戶出現錯覺以為app當掉。以下有個簡單的方式加入下載中的圖示,讓用戶知道我們的app還在工作中。

  1. 在Object Library中將UIWebView及Activity Indicator View拉到ViewController中,並將這兩個Object連到property:
    //interface
    @property (nonatomic, retain) IBOutlet UIWebView *webview;
    @property (nonatomic, retain) IBOutlet UIActivityIndicatorView *activityIndicator;

    //implementation
    @synthesize webview,activityIndicator;

  2. 選擇Activity Indicator View,在Attributes inspector中點選Hides When Stopped 這個選項。
  3. 然後在UIWebView上點擊滑鼠右鍵,將delegate連結到本身的ViewController。
  4. 在implementation中加入兩個delegate的function:
    -(void)webViewDidStartLoad:(UIWebView *)webView
    {
        [activityIndicator startAnimating];
    }

    -(void)webViewDidFinishLoad:(UIWebView *)webView
    {
        [activityIndicator stopAnimating];
    }
     
這樣完成一個簡單的Loading效果。

沒有留言: