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 |