詳解iOS開發(fā)之UIWebView
iOS開發(fā)之UIWebView 是本文要介紹的內(nèi)容,UIWebView是iOS SDK中一個(gè)最常用的控件,是內(nèi)置的瀏覽器控件,我們可以用它來瀏覽網(wǎng)頁、打開文檔等等。本文主要介紹將使用這個(gè)控件,做一個(gè)簡(jiǎn)易的瀏覽器。如下圖:
我們創(chuàng)建一個(gè)Window-based Application程序命名為:UIWebViewDemo
UIWebView的loadRequest可以用來加載一個(gè)url地址,它需要一個(gè)NSURLRequest參數(shù)。我們定義一個(gè)方法用來加載url。在UIWebViewDemoViewController中定義下面方法:
- - (void)loadWebPageWithString:(NSString*)urlString
- { NSURL *url =[NSURL URLWithString:urlString];
- NSLog(urlString);
- NSURLRequest *request =[NSURLRequest requestWithURL:url];
- [webView loadRequest:request];
- }
在界面上放置3個(gè)控件,一個(gè)textfield、一個(gè)button、一個(gè)uiwebview,布局如下圖所示:
在代碼中定義相關(guān)的控件:webView用于展示網(wǎng)頁、textField用于地址欄、activityIndicatorView用于加載的動(dòng)畫、buttonPress用于按鈕的點(diǎn)擊事件。
- view sourceprint?@interface UIWebViewDemoViewController :UIViewController<UIWebViewDelegate> {
- IBOutlet UIWebView *webView;
- IBOutlet UITextField *textField;
- UIActivityIndicatorView *activityIndicatorView;
- }
- - (IBAction)buttonPress:(id) sender;
- - (void)loadWebPageWithString:(NSString*)urlString;
- @end
使用IB關(guān)聯(lián)他們。
設(shè)置UIWebView,初始化UIActivityIndicatorView:
- - (void)viewDidLoad{
- [super viewDidLoad];
- webView.scalesPageToFit =YES;
- webView.delegate =self;
- activityIndicatorView = [[UIActivityIndicatorView alloc]
- initWithFrame : CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)] ;
- [activityIndicatorView setCenter: self.view.center] ;
- [activityIndicatorView setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite] ;
- [self.view addSubview : activityIndicatorView] ;
- [self buttonPress:nil]; // Do any additional setup after loading the view from its nib.
- }
UIWebView主要有下面幾個(gè)委托方法:
1、- (void)webViewDidStartLoad:(UIWebView *)webView;開始加載的時(shí)候執(zhí)行該方法。
2、- (void)webViewDidFinishLoad:(UIWebView *)webView;加載完成的時(shí)候執(zhí)行該方法。
3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加載出錯(cuò)的時(shí)候執(zhí)行該方法。
我們可以將activityIndicatorView放置到前面兩個(gè)委托方法中。
- - (void)webViewDidStartLoad:(UIWebView *)webView
- {
- [activityIndicatorView startAnimating] ;
- }- (void)webViewDidFinishLoad:(UIWebView *)webView
- {
- [activityIndicatorView stopAnimating];
- }
buttonPress方法很簡(jiǎn)單,調(diào)用我們開始定義好的loadWebPageWithString方法就行了:
- - (IBAction)buttonPress:(id) sender
- {
- [textField resignFirstResponder];
- [self loadWebPageWithString:textField.text];
- }
當(dāng)請(qǐng)求頁面出現(xiàn)錯(cuò)誤的時(shí)候,我們給予提示:
- - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
- {
- UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@"" message:[error localizedDescription]
- delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
- [alterview show];
- [alterview release];
- }
小結(jié):詳解iOS開發(fā)之UIWebView 的內(nèi)容介紹完了,本文通過實(shí)現(xiàn)一個(gè)簡(jiǎn)單的瀏覽器,說明了uiwebview的方法和屬性,相信通過這個(gè)例子,應(yīng)該明白uiwebview的使用了。那么最后希望本文對(duì)你有所幫助!本文提供的代碼:UIWebViewDemo.zip 地址:http://files.cnblogs.com/zhuqil/UIWebViewDemo.zip。