ITPub博客

首页 > IT职业 > IT图书 > iOS开发之UIWebView

iOS开发之UIWebView

IT图书 作者:hunter_tols 时间:2021-09-09 09:10:56 0 删除 编辑

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用于按钮的点击事件。

@interface UIWebViewDemoViewController :UIViewController {   
    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];
}

总结:本文通过实现一个简单的浏览器,说明了uiwebview的方法和属性,相信通过这个例子,应该明白uiwebview的使用了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4604/viewspace-2808392/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-08

  • 博文量
    87
  • 访问量
    616