转载于爱德凡的百度空间,地址: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. FormWindowState.Maximized的陷阱

    MDI父窗体下面有很多子窗体.子窗体打开时都是以FormWindowState.Maximized的属性打开的,但是结果部分如意,部分奇怪. 先贴上单实例的代码: static TestForm _s ...

  2. IEnumerable<T> 转换为数组

    IEnumerable<User> userlist=xxxx; string[] ids=userlist.select(u=>u.id).toArray();

  3. sqoop 兼容性问题

    --direct 只支持mysql 5.0 + 和postgresql 8.3+(只是import) jdbc的jar包需要放在$SQOOP_HOME/lib目录下 mysql zeroDateTim ...

  4. compareTo返回值为-1 、 1 、 0 的排序问题

    1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 .实现此接口的对象列表(和数组)可 ...

  5. 将windows控制台内容输出到文件中

    将windows控制台内容输出到文件中 dir>c:/file.txt 2>&1   对应的java  class   >c:/file.txt 2>&1   ...

  6. js之队列01

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. MinGW下编译openssl, json-c

    目的:在windows环境下,编译开源库openssl 环境:windows 10 ,Mingw及自带msys工具,openssl-1.0.2j 工具主要使用MinGW(含msys1.0), IDE选 ...

  8. BitSet 是个好东西

    顾名思义,就是位集合(bit set),是从JDK 1.0就出现的东西,后面的版本又慢慢强化. 我们说学习一样东西,最好是场景驱动 - 要考虑它的使用场景,这样才有意义. 那么,BitSet的应用场景 ...

  9. Mybatis表关联一对多

    有了前面几章的基础,对一些简单的应用是可以处理的,但在实际项目中,经常是关联表的查询,比如:最常见到的多对一,一对多等.这些查询是如何处理的呢,这一讲就讲这个问题.前面几篇教程中介绍的都是单表映射的一 ...

  10. e822. 监听JScrollPane的滚动

    A scrollbar in a scroll pane fires adjustment events whenever its value changes. // Create a scrolla ...