iOS開發之UIWebView 是本文要介紹的內容,UIWebView是iOS SDK中一個最常用的控制項,是內建的瀏覽器控制項,我們可以用它來瀏覽網頁、開啟文檔等等。本文主要介紹將使用這個控制項,做一個簡易的瀏覽器。如:
我們建立一個Window-based Application程式命名為:UIWebViewDemo
UIWebView的loadRequest可以用來載入一個url地址,它需要一個NSURLRequest參數。我們定義一個方法用來載入url。在UIWebViewDemoViewController中定義下面方法:
- - (void)loadWebPageWithString:(NSString*)urlString
- { NSURL *url =[NSURL URLWithString:urlString];
- NSLog(urlString);
- NSURLRequest *request =[NSURLRequest requestWithURL:url];
- [webView loadRequest:request];
- }
在介面上放置3個控制項,一個textfield、一個button、一個uiwebview,布局如所示:
在代碼中定義相關的控制項:webView用於展示網頁、textField用於地址欄、activityIndicatorView用於載入的動畫、buttonPress用於按鈕的點擊事件。
- view sourceprint?@interface UIWebViewDemoViewController :UIViewController<UIWebViewDelegate> {
- IBOutlet UIWebView *webView;
- IBOutlet UITextField *textField;
- UIActivityIndicatorView *activityIndicatorView;
- }
- - (IBAction)buttonPress:(id) sender;
- - (void)loadWebPageWithString:(NSString*)urlString;
- @end
使用IB關聯他們。
設定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主要有下面幾個委託方法:
1、- (void)webViewDidStartLoad:(UIWebView *)webView;開始載入的時候執行該方法。
2、- (void)webViewDidFinishLoad:(UIWebView *)webView;載入完成的時候執行該方法。
3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;載入出錯的時候執行該方法。
我們可以將activityIndicatorView放置到前面兩個委託方法中。
- - (void)webViewDidStartLoad:(UIWebView *)webView
- {
- [activityIndicatorView startAnimating] ;
- }- (void)webViewDidFinishLoad:(UIWebView *)webView
- {
- [activityIndicatorView stopAnimating];
- }
buttonPress方法很簡單,調用我們開始定義好的loadWebPageWithString方法就行了:
- - (IBAction)buttonPress:(id) sender
- {
- [textField resignFirstResponder];
- [self loadWebPageWithString:textField.text];
- }
當請求頁面出現錯誤的時候,我們給予提示:
- - (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];
- }
小結:詳解iOS開發之UIWebView 的內容介紹完了,本文通過實現一個簡單的瀏覽器,說明了uiwebview的方法和屬性,相信通過這個例子,應該明白uiwebview的使用了。那麼最後希望本文對你有所協助!本文提供的代碼:UIWebViewDemo.zip 地址:http://files.cnblogs.com/zhuqil/UIWebViewDemo.zip。