今天我们来详细UIWebView用法。UIWebView是iOS内置的浏览器控件,可以浏览网页、打开文档等 能够加载html/htm、pdf、docx、txt等格式的文件.

用UIWebView我们就可以做一个简易的浏览器。效果如下:

创建UIWebView

首先创建UIWebView,这个不难,设置frame,然后添加到self.view上即可:

  1. UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
  2. webView.scalesPageToFit = YES;//自动对页面进行缩放以适应屏幕
  3. [self.view addSubview:webView];

UIWebView加载网络地址

用UIWebView来加载网络地址,那我的博客:http://www.superqq.com 来举例。代码如下:

  1. NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.superqq.com"]];
  2. [self.view addSubview:webView];
  3. [webView loadRequest:request];

UIWebView加载本地资源

通过NSURLRequest加载

  1. NSString *path = [[NSBundle mainBundle] pathForResource:@"swift" ofType:@"html"];
  2. NSURL* url = [NSURL fileURLWithPath:path];//创建URL
  3. NSURLRequest* request = [NSURLRequest requestWithURL:url];//创建NSURLRequest
  4. [webView loadRequest:request];//加载

通过NSString加载

UIWebView 还支持将一个NSString对象作为源来加载。你可以为其提供一个基础URL,来指导UIWebView对象如何跟随链接和加载远程资源:

  1. NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
  2. NSString *htmlString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
  3. [webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:path]];

自动检测电话

设置这个属性,如果在加载的网页中遇到电话号码,直接单击就可以拨打,非常方便:

  1. webView.dataDetectorTypes = UIDataDetectorTypePhoneNumber;//自动检测网页上的电话号码,单击可以拨打

设置代理和代理方法

UIWebView有五个代理方法,我们可以在不同的代理方法中,完成不同的需求。

  1. //设置代理
  2. webView.delegate = self;
  3. //代理方法
  4. - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
  5. {
  6. //返回YES,进行加载。通过UIWebViewNavigationType可以得到请求发起的原因
  7. return YES;
  8. }
  9. - (void)webViewDidStartLoad:(UIWebView *)webView
  10. {
  11. //开始加载,可以加上风火轮(也叫菊花)
  12. }
  13. - (void)webViewDidFinishLoad:(UIWebView *)webView
  14. {
  15. //完成加载
  16. }
  17. - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
  18. {
  19. //加载出错
  20. }

创建加载他、停止、后退、前进按钮

创建四个按钮,分别是加载按钮、停止按钮、返回按钮、前进按钮:

  1. NSArray *array = [NSArray arrayWithObjects:@"加载",@"停止",@"返回",@"前进", nil];
  2. int far = (SCREEN.width - 200)/5;
  3. for (int i = 0; i < array.count; i++) {
  4. UIButton *button = [[UIButton alloc] init];
  5. button.frame = CGRectMake( (i + 1) * far + 50 * i, SCREEN.height - 60, 50, 40);
  6. button.tag = 200 + i;
  7. [button addTarget:self action:@selector(actionClick:) forControlEvents:UIControlEventTouchUpInside];
  8. [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
  9. [button setBackgroundColor:[UIColor orangeColor]];
  10. [button setTitle:array[i] forState:UIControlStateNormal];
  11. [self.view addSubview:button];
  12. }

前进后退

给四个按钮绑定事件,根据tag值来区分每一个点击事件:

  1. - (void)actionClick:(UIButton *)button
  2. {
  3. switch (button.tag) {
  4. case 200:
  5. {
  6. [self.webView reload];//加载
  7. }
  8. break;
  9. case 201:
  10. {
  11. [self.webView stopLoading];//停止加载
  12. }
  13. break;
  14. case 202:
  15. {
  16. [self.webView goBack];//返回
  17. }
  18. break;
  19. case 203:
  20. {
  21. [self.webView goForward];//前进
  22. }
  23. break;
  24. default:
  25. break;
  26. }
  27. }

大功告成,再来看看效果:

以上分享的内容我做了一个demo,需要的话可以点击这里下载:UIWebView用法详解

本文出处刚刚在线:http://www.superqq.com/blog/2015/07/08/uiwebviewyong-fa-xiang-jie/

UIWebView用法详解及代码分享的更多相关文章

  1. C#的String.Split 分割字符串用法详解的代码

    代码期间,把代码过程经常用的内容做个珍藏,下边代码是关于C#的String.Split 分割字符串用法详解的代码,应该对码农们有些用途. 1) public string[] Split(params ...

  2. c/c++中define用法详解及代码示例

    https://blog.csdn.net/u012611878/article/details/52534622   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...

  3. SVN组成中trunk,branches and tags功能用法详解

    SVN组成中trunk,branches and tags功能用法详解  我相信初学开发在SVN作为版本管理时,都估计没可能考虑到如何灵活的运用SVN来管理开发代码的版本,下面我就摘录一篇文章来简单说 ...

  4. ava下static关键字用法详解

    Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static ...

  5. JavaScript中return的用法和this的用法详解

    JavaScript中return的用法详解 最近,跟身边学前端的朋友了解,有很多人对this和函数中的return的用法和意思理解的比较模糊,这里写一篇博客跟大家一起探讨一下return和this的 ...

  6. JavaScript中return的用法详解

    JavaScript中return的用法详解 最近,跟身边学前端的朋友了解,有很多人对函数中的this的用法和指向问题比较模糊,这里写一篇博客跟大家一起探讨一下this的用法和指向性问题. 1定义 t ...

  7. Delphi TStringHelper用法详解

    Delphi TStringHelper用法详解 (2013-08-27 22:45:42) 转载▼ 标签: delphi_xe5 it 分类: Delphi Delphi XE4的TStringHe ...

  8. JavaScript中this的用法详解

    JavaScript中this的用法详解 最近,跟身边学前端的朋友了解,有很多人对函数中的this的用法和指向问题比较模糊,这里写一篇博客跟大家一起探讨一下this的用法和指向性问题. 1定义 thi ...

  9. 68.connect-flash 用法详解 req,flash()

    转自:http://yunkus.com/connect-flash-usage/ connect-flash 用法详解  前端工具  2016-10-05  2016-10-05  朝夕熊  11 ...

随机推荐

  1. AssetBundle系列——游戏资源打包(二)

    本篇接着上一篇.上篇中说到的4步的代码分别如下所示: (1)将资源打包成assetbundle,并放到自定目录下 using UnityEditor; using UnityEngine; using ...

  2. Unity 资源管理与更新

    当你在 工程目录下的 Asset 文件夹中放置一个文件时(电脑上的文件夹,不是 Unity 界面中的文件夹),Unity会自动检测到一个新的文件被添加(Unity会不停地检查Assets文件夹中的内容 ...

  3. 数据可视化(6)--Google Charts实例

    上头给的关于jqplot的问题暂时解决了,继续google charts. google charts的实例很多,就以区域图(Geochart)为例~~ 区域图(Geochart)是一个国家.大陆或者 ...

  4. [ASP.NET]分析MVC5源码,并实现一个ASP.MVC

    本节内容不是MVC入门教程,主要讲MVC原理,实现一个和ASP.NET MVC类似基本原理的项目. MVC原理是依赖于ASP.NET管道事件基础之上的.对于这块,可阅读上节内容 [ASP.NET]谈谈 ...

  5. [Tool] Fiddle2基本使用

    Fiddler2已经成网页调试必备的工具. 简述下快捷命令: ?url =statu.=method @host bpafter url bpv method start stop 参考的文章: Fi ...

  6. struts.custom.i18n.resources国际化

    每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化 首先在struts.properties文件中加入以下内容:struts.custom ...

  7. 组合数(Lucas定理) + 快速幂 --- HDU 5226 Tom and matrix

    Tom and matrix Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=5226 Mean: 题意很简单,略. analy ...

  8. HTML5 语义元素

    返回目录 http://hovertree.com/h/bjaf/html5zixueji.htm 一个语义元素能够清楚的描述其意义给浏览器和开发者.无语义 元素实例: <div> 和 & ...

  9. Python入门笔记(18):Python函数(1):基础部分

    一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...

  10. c++中stl容器的常用示例

    1. set(集合)——包含了经过排序了的数据,这些数据的值(value)必须是唯一的. 也就是说输入set容器后得到数据,会去重并排序.    s.insert()插入一个元素    s.begin ...