转载于爱德凡的百度空间,地址:http://hi.baidu.com/aidfan/item/34a720866b33cbcdef083d37

UIWebView 使用详解

一.UIWebView加载的时候通常有几种方法

1.loadRequest:

2.loadHTMLString:string  baseURL:

3.loadData:MIMEType:textEncodingName:baseURL:

其中baseURL 是指基准的url 是一个绝对的地址,程序要用到的其他资源就可以根据这个基准地址进行查找而不用再次定位到绝对地址;

二.UIWebView中几个重要的函数

1.- (void )webViewDidStartLoad:(UIWebView  *)webView   网页开始加载的时候调用

2.- (void )webViewDidFinishLoad:(UIWebView  *)webView  网页加载完成的时候调用

3.-(BOOL )webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType )navigationType

当程序以UIWebView加载方式1进行加载的时候就会调用到此函数,然后执行webViewDidStartLoad函数,所以我们可以在此函数中进行一些请求解析,URL地址分析的工作。

4.- (void)webView:(UIWebView *)webView  didFailLoadWithError:(NSError *)error

是一个可选的函数,如果页面加载失败可以根据不同的错误类型反馈给用户不同的信息

三.代码实现

1.在.h文件中加载声明UIWebviewDelegate协议

声明WebView

2.实现UIWebView

WebView  = [[ UIWebView   alloc]  initWithFrame: CGRectMake(x,x,x,x )];

[ WebView   setUserInteractionEnabled: YES ];  //是否支持交互

[ WebView   setDelegate: self ];  //委托

[ WebView   setOpaque: NO ];  //透明

[ self . view  addSubview : WebView];  //加载到自己的view

url = [[ NSURL alloc ] initWithString :@"http:"];

[ WebView loadRequest:[ NSURLRequest requestWithURL: url ]];  //笔者习惯采用loadRequest方式,你可以采用其他方式

opaqueview = [[ UIView   alloc]  initWithFrame: CGRectMake(x ,  x ,  x ,  x )];        //opaqueview 需要在.h文件中进行声明 用以做UIActivityIndicatorView的容器view;

activityIndicator  = [[ UIActivityIndicatorView   alloc]  initWithFrame: CGRectMake( x ,  x ,  x ,  x )];//需要在.h文件中进行声明

[ activityIndicator  setCenter :  opaqueview. center ];

[ activityIndicator   setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite];  //颜色根据不同的界面自己调整

[ opaqueview  setBackgroundColor:[ UIColor   blackColor]];

[ opaqueview  setAlpha: 0.6 ];

[ self . view  addSubview :  opaqueview];

[ opaqueview  addSubview : activityIndicator];

接下来添加

- (void )webViewDidFinishLoad:(UIWebView *)webView {

[activityIndicator stopAnimating];

opaqueview.hidden  = YES ;

}

- (void )webViewDidStartLoad:(UIWebView *)webView {

[ activityIndicator startAnimating ];

opaqueview.hidden  = NO ;

}

这样就简单的实现了UIWebView控件的加载使用,不同的页面均有加载的等待。

//.h文件
@interface ViewController : UIViewController<UIWebViewDelegate>{
IBOutlet UIWebView *webView;
UIActivityIndicatorView *activityIndicatorView;
UIView *opaqueview;
} //.m文件
- (void)viewDidLoad
{
[superviewDidLoad];
webView = [[UIWebViewalloc] initWithFrame:CGRectMake(, , , )];
[webViewsetUserInteractionEnabled:YES]; //是否支持交互
[webView setDelegate:self]; //委托
[webView setOpaque:NO]; //Opaque为不透明的意思,这里为透明
[webView setScalesPageToFit:YES]; //自动缩放以适应屏幕
[self.view addSubview:webView]; //加载网页的方式
//1.创建并加载远程网页
NSURL* url = [NSURLURLWithString:@"http://www.baidu.com"];
[webViewloadRequest:[NSURLRequestrequestWithURL:url]];
//2.加载本地文件资源
// NSURL *url = [NSURL fileURLWithPath:filePath]; //filePath为文件路径
// NSURLRequest *request = [NSURLRequest requestWithURL:url];
// [webView loadRequest:request]; //3.读入一个 HTML,直接写入一个HTML代码
// NSString *htmlPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"webapp/loader.html"];//相当于文件地址
// NSString *htmlString = [NSString stringWithContentsOfFile: htmlPath encoding:NSUTF8StringEncoding error:NULL];
// [webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:htmlPath]];
opaqueview = [[UIViewalloc] initWithFrame:CGRectMake(, , , )]; //opaqueview 需要在.h文件中进行声明用以做UIActivityIndicatorView的容器view; activityIndicatorView = [[UIActivityIndicatorViewalloc] initWithFrame:CGRectMake(, , , )];
[activityIndicatorView setCenter:opaqueview.center]; [ activityIndicatorView setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite]; //颜色根据不同的界面自己调整
[ opaqueview setBackgroundColor:[ UIColor blackColor]];
[ opaqueview setAlpha: 0.6 ];
[ self . view addSubview : opaqueview];
[ opaqueview addSubview : activityIndicatorView];
} //当网页视图已经开始加载一个请求之后得到通知 - (void) webViewDidStartLoad:(UIWebView *)webView {
[activityIndicatorViewstartAnimating];
opaqueview.hidden = NO;
} //当网页视图结束加载一个请求之后得到通知 - (void) webViewDidFinishLoad:(UIWebView *)webView{
[activityIndicatorViewstopAnimating]; //停止风火轮
opaqueview.hidden = YES; //隐藏
}

ios学习之UIWebView网页视图的更多相关文章

  1. ios学习之UIWebView网页视图调整

    //先来一个可行的小Demo程序:结合searchBar的google搜索 #import <UIKit/UIKit.h> @interface ViewController : UIVi ...

  2. [Swift通天遁地]一、超级工具-(5)使用UIWebView(网页视图)加载本地页面并调用JavaScript(脚本)代码

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  3. [Swift通天遁地]一、超级工具-(4)使用UIWebView(网页视图)加载HTML和Gif动画

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  4. [转]IOS 学习笔记(8) 滚动视图(UIScrollView)的使用方法

    下面介绍pageControl结合ScrollView实现连续滑动翻页的效果,ScrollView我们在应用开发中经常用到,以g这种翻页效果还是很好看的,如下图所示: 通过这个例子,我们重点学习UIS ...

  5. iOS UI-UIPickerView(拾取器)、UIWebView(网页视图)和传值方式

    // // ViewController.m // IOS_0107_finalToolClass // // Created by ma c on 16/1/7. // Copyright (c) ...

  6. iOS:网页视图控件UIWebView的详解

    网页视图控件:UIWebView 功能:它是继承于UIView的,是一个内置的浏览器控件,以用来浏览从网络下载下来的网页或者本地上加载下来的文档. 枚举: //网页视图导航类型 typedef NS_ ...

  7. ios网络学习------4 UIWebView的加载本地数据的三种方式

    ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...

  8. 【iOS系列】-UIWebView加载网页禁止左右滑动

    [iOS系列]-UIWebView加载网页禁止左右滑动 问题: 做项目时候,用UIWebView加载网页的时候,要求是和微信网页中打开的网页的效果一样,也即是只能上下滑动,不能左右滑动,也不能缩放. ...

  9. iOS学习笔记-精华整理

    iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...

随机推荐

  1. Spark算子---实战应用

    Spark算子实战应用 数据集 :http://grouplens.org/datasets/movielens/ MovieLens 1M Datase 相关数据文件 : users.dat --- ...

  2. 腾讯云CentOS7.0使用yum安装mysql

    背景: 今天才申请了腾讯云+校园计划的1元服务器,(https://www.qcloud.com/event/qcloudSchool)安装了Centos7.0,在安装mysql的时候,使用yum l ...

  3. ASP.net中aspx与cs函数的互调

    转载自:http://www.2cto.com/kf/201209/152898.html aspx前台的script函数,调用aspx.cs中后台函数: aspx: <script type= ...

  4. android开发(27) 看看我的手机里都有什么传感器

    想看看我的HTC ONE x 具有什么传感器.写个代码RUN一下. 代码很简单,直接贴了 package zyf.demo.sensordemo; import java.util.List; imp ...

  5. 云服务器启动tomcat巨慢,很慢

    增加随机数生成熵池 0.查看熵池 cat /proc/sys/kernel/random/entropy_avail 1. yum install rng-tools 2. systemctl sta ...

  6. 微信小程序——极点日历使用方法

    极点日历github项目地址 添加至自己的小程序方法 极点日历属性接口文档 代码实例: xml: <calendar calendar-style="calendar" he ...

  7. Windows安装Tomcat失败:Failed installing tomcat7 service

    今天在Win7下面安装tomcat(解压版),但是安装的时候老是弹出:Failed installing tomcat6 service.猜想是Win7安全权限管理的原因.网上搜了一下果然是这样. 解 ...

  8. 安卓程序代写 网上程序代写[原]BluetoothDevice详解

    一. BluetoothDevice简介 1. 继承关系 public static Class BluetoothDevice extends Object implement Parcelable ...

  9. [hadoop读书笔记]前言

    hadoop2.0+主要变化: 全新的MapReduce 2,它建立在一个新的分布式资源管理系统之上,该系统称之为YARN. YARN:分布式资源管理系统

  10. Sword redis C语言接口介绍

    hiredis安装 hiredis是redis官方推荐的基于C接口的客户端组件,它提供接口,供c语言调用以操作数据库. 在redis的源码包的deps/hiredis下就有它的源码 安装方法,进入de ...