ios基础篇(十六)——UIWebView的基本使用

本文将指导您如何使用UIWebView控件构建一个简单的浏览器应用,包括设置布局、加载网页、处理加载状态和错误提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UIWebView是内置的浏览器控件,可以用它来浏览网页、打开文档等。UIWebView是一个混合体,具体的功能控件内置的,实现一些基本的功能。UIWebView可以查看Html网页,pdf文件,docx文件,txt文件文件,系统自带的Safari就是UIWebView实现的。

这篇文章将使用这个控件做一个简易浏览器;如图:

 

新建一个工程,命名为UIWebViewDemo;

如上图,界面上分别放了UITextField(用于地址栏),UIButton(用于设置点击事件),UIWebView(用于展示网页)三个控件。

基础布局:

UITextField,UIButton就不说了,先来看看UIWebView;

 

1 @interface ViewController ()<UIWebViewDelegate>{
2     
3     UITextField *textFiled;
4     UIButton *button;
5     UIWebView *webView;
6     UIActivityIndicatorView *activityIndicator;
7     
8 }

 

不要忘了设置代理,

 

1 //初始化浏览器控件UIWebView
2     webView = [[UIWebView alloc] initWithFrame:(CGRect){0,60,width,height-60}];
3     [self.view addSubview:webView];
4     webView.delegate = self;
5 //定义请求地址
6 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];
7 //利用浏览器访问地址
8 [webView loadRequest:request];
9

网络连接是会遇到半天才加载出来数据的情况,网速比较慢的时候,一般都都会给个提示让用户感觉到我们在努力的加载数据;iOS可以通过UIActivityIndicatorView实现类似的效果,UIActivityIndicatorView实例提供轻型视图,这些视图显示一个标准的旋转进度轮。

iPhone提供了几种不同样式的UIActivityIndicatorView类。UIActivityIndicator- ViewStyleWhite和UIActivityIndicatorViewStyleGray是最简洁的。黑色背景下最适合白色版本的外观,白色背景最适合灰色外观;选择白色还是灰色时要格外注意,全白显示在白色背景下将不能显示任何内容。而UIActivityIndicatorViewStyleWhiteLarge只能用于深色背景,它提供最大、最清晰的指示器。

设置UIWebView,初始化UIActivityIndicatorView:

1 activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:(CGRect){0,0,30,30}];
2     [backView addSubview:activityIndicator];
3     activityIndicator.center = self.view.center;
4     [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];
5     [activityIndicator startAnimating];

UIWebView主要有下面几个委托方法:

1、- (void)webViewDidStartLoad:(UIWebView *)webView;——开始加载的时候执行该方法。
2、- (void)webViewDidFinishLoad:(UIWebView *)webView;——加载完成的时候执行该方法。
3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;——加载出现错误的时候执行该方法。

开始加载(为了看的清除,我们加上黑色半透明背景和白色的旋转进度轮)

 1 - (void)webViewDidStartLoad:(UIWebView *)webView{
 2     UIView *backView = [[UIView alloc] initWithFrame:(CGRect){0,0,self.view.frame.size.width,self.view.frame.size.height}];
 3     backView.alpha = 0.5;
 4     backView.backgroundColor = [UIColor blackColor];
 5     [self.view addSubview:backView];
 6     backView.tag = 100;
 7     
 8     activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:(CGRect){0,0,30,30}];
 9     [backView addSubview:activityIndicator];
10     activityIndicator.center = self.view.center;
11     [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];
12     [activityIndicator startAnimating];
13 }

加载完成(旋转进度轮停止,黑色背景移除)

1 - (void)webViewDidFinishLoad:(UIWebView *)webView{
2     
3     [activityIndicator stopAnimating];
4     UIView *view = [self.view viewWithTag:100];
5     [view removeFromSuperview];
6 
7 }

加载出现错误时,给予提示

 1 - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
 2 
 3     [activityIndicator stopAnimating];
 4     UIView *view = [self.view viewWithTag:100];
 5     [view removeFromSuperview];
 6     
 7     UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@"出现错误" message:@"" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
 8     [alterview show];
 9     
10 }

 

转载于:https://www.cnblogs.com/0320y/p/5073324.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值