文档章节

UIWebView之获取所点位置的图片(放大webView中的图片)

暴走艾尼玛
 暴走艾尼玛
发布于 2015/12/23 10:12
字数 517
阅读 24
收藏 1
- (void)viewDidLoad
{
    [super viewDidLoad];    // Do any additional setup after loading the view.
    _showWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460-44)];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://news.163.com/special/qingsongyike"]];
    [_showWebView loadRequest:urlRequest];
    [self.view addSubview:_showWebView];
    
    [self addTapOnWebView];
 }-(void)addTapOnWebView
{
    UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
    [self.showWebView addGestureRecognizer:singleTap];
    singleTap.delegate = self;
    singleTap.cancelsTouchesInView = NO;
}#pragma mark- TapGestureRecognizer/**
 *  3.允许多个手势识别器共同识别
 
    默认情况下,两个gesture recognizers不会同时识别它们的手势,但是你可以实现UIGestureRecognizerDelegate协议中的
    gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:方法对其进行控制。这个方法一般在一个手    势接收者要阻止另外一个手势接收自己的消息的时候调用,如果返回YES,则两个gesture recognizers可同时识别,如果返回NO,则     并不保证两个gesture recognizers必不能同时识别,因为另外一个gesture recognizer的此方法可能返回YES。也就是说两个
gesture recognizers的delegate方法只要任意一个返回YES,则这两个就可以同时识别;只有两个都返回NO的时候,才是互斥的。默认情况下是返回NO。
 *  如果不写这句话,会导致自己创建的手势不会响应事件,因为webView里的子控件自带很多手势。
 *  @param gestureRecognizer      手势
 *  @param otherGestureRecognizer 其他手势
 *
 *  @return YES代表可以多个手势同时识别,默认是NO,不可以多个手势同时识别 */- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{    return YES;
}-(void)handleSingleTap:(UITapGestureRecognizer *)sender
{
    CGPoint pt = [sender locationInView:self.showWebView];
    NSString *imgURL = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).src", pt.x, pt.y];
    NSString *urlToSave = [self.showWebView stringByEvaluatingJavaScriptFromString:imgURL];
    NSLog(@"image url=%@", urlToSave);    if (urlToSave.length > 0) {
        [self showImageURL:urlToSave point:pt];
    }
}//呈现图片-(void)showImageURL:(NSString *)url point:(CGPoint)point
{
    UIImageView *showView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 470)];
    showView.center = point;
    [UIView animateWithDuration:0.5f animations:^{
        CGPoint newPoint = self.view.center;
        newPoint.y += 20;
        showView.center = newPoint;
    }];
    
    showView.backgroundColor = [UIColor blackColor];
    showView.alpha = 0.9;
    showView.userInteractionEnabled = YES;      
    [self.view addSubview:showView];
    [showView setImageWithURL:[NSURL URLWithString:url]];
    
    UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleViewTap:)];
    [showView addGestureRecognizer:singleTap];
    
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}//移除图片查看视图-(void)handleSingleViewTap:(UITapGestureRecognizer *)sender
{    
    for (id obj in self.view.subviews) {        if ([obj isKindOfClass:[UIImageView class]]) {
            [obj removeFromSuperview];
        }
    }
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}


© 著作权归作者所有

暴走艾尼玛
粉丝 1
博文 36
码字总数 10397
作品 0
深圳
私信 提问
iOS UIWebView 使用大全

一、UIWebView的基础使用 以上是IOS中UIWebView的基础使用要点详解,接下来一些UIWebView的常用注意点。 二、IOS中UIWebView常用注意点: 1、与UIWebView进行交互,调用web页面中的需要传参的...

朝雨晚风
2016/08/15
0
0
iOS中播放gif动态图的方式探讨

iOS中播放gif动态图的方式探讨 一、引言 在iOS开发中,UIImageView类专门来负责图片数据的渲染,并且UIImageView也有帧动画的方法来播放一组图片,但是对于gif类型的数据,UIImageView中并没...

珲少
2016/01/24
3K
1
IOS疯狂基础之GIF图片的显示 

IOS疯狂基础之GIF图片的显示 iPhone SDK提供了多种动画手段,UIView、UIImageView和CALayer都支持动画。但如何处理常见的gif动画呢?UIWebView提供了答案,代码如下: 1. 使用UIWebView播放 ...

法斗斗
2016/06/27
24
0
IOS——UIWebView基本使用与JS交互

1、UIWebView的几种加载方式 加载本地的HTML文件 通过NSURLRequest加载: 通过NSString加载: UIWebView 还支持将一个NSString对象作为源来加载。你可以为其提供一个基础URL,来指导UIWebVi...

一人丨星空
2016/09/23
63
0
浅谈JS代码和OC代码的交互

以下为个人愚见, 如有不妥,望大家斧正!!!本文的GitHub源码下载地址:https://github.com/DXSmile/JS-OC.git 如需转载,请注明转载自DXSmile的GitHub项目https://github.com/DXSmile/JS-OC.git ...

DXSmile_大熊
2016/03/13
82
1

没有更多内容

加载失败,请刷新页面

加载更多

EasyExcel

<!-- alibaba EasyExcel escel导入导出 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.0.0-RELEASE</version> </dependency>......

少年已不再年少
34分钟前
2
0
解决:warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

代码 static int CheckOneReg(uint8_t busNo, char *title, int32_t addr, uint32_t *val, BOOL isPrintfNL, ErrMsg_t const *pMsg)res |= CheckOneReg(busNo,"fwVer:", HALREG_FW_VER, ......

SamXIAO
34分钟前
1
0
jenkins搭建全流程

安装环境   操作系统:linux   软件:jdk 8   软件:tomcat(apache-tomcat-7.0.90) 软件:jenkins 软件:maven 软件:git 1.1安装步骤 1.1.1安装jdk 由于Jenkins是基于Java开发的,安...

shzwork
40分钟前
1
0
Java的战争

本文来自微信公众号: 金捷幡(ID:jin-jiefan) ,作者:金捷幡,封面:拉里·埃里森(东方IC) 2019年5月,彻底撕破脸的特朗普掀起对华为的战争,谷歌被迫吊销了华为的Android授权。开源软...

Java领航员
今天
9
0
超详细的LM3414MRX/NOPB规格参数介绍就在这里

超详细的LM3414MRX/NOPB规格参数介绍就在这里 描述 LM3414和LM3414MRX/NOPB是具有1-A 60 W(1)共阳极功能的恒流降压LED驱动器。它们适用于驱动单串3-W HBLED,效率高达96%。它们可接受4.5...

不能吃肉的仙女
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部