详解iOS开发之UIWebView

移动开发 iOS
iOS开发之UIWebView 是本文要介绍的内容,UIWebView是iOS sdk中一个最常用的控件,是内置的浏览器控件,我们可以用它来浏览网页、打开文档等等。

iOS开发UIWebView 是本文要介绍的内容,UIWebViewiOS SDK中一个最常用的控件,是内置的浏览器控件,我们可以用它来浏览网页、打开文档等等。本文主要介绍将使用这个控件,做一个简易的浏览器。如下图:

详解iOS开发之UIWebView

我们创建一个Window-based Application程序命名为:UIWebViewDemo

UIWebView的loadRequest可以用来加载一个url地址,它需要一个NSURLRequest参数。我们定义一个方法用来加载url。在UIWebViewDemoViewController中定义下面方法:

  1. - (void)loadWebPageWithString:(NSString*)urlString  
  2. {    NSURL *url =[NSURL URLWithString:urlString];  
  3.     NSLog(urlString);      
  4.     NSURLRequest *request =[NSURLRequest requestWithURL:url];     
  5.      [webView loadRequest:request];  

在界面上放置3个控件,一个textfield、一个button、一个uiwebview,布局如下图所示:

详解iOS开发之UIWebView

在代码中定义相关的控件:webView用于展示网页、textField用于地址栏、activityIndicatorView用于加载的动画、buttonPress用于按钮的点击事件。

  1. view sourceprint?@interface UIWebViewDemoViewController :UIViewController<UIWebViewDelegate> {        
  2.     IBOutlet UIWebView *webView;    
  3.     IBOutlet UITextField *textField;    
  4.     UIActivityIndicatorView *activityIndicatorView;    
  5. }    
  6. - (IBAction)buttonPress:(id) sender;    
  7. - (void)loadWebPageWithString:(NSString*)urlString;    
  8. @end  

使用IB关联他们。

设置UIWebView,初始化UIActivityIndicatorView:

  1. - (void)viewDidLoad{  
  2.     [super viewDidLoad];  
  3.     webView.scalesPageToFit =YES;  
  4.         webView.delegate =self;     
  5.          activityIndicatorView = [[UIActivityIndicatorView alloc]         
  6.          initWithFrame : CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)] ;      
  7.          [activityIndicatorView setCenter: self.view.center] ;      
  8.          [activityIndicatorView setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite] ;       
  9.          [self.view addSubview : activityIndicatorView] ;      
  10.          [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放置到前面两个委托方法中。

  1. - (void)webViewDidStartLoad:(UIWebView *)webView  
  2. {  
  3.     [activityIndicatorView startAnimating] ;  
  4. }- (void)webViewDidFinishLoad:(UIWebView *)webView  
  5. {  
  6.     [activityIndicatorView stopAnimating];  

buttonPress方法很简单,调用我们开始定义好的loadWebPageWithString方法就行了:

  1. - (IBAction)buttonPress:(id) sender    
  2. {    
  3.     [textField resignFirstResponder];     
  4.     [self loadWebPageWithString:textField.text];    
  5. }  

当请求页面出现错误的时候,我们给予提示:

  1. - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error    
  2. {    
  3.     UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@"" message:[error localizedDescription]  
  4. delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];    
  5.     [alterview show];    
  6.     [alterview release];    
  7. }  

小结:详解iOS开发UIWebView 的内容介绍完了,本文通过实现一个简单的浏览器,说明了uiwebview的方法和属性,相信通过这个例子,应该明白uiwebview的使用了。那么最后希望本文对你有所帮助!本文提供的代码:UIWebViewDemo.zip 地址:http://files.cnblogs.com/zhuqil/UIWebViewDemo.zip。

责任编辑:zhaolei 来源: 博客园
相关推荐

2011-08-08 17:59:22

UIWebView网络网页

2015-06-26 09:59:19

UIWebViewiOSURL

2011-08-02 11:17:13

iOS开发 View

2014-07-21 14:49:35

iOSUILabel

2014-07-23 13:17:53

iOSUITextField

2011-08-02 09:46:04

iOS开发 XML

2011-08-02 10:08:32

IOS开发 XML

2015-07-09 13:47:37

IOSFMDB

2017-02-15 09:25:36

iOS开发MQTT

2011-08-08 18:26:52

UIWebView图片

2011-08-17 14:30:34

iOS开发窗口

2011-08-17 14:20:21

IOS开发GraphicsCon

2011-08-11 16:50:04

iOSTwitter

2011-08-17 10:09:25

iPhone开发UIWebViewTouch事件

2013-01-06 12:23:59

Android开发SQLite数据库

2011-04-12 08:40:23

IMFAndroid

2024-05-21 10:23:02

反射技术.NET编程语言

2011-08-16 14:59:31

IOS开发ViewDidUnloiOS 5

2014-04-01 10:50:42

iOS开发runtimeObjective-C

2014-08-08 10:12:44

IRC
点赞
收藏

51CTO技术栈公众号