UIWebView中添加活动指示器,来化解用户等待心理
UIWebView中添加活动指示器,来化解用户等待心理
序言:
在使用UIWebView中,在导入页面的过程中多少花费时间。为此,我们需要提醒用户当前正在进行数据导入,给用户展示“正在处理中。。。。”的提示。。
正文:
我们今天首先要看的是 友情快递:
友情快递:
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中添加活动指示器,来化解用户等待心理相关推荐
- Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色
Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色 在图12.10~12.12中我们会看到在各个平台下活动指示器的颜色是不一样的.Android的活动指示器默认是深粉色的: ...
- Linux中添加、修改、删除用户和用户组
一.用户: 在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个与用户名同名的工作组.创建用户user1的时候指定其所属工作组users,例:useradd –g u ...
- Mozilla计划向Firefox浏览器中添加违规警告
Mozilla 计划向 Firefox 浏览器中添加警告通知,当用户访问过得网站被黑客入侵时. 黑客入侵网络服务和网站是互联网上常见的事情,虽然黑客可能有不同的目的,但他们都想盗取网站的用户数据库. ...
- 盒马员工因工资单意外被同事看到,遭强制开除;微博被传大面积裁员、员工被要求主动离职,官方否认;豆瓣在截图中添加盲水印|雷峰早报...
微博回应大面积裁员:调整部分组织架构 2月19日,微博上了脉脉App热搜,在"传微博正在优化员工"的话题中,有经过职位信息认证的微博员工表示,微博正在大面积裁员,有的员工还被要求主 ...
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
- 使用PHP往Windows系统中添加用户
可以实现, 方法有二. 一.再Web中添加用户 因为添加用户,所以你运行PHP程序的用户必须是管理员权限(Administrator),并且同时需要你的php.ini中的安全模式没有打开,并且关闭函数 ...
- ASP.NET开发:在用户控件中添加属性
在WEB开发中,可重用的代码我们可以把它写成一个通用模块供需要的地方来引用.本文就是介绍在ASP.NET的web编程时,如何在用户控件中添加属性,实现这种方法:举例说明详解. 在WEB开发中经常有一些 ...
- MySql中添加用户/删除用户
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
- mysql中给用户添加密码_MySql中添加用户,新建数据库,用户授权,删除用户,修改密码...
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
最新文章
- python wlile
- 康奈尔大学王飞博士:AI处理医疗数据面临的8大挑战
- Python爬虫学习获取腾讯新闻并存入Excel
- xd怎么制作年月日选项_Adobe XD从入门到精通(上)
- React开发(186):react 父调用子组件的方法
- Idea中搭建Wildfly(JBoss)运行环境(Mac)
- 首次结算和汇总不一致
- 【算法】剑指 Offer 03. 数组中重复的数字
- (clion 安装插件联网络失败,pycharm pip联网失败)当电脑选择拨号上网时,解决系统代理被篡改/pip提示“目标计算机积极拒绝,无法连接”的方法! [ 此方法绝对解决系统代理被篡改问题 ]
- IT行业上盘与碟的区别
- i511260h参数 i5 11260h评测
- c语言的log算法实现,C语言中有关log函数的算法
- 1.5时钟控制的触发器(钟控JK、钟控T触发器)
- 库克低调访华,3小时郑州行程俨然一位效率大师
- Mac 安装 idb 和 idb_companion
- [深度学习]动手学深度学习笔记-15
- LTE-5G学习笔记8---PRACH参数规划
- 批量提取PPT里面包含的图片教程
- 什么是生态型平台企业?
- php扩展库后门,编写基于PHP扩展库的后门
热门文章
- Python 淘宝商品价格爬取(requests库+正则表达式)
- pr模板.mogrt格式安装方法
- 项目选题-口罩识别检测系统
- kettle多表数据迁移
- java关闭端口_使用java代码关闭指定端口的程序-windows
- python是自由开放源代码软件_开放源代码定义之历史篇
- Python零基础速成班-第1讲-认识Python,课程目标,安装环境以及完成第一行代码“hello world”
- vue.js — 安装Webpake创建一个完整的项目并上传至码云
- 02-07GRE真题及答案解析整理
- python二元函数如何编写,Nelder_Mead算法的简介和用作求解二维函数最小值的Python实现...