Web View
建立一個簡單Web瀏覽器,此範例需要使用到TextField、Web View、Toolbar、Bar Button Item、Activity Indicator View;元件的用途方別如下:
TextField:輸入網址。Web View:show網頁使用。Toolbar、Bar Button Item:工具列,可返回上頁、下頁、重整。Activity Indicator View:讓使用者得知網頁還在進行loading。
預期完成後的結果如下圖:
**Step 1.**建立SingleView,專案名稱為Web View
**Step 2.**編輯MainStoryboard.storyboard
將元件依序拖曳近來,並且安排好擺設的位置
需注意的是Activity Indicator View的屬性設定,要將Animating、Hidden打勾,預設才會隱藏,動畫也才會執行。
**Step 3.**編輯ViewController.h
- 加入
UIWebViewDelegate協定。 - 定義元件的變數。
- 定義
Bar Button Item的IBAction事件。
1 | @interface ViewController : UIViewController<UIWebViewDelegate> |
**Step 4-1.**編輯ViewController.m
完成synthesize的部份。
1 | @synthesize webView = webView_, urlTextField = urlTextField_, activityView = activityView_; |
完成之後依序寫入往下頁、往上頁的事件,直接使用WebView元件提供的方法goForward、goBack來達到往下頁、往上頁的目的。
1 | -(IBAction)goforward:(id)sender |
**Step 4-2.**編輯ViewController.m
goaddress事件中,先取得TextField的值,放入NSString的urlString變數中,在將此值,給予NSURL的url變數;得知url為何時,再使用NSURLRequest來取得url所得到的網頁結果;而這個結果由Web View來呈現。
[urlTextField_ resignFirstResponder];是將TextField的鍵盤回到原本的狀態(原本狀態為隱藏)。
1 | -(IBAction)goaddress:(id)sender |
**Step 4-3.**編輯ViewController.m
透過webViewDidStartLoad、webViewDidFinishLoad這兩個方法,來設定Activity Indicator View是否為隱藏,並開始動畫的效果。
1 | -(void) webViewDidStartLoad:(UIWebView *)webView |
hitReturn:為鍵盤上的return被按下時要執行的事件,其內容都跟上面一樣!
1 | -(IBAction)hitReturn:(id)sender |
**Step 5.**建立關連
最後就是建立IBAction、IBOutlet的關聯,如下圖:
如果想要一近畫面時就啟動預設的網頁畫面,在viewDidLoad加入下列的程式碼,其運作過程都一樣。
1 | - (void)viewDidLoad |