WebView点击图片看大图效果
- 在webViewDelegate里面添加如下代码: 
- 12345678910111213141516171819202122232425- (void)webViewDidFinishLoad:(UIWebView *)aWebView {//调整字号NSString *str = @"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '95%'";[webView stringByEvaluatingJavaScriptFromString:str];//js方法遍历图片添加点击事件 返回图片个数staticNSString *constjsGetImages =@"function getImages(){\var objs = document.getElementsByTagName(\"img\");\for(var i=0;i<objs.length;i++){\objs[i].onclick=function(){\document.location=\"myweb:imageClick:\"+this.src;\};\};\returnobjs.length;\};";[webView stringByEvaluatingJavaScriptFromString:jsGetImages];//注入js方法//注入自定义的js方法后别忘了调用 否则不会生效(不调用也一样生效了,,,不明白)NSString *resurlt = [webView stringByEvaluatingJavaScriptFromString:@"getImages()"];//调用js方法// NSLog(@"---调用js方法--%@ %s jsMehtods_result = %@",self.class,__func__,resurlt);}
- 1234567891011121314151617181920212223- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{//将url转换为stringNSString *requestString = [[request URL] absoluteString];// NSLog(@"requestString is %@",requestString);//hasPrefix 判断创建的字符串内容是否以pic:字符开始if([requestString hasPrefix:@"myweb:imageClick:"]) {NSString *imageUrl = [requestString substringFromIndex:@"myweb:imageClick:".length];// NSLog(@"image url------%@", imageUrl);if(bgView) {//设置不隐藏,还原放大缩小,显示图片bgView.hidden = NO;imgView.frame = CGRectMake(10, 10, SCREEN_WIDTH-40, 220);[imgView setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:LOAD_IMAGE(@"house_moren")];}else[self showBigImage:imageUrl];//创建视图并显示图片returnNO;}returnYES;}
- 创建放大图片的视图 
- 123456789101112131415161718192021222324252627282930313233343536373839404142#pragma mark 显示大图片-(void)showBigImage:(NSString *)imageUrl{//创建灰色透明背景,使其背后内容不可操作bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];[bgView setBackgroundColor:[UIColor colorWithRed:0.3green:0.3blue:0.3alpha:0.7]];[self.view addSubview:bgView];//创建边框视图UIView *borderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH-20, 240)];//将图层的边框设置为圆脚borderView.layer.cornerRadius = 8;borderView.layer.masksToBounds = YES;//给图层添加一个有色边框borderView.layer.borderWidth = 8;borderView.layer.borderColor = [[UIColor colorWithRed:0.9green:0.9blue:0.9alpha:0.7] CGColor];[borderView setCenter:bgView.center];[bgView addSubview:borderView];//创建关闭按钮UIButton *closeBtn = [UIButton buttonWithType:UIButtonTypeCustom];// [closeBtn setImage:[UIImage imageNamed:@"close.png"] forState:UIControlStateNormal];closeBtn.backgroundColor = [UIColor redColor];[closeBtn addTarget:self action:@selector(removeBigImage) forControlEvents:UIControlEventTouchUpInside];[closeBtn setFrame:CGRectMake(borderView.frame.origin.x+borderView.frame.size.width-20, borderView.frame.origin.y-6, 26, 27)];[bgView addSubview:closeBtn];//创建显示图像视图imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, CGRectGetWidth(borderView.frame)-20, CGRectGetHeight(borderView.frame)-20)];imgView.userInteractionEnabled = YES;[imgView setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:LOAD_IMAGE(@"house_moren")];[borderView addSubview:imgView];//添加捏合手势[imgView addGestureRecognizer:[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(handlePinch:)]];}
- 实现关闭和捏合手势的方法 
- 123456789101112//关闭按钮-(void)removeBigImage{bgView.hidden = YES;}- (void) handlePinch:(UIPinchGestureRecognizer*) recognizer{//缩放:设置缩放比例recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);recognizer.scale = 1;}
效果图如下

<div>
<img width="320.000000" height="300.000000" src="http://114.215.171.217:80/image/f?fileName=null_1436866458461.jpg" onclick="imageClick()">
<script type="text/javascript">
function imageClick(){document.location = "ClickImage:"}
</script>
<br />
</div>
附上我的html代码
http://my.oschina.net/linxiaoxi1993/blog/465905?p={{page}}
WebView点击图片看大图效果的更多相关文章
- ios webview点击图片看大图效果及相应手势操作
		下面参考资料有比较详细的解释,在之前的就项目中也有比较好的效果(支持更多手势),可以参考下 参考资料 
- ionic中点击图片看大图的实现
		在页面上显示了几张图片后,因为是手机端,图片会有点小的感觉,就想着怎么样才能让用户点击小图片看到大图呢,项目中ionic结合angularjs实现了这个功能 1.首先是三张小图上应添加一个函数,当点击 ... 
- 点击图片查看大图(纯js)
		$(function(){ $(".pimg").click(function(){ var _this = $(this);//将当前的pimg元素作为_this传入函数 img ... 
- js+jquery+html实现在三种不通的情况下,点击图片放大的效果
		js+jquery+html实现在三种不通的情况下,点击图片放大的效果. 三种情况分别是:图片的父元素宽高固定; 图片的宽高固定; 图片的父元素宽固定,高度不固定 第一种情况:图片的父元素宽高固定 ... 
- 基于jquery鼠标点击图片翻开切换效果
		基于jquery鼠标点击图片翻开切换效果是一款基于jQuery+CSS3实现的点击图片切换特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&quo ... 
- jQuery插件——imgbox(点击图片查看大图)
		需要的资源: 需要对应的js代码和css样式,大家可以通过www.htmldrive.net平台下载,也可以在我文章的底部下载.对应的资源如下,将资源引入页面(别忘了JQuery): 注意:jQuer ... 
- [原创]WKWebview点击图片查看大图
		大家都知道,WKWebview是没有查看大图的属性或者方法的,所以只能通过js与之交互来实现这一功能,原理:通过js获取页面的图片,把它存放到数组,给图片添加点击事件,通过index显示大图就行了 其 ... 
- WKWebview点击图片查看大图
		大家都知道,WKWebview是没有查看大图的属性或者方法的,所以只能通过js与之交互来实现这一功能,原理:通过js获取页面的图片,把它存放到数组,给图片添加点击事件,通过index显示大图就行了 其 ... 
- JQuery - 点击图片显示大图
		效果: 目录结构: 代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="De ... 
随机推荐
- java 接口与实现
			Computable.java public interface Computable { int MAX = 46; int f(int x); } China.java public class ... 
- Oracle Sql优化之lead,lag分析函数
			1.表中有四个字段:人员编号,开始时间,结束时间,类型,数据ID,需要实现如下需求 a.当类型为-1时,丢弃该记录 b.当类型为-1时,且前一行结束时间为null,当前行的开始时间-1作为前一行的结束 ... 
- hadoop的安全模式
			在安全模式下:不能增.删.改操作:但可以查看. 查看hadoop是否i处于安全模式下: 执行命令:hadoop dfsadmin -safemode get 进入hadoop的安全模式下: 执行命令: ... 
- ButterKnife-5.1.2.jar(较低版本的ButterKnife)使用方法
			ButterKnife注解是编译时注解,Xutils是运行时注解.很明显编译时注解性能更高 一.先配置好环境 1.在工程上右键,选Properties,然后选Java Compiler,选Annota ... 
- Linux格式化硬盘 常用命令小记
			今天新蛋上订购了一块1TB的硬盘打算装Ubuntu,当然先要做好功课,查一下注意事项啦! 基本功,格式化命令,以格式化 /dev/sda1 分区为例:$ sudo umount /dev/sda1 ... 
- hibernate分页查询的实现
			在mysql中新建数据好USER表,字段有3个,分别是id.username.password,贴上脚本仅供参考 create table `ding`.`user`( `id ... 
- dwr.xml 配置
			dwr.xml 是你用来配置 DWR 的文件,默认是将其放入 WEB-INF 文件夹. 创建一个 dwr.xml 文件dwr.xml 有如下的结构: <?xml version="1. ... 
- 转:LoadRunner自带的协议分析工具
			在做性能测试的时候,协议分析是困扰初学者的难题,不过优秀的第三方协议分析工具还是挺多的,如:MiniSniffer .Wireshark .Ominpeek 等:当然他们除了帮你分析协议之外,还提供其 ... 
- sql server 修改表结构
			文章来自http://blog.csdn.net/huwei2003/article/details/6076051 --修改数据库名称.表名称.字段名 --修改数据库名 sp_renamedb 'o ... 
- 设计模式笔记之三:Android DataBinding库(MVVM设计模式)
			本博客转自郭霖公众号:http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650236908&idx=1&sn=9e53 ... 
