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。