ios基础篇(十六)——UIWebView的基本使用
UIWebView是内置的浏览器控件,可以用它来浏览网页、打开文档等。UIWebView是一个混合体,具体的功能控件内置的,实现一些基本的功能。UIWebView可以查看Html网页,pdf文件,docx文件,txt文件文件,系统自带的Safari就是UIWebView实现的。
这篇文章将使用这个控件做一个简易浏览器;如图:

新建一个工程,命名为UIWebViewDemo;
如上图,界面上分别放了UITextField(用于地址栏),UIButton(用于设置点击事件),UIWebView(用于展示网页)三个控件。
基础布局:

UITextField,UIButton就不说了,先来看看UIWebView;
@interface ViewController ()<UIWebViewDelegate>{
UITextField *textFiled;
UIButton *button;
UIWebView *webView;
UIActivityIndicatorView *activityIndicator;
}
不要忘了设置代理,
//初始化浏览器控件UIWebView
webView = [[UIWebView alloc] initWithFrame:(CGRect){,,width,height-}];
[self.view addSubview:webView];
4 webView.delegate = self;
//定义请求地址
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];
//利用浏览器访问地址
[webView loadRequest:request];
网络连接是会遇到半天才加载出来数据的情况,网速比较慢的时候,一般都都会给个提示让用户感觉到我们在努力的加载数据;iOS可以通过UIActivityIndicatorView实现类似的效果,UIActivityIndicatorView实例提供轻型视图,这些视图显示一个标准的旋转进度轮。

iPhone提供了几种不同样式的UIActivityIndicatorView类。UIActivityIndicator- ViewStyleWhite和UIActivityIndicatorViewStyleGray是最简洁的。黑色背景下最适合白色版本的外观,白色背景最适合灰色外观;选择白色还是灰色时要格外注意,全白显示在白色背景下将不能显示任何内容。而UIActivityIndicatorViewStyleWhiteLarge只能用于深色背景,它提供最大、最清晰的指示器。
设置UIWebView,初始化UIActivityIndicatorView:
activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:(CGRect){,,,}];
[backView addSubview:activityIndicator];
activityIndicator.center = self.view.center;
[activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];
[activityIndicator startAnimating];
UIWebView主要有下面几个委托方法:
1、- (void)webViewDidStartLoad:(UIWebView *)webView;——开始加载的时候执行该方法。
2、- (void)webViewDidFinishLoad:(UIWebView *)webView;——加载完成的时候执行该方法。
3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;——加载出现错误的时候执行该方法。
开始加载(为了看的清除,我们加上黑色半透明背景和白色的旋转进度轮)
- (void)webViewDidStartLoad:(UIWebView *)webView{
UIView *backView = [[UIView alloc] initWithFrame:(CGRect){,,self.view.frame.size.width,self.view.frame.size.height}];
backView.alpha = 0.5;
backView.backgroundColor = [UIColor blackColor];
[self.view addSubview:backView];
backView.tag = ;
activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:(CGRect){,,,}];
[backView addSubview:activityIndicator];
activityIndicator.center = self.view.center;
[activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];
[activityIndicator startAnimating];
}
加载完成(旋转进度轮停止,黑色背景移除)
- (void)webViewDidFinishLoad:(UIWebView *)webView{
[activityIndicator stopAnimating];
UIView *view = [self.view viewWithTag:];
[view removeFromSuperview];
}
加载出现错误时,给予提示
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
[activityIndicator stopAnimating];
UIView *view = [self.view viewWithTag:];
[view removeFromSuperview];
UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@"出现错误" message:@"" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alterview show];
}

ios基础篇(十六)——UIWebView的基本使用的更多相关文章
- ios基础篇(六)——UITextView的常用方法及技巧
上篇说到了UITextField,我们先来说说UITextView和UITextField的不同: UITextView支持多行输入; UITextFiled只支持单行; UITextView没有pl ...
- Bootstrap <基础二十六>进度条
Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet ...
- 小猪猪C++笔记基础篇(六)参数传递、函数重载、函数指针、调试帮助
小猪猪C++笔记基础篇(六) ————参数传递.函数重载.函数指针.调试帮助 关键词:参数传递.函数重载.函数指针.调试帮助 因为一些事情以及自己的懒惰,大概有一个星期没有继续读书了,已经不行了,赶紧 ...
- python基础篇(六)
PYTHON基础篇(六) 正则模块re A:正则表达式和re模块案例 B:re模块的内置方法 时间模块time A:时间模块的三种表示方式 B:时间模块的相互转换 随机数模块random A:随机数模 ...
- css3基础教程十六变形与动画animation
前面我们讲过的变形与动画一般都是通过鼠标的单击.获得焦点,被点击或对元素进行一定改变后以后触发效果的,那么有没有像Flash一样自动播放的动画效果呢?答案当然是肯定的,这就是我们今天要讲到的anima ...
- linux基础-第十六单元 yum管理RPM包
第十六单元 yum管理RPM包 yum的功能 本地yum配置 光盘挂载和镜像挂载 本地yum配置 网络yum配置 网络yum配置 Yum命令的使用 使用yum安装软件 使用yum删除软件 安装组件 删 ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(六)maven整合SSM
写在前面的话 承接前文<Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven>,本篇所讲述的是如何使用maven与原ssm项目整合,使得一个普 ...
- ios基础篇(二十六)—— UITableViewCell的分组索引与标记
一.表视图的索引目录 首先要创建一个TableView,之前有说过,这里就不详细说了(参考前面第十四篇). 直接贴代码吧, #import "ViewController.h" @ ...
- ios基础篇(二十九)—— 多线程(Thread、Cocoa operations和GCD)
一.进程与线程 1.进程 进程是指在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内: 如果我们把CPU比作一个工厂,那么进程就好比工厂的车间,一个工厂有 ...
随机推荐
- Leetcode: Pacific Atlantic Water Flow
Given an m x n matrix of non-negative integers representing the height of each unit cell in a contin ...
- 列间距column-gap
column-gap主要用来设置列与列之间的间距,其语法规则如下: column-gap: normal || <length> 取值说明 属性值 属性值说明 normal 默认值,默值为 ...
- ASP标准控件的重要性
1.BackColor 属性:用于显示ListBox控件中的文本和图形的背景颜色,默认为白色(Window) 2.BorderStyle 属性:控制在列表框ListBox周围绘制的边框的类型,其枚举值 ...
- Bug测试报告--在线考试系统--金州勇士
项目名:在线考试系统 组名:金州勇士 测试者:宫丽君(nice!团队) 代码地址: ssh:git@git.coding.net:handsomeman/examm.git https://g ...
- 十二、Java基础---------异常处理机制
异常 异常 异常就是程序在运行时产生的异常情况. 异常的由来 问题也是现实生活中的具体事物,也可以通过java 类的形式进行描述,并封装成对象.异常就是java 对不正常情况进行描述后的对象的体现. ...
- [6] 智能指针boost::weak_ptr
[1]boost::weak_ptr简介 boost::weak_ptr属于boost库,定义在namespace boost中,包含头文件 #include<boost/weak_ptr.hp ...
- tomcat 大并发报错 Maximum number of threads (200) created for connector with address null and port 8080
1.INFO: Maximum number of threads (200) created for connector with address null and port 8091 说明:最大线 ...
- 【SSO单点系列】(2):CAS4.0 登录页的个性化定制
上一篇 [SSO单点系列](1):CAS环境的搭建介绍了CAS最简单环境的搭建,以及一个例子用来讲解CAS的一个最基础的用法. 今天主要是介绍如何对CAS登录页进行个性化定制. 一.开始 下图是 ...
- python(五)文件操作
1.打开文件 f = open('db','r') #只读 f = open('db','w') #只写,先清空原文件 f = open('db','x') #文件存在,报错,不存在,创建 ...
- 升级PHP
wget http://down.wdlinux.cn/in/php_up53.shsh php_up53.sh