UIWebView中添加活动指示器,来化解用户等待心理

序言:

在使用UIWebView中,在导入页面的过程中多少花费时间。为此,我们需要提醒用户当前正在进行数据导入,给用户展示“正在处理中。。。。”的提示。。

正文:

我们今天首先要看的是  友情快递:

友情快递:

UIWebViewDelegate协议中定义的状态监视方法

UIWebViewDelegate协议中定义的状态监视方法
方法名 调用时机
-(void)webViewDidStartLoad:(UIWebView *)webView
内容读取开始后被调用
-(void)webViewDidFinishLoad:(UIWebView *)webView
内容读入结束后,被调用
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
内容读入过程中错误发生后被调用。可被多次调用
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
内容读入开始时被调用。此时,返回YES后,内容的读入将交给UIWebView;返回NO后,UIWebView不进行读入处理。  如果想在点击链接的时候进行独自返回NO,再次方法中进行处理。

开完这个友情快递,你们大概也能知道,上述序言里的功能,也可以实现。。。。

第二:

我们介绍思路。如下:

我们实现—(void)webViewDidStartLoad:(UIWebView *)webView方法、-(void)webViewDidFinishLoad:(UIWebView *)webView方法、-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error方法,在网络通信开始时活动指示器动画开始。通信结束或者发生错误动画停止。

第三:实现功能步骤如下:

1、首先创建两个对象和添加UIWebViewDelegate代理协议。

协议:

UIViewController<UIWebViewDelegate>

两个对象:

UIWebView*_ZSJwebView;//网页架子UIActivityIndicatorView*_ZSJActivity;
//活动指示器对象

2、我们实例化网页对象和将活动指示器添加到工具条内。

实例化网页对象

 // UIWebView的设置_ZSJwebView=[[UIWebView alloc]initWithFrame:self.view.bounds];_ZSJwebView.delegate=self;//UIWebView自动适应_ZSJwebView.autoresizingMask=UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;_ZSJwebView.scalesPageToFit=YES;//让网页自动适合手机屏幕大小。[self.view addSubview:_ZSJwebView];

添加活动指示器到工具条内

 //添加活动指示器到工具条内_ZSJActivity=[[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(0, 0, 20, 250)];UIBarButtonItem*Indicator=[[UIBarButtonItem alloc]initWithCustomView:_ZSJActivity];UIBarButtonItem*adjustment=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];NSArray*buttons=[NSArray arrayWithObjects:Indicator,adjustment, nil];[self setToolbarItems:buttons animated:YES];

3、我们要在界面显示的时候,进行web网页的显示。

-(void)viewDidAppear:(BOOL)animated{[super viewDidAppear:animated];//Web的显示NSURLRequest*request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://blog.csdn.net/zhoushuangjian511"]];[_ZSJwebView loadRequest:request];}

4、UIWebViewDelegate协议的几个方法的使用。

数据开始读入时,让活动指示器开始动画。。。

-(void)webViewDidStartLoad:(UIWebView *)webView{
    
    
    [_ZSJActivity    startAnimating];
}

数据读入完成后,让活动指示器动画停止。

-(void)webViewDidFinishLoad:(UIWebView *)webView{[_ZSJActivity  stopAnimating];
}

当数据读入时出错或者失败,让活动指示器停止。

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{[_ZSJActivity stopAnimating];
}

我们的工作完成。。。。

效果展示:

   

          

完整代码:

#import <UIKit/UIKit.h>@interface ViewController : UIViewController<UIWebViewDelegate>
{UIWebView*_ZSJwebView;UIActivityIndicatorView*_ZSJActivity;}@end
#import "ViewController.h"
#import "Mylabel.h"@implementation ViewController
-(void)viewDidLoad{[super viewDidLoad];self.view.backgroundColor=[UIColor greenColor];self.title=@"明缺信息显示";[self makeUI];
}-(void)makeUI
{//// UIWebView的设置_ZSJwebView=[[UIWebView alloc]initWithFrame:self.view.bounds];_ZSJwebView.delegate=self;//UIWebView自动适应_ZSJwebView.autoresizingMask=UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;_ZSJwebView.scalesPageToFit=YES;//让网页自动适合手机屏幕大小。[self.view addSubview:_ZSJwebView];//添加活动指示器到工具条内_ZSJActivity=[[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(self.view.center.x-40, self.view.center.y-40, 80, 80)];_ZSJActivity.backgroundColor=[UIColor redColor];[self.view addSubview:_ZSJActivity];UIBarButtonItem*Indicator=[[UIBarButtonItem alloc]initWithCustomView:_ZSJActivity];UIBarButtonItem*adjustment=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];NSArray*buttons=[NSArray arrayWithObjects:adjustment, Indicator,adjustment,   nil];[self setToolbarItems:buttons animated:YES];}-(void)viewDidAppear:(BOOL)animated{[super viewDidAppear:animated];//Web的显示NSURLRequest*request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://blog.csdn.net/zhoushuangjian511"]];[_ZSJwebView loadRequest:request];}-(void)webViewDidStartLoad:(UIWebView *)webView{[_ZSJActivity    startAnimating];
}-(void)webViewDidFinishLoad:(UIWebView *)webView{[_ZSJActivity  stopAnimating];
}-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{[_ZSJActivity stopAnimating];
}@end

UIWebView中添加活动指示器,来化解用户等待心理相关推荐

  1. Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色

    Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色 在图12.10~12.12中我们会看到在各个平台下活动指示器的颜色是不一样的.Android的活动指示器默认是深粉色的: ...

  2. Linux中添加、修改、删除用户和用户组

    一.用户: 在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个与用户名同名的工作组.创建用户user1的时候指定其所属工作组users,例:useradd –g u ...

  3. Mozilla计划向Firefox浏览器中添加违规警告

    Mozilla 计划向 Firefox 浏览器中添加警告通知,当用户访问过得网站被黑客入侵时. 黑客入侵网络服务和网站是互联网上常见的事情,虽然黑客可能有不同的目的,但他们都想盗取网站的用户数据库. ...

  4. 盒马员工因工资单意外被同事看到,遭强制开除;微博被传大面积裁员、员工被要求主动离职,官方否认;豆瓣在截图中添加盲水印|雷峰早报...

    微博回应大面积裁员:调整部分组织架构 2月19日,微博上了脉脉App热搜,在"传微博正在优化员工"的话题中,有经过职位信息认证的微博员工表示,微博正在大面积裁员,有的员工还被要求主 ...

  5. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  6. 使用PHP往Windows系统中添加用户

    可以实现, 方法有二. 一.再Web中添加用户 因为添加用户,所以你运行PHP程序的用户必须是管理员权限(Administrator),并且同时需要你的php.ini中的安全模式没有打开,并且关闭函数 ...

  7. ASP.NET开发:在用户控件中添加属性

    在WEB开发中,可重用的代码我们可以把它写成一个通用模块供需要的地方来引用.本文就是介绍在ASP.NET的web编程时,如何在用户控件中添加属性,实现这种方法:举例说明详解. 在WEB开发中经常有一些 ...

  8. MySql中添加用户/删除用户

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  9. mysql中给用户添加密码_MySql中添加用户,新建数据库,用户授权,删除用户,修改密码...

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

最新文章

  1. python wlile
  2. 康奈尔大学王飞博士:AI处理医疗数据面临的8大挑战
  3. Python爬虫学习获取腾讯新闻并存入Excel
  4. xd怎么制作年月日选项_Adobe XD从入门到精通(上)
  5. React开发(186):react 父调用子组件的方法
  6. Idea中搭建Wildfly(JBoss)运行环境(Mac)
  7. 首次结算和汇总不一致
  8. 【算法】剑指 Offer 03. 数组中重复的数字
  9. (clion 安装插件联网络失败,pycharm pip联网失败)当电脑选择拨号上网时,解决系统代理被篡改/pip提示“目标计算机积极拒绝,无法连接”的方法! [ 此方法绝对解决系统代理被篡改问题 ]
  10. IT行业上盘与碟的区别
  11. i511260h参数 i5 11260h评测
  12. c语言的log算法实现,C语言中有关log函数的算法
  13. 1.5时钟控制的触发器(钟控JK、钟控T触发器)
  14. 库克低调访华,3小时郑州行程俨然一位效率大师
  15. Mac 安装 idb 和 idb_companion
  16. [深度学习]动手学深度学习笔记-15
  17. LTE-5G学习笔记8---PRACH参数规划
  18. 批量提取PPT里面包含的图片教程
  19. 什么是生态型平台企业?
  20. php扩展库后门,编写基于PHP扩展库的后门

热门文章

  1. Python 淘宝商品价格爬取(requests库+正则表达式)
  2. pr模板.mogrt格式安装方法
  3. 项目选题-口罩识别检测系统
  4. kettle多表数据迁移
  5. java关闭端口_使用java代码关闭指定端口的程序-windows
  6. python是自由开放源代码软件_开放源代码定义之历史篇
  7. Python零基础速成班-第1讲-认识Python,课程目标,安装环境以及完成第一行代码“hello world”
  8. vue.js — 安装Webpake创建一个完整的项目并上传至码云
  9. 02-07GRE真题及答案解析整理
  10. python二元函数如何编写,Nelder_Mead算法的简介和用作求解二维函数最小值的Python实现...