iOS开发中的UIWebView的一些技巧

很久没写博客了,今天终于闲来有时间,总结下这段时间遇到的UIWebView上的一些小技术问题。UIWebView是iOS sdk中一个最常用的控件。是内置的浏览器控件,我们可以用它来浏览网页、打开文档等等。但有时我们会遇到一个问题,就是如何实现点击webView加载的图片以放大浏览,这其中就要用到JavaScript脚本语言,这里要想进行Objective-C与JavaScript的交互操作,就需要使用oc中的

stringByEvaluatingJavaScriptFromString:方法,它的功能非常的强大,用起来非常简单,通过它我们可以很方便的操作uiwebview中的页面元素。

如何获得加载的网页内容里的图片网址呢,这里的主要代码是:

1.先给webView添加轻拍手势:

- (void)addTapOnWebView
{
    UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
    [self.contentWebV addGestureRecognizer:singleTap];
    singleTap.delegate = self;
}

2.设置UIGestureRecognizerDelegate代理后实现下面的方法,这个方法the default implementation returns NO,一般在一个手势接收者要阻止另外一个手势接收自己的消息的时候调用:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

询问delegate,两个手势是否同时接收消息,返回YES同时接收。返回NO,不同时接收。

3.实现点击webView里网页内容里的图片获取图片网址:

 1 -(void)handleSingleTap:(UITapGestureRecognizer *)sender
 2 {
 3     CGPoint pt = [sender locationInView:self.contentWebV];
 4     NSString *imgURL = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).src", pt.x, pt.y];
 5     NSString *urlToSave = [self.contentWebV stringByEvaluatingJavaScriptFromString:imgURL];
 6     NSLog(@"image url=%@", urlToSave);
 7     if (urlToSave.length > 0) {
 8         [self showImageURL:urlToSave point:pt];
 9     }
10 }

这里注意使用到了网页脚本语言JavaScript,通过它我们可以很轻松的实现对网页内容的操作。

4.获得网址后,就是创建一个UIScrollView并将网址传进去以显示在scrollView上面了:

1 //呈现图片
2 - (void)showImageURL:(NSString *)url point:(CGPoint)point
3 {
4     ImageScrollViewController *imgScrollVC = [[ImageScrollViewController alloc] init];
5     imgScrollVC.imgUrl = url;
6     [self.view.window.rootViewController presentViewController:imgScrollVC animated:NO completion:nil];
7 }

具体的实现效果就是:

时间: 2024-12-15 18:25:57

iOS开发中的UIWebView的一些技巧的相关文章

文顶顶 iOS开发UI篇—IOS开发中Xcode的一些使用技巧

iOS开发UI篇—IOS开发中Xcode的一些使用技巧 一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示主窗口 cmd + 0             导航窗口 option + cmd + 0    工具窗口 在.m & .h之间切换           control + cmd + 上/下 按

iOS开发UI基础—IOS开发中Xcode的一些使用技巧

iOS开发UI基础-IOS开发中Xcode的一些使用技巧 一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示主窗口 cmd + 0             导航窗口 option + cmd + 0    工具窗口 在.m & .h之间切换           control + cmd + 上/下

iOS开发UI篇—iOS开发中Xcode的一些使用技巧

一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示主窗口 cmd + 0             导航窗口 option + cmd + 0    工具窗口 在.m & .h之间切换           control + cmd + 上/下 按照浏览文件的前后顺序切换     control + c

IOS开发中Xcode的一些使用技巧

一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示主窗口 cmd + 0             导航窗口 option + cmd + 0    工具窗口 在.m & .h之间切换           control + cmd + 上/下 按照浏览文件的前后顺序切换     control + c

OS开发UI篇—IOS开发中Xcode的一些使用技巧

一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n     新建项目 cmd + n             新建文件 视图 option + cmd + 回车 打开助理编辑器 cmd + 回车           显示主窗口 cmd + 0             导航窗口 option + cmd + 0    工具窗口 在.m & .h之间切换           control + cmd + 上/下 按照浏览文件的前后顺序切换     control + c

iOS开发中在UIWebView中添加Gif动态图

开发是一件很有趣的事,偶尔在程序中添加一些小东西,会给你的应用增色不少.比如,当你的某些功能暂时还不准备上线时,可以先一个放展示Gif动态图的UIWebView上去,既可以告诉用户APP以后会有的功能,也会使你的APP手动可爱,打动一大波妹子. #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIWebView *myWalletWebView; @

iOS开发中的总结的小技巧,分享给大家!!(待续未完)

这是我在写项目或者学习知识点或者请教人家的时候总结的小技巧 原来是写在笔记本上面的,还是分享给大家了.可能会很乱,觉得对自己有用的就拿走吧,有错漏的地方也求大家指点修正.废话不多说直接来. 1. 监听控件的三种方法 1) addTarget 2)代理 3)通知 2. UITextfiled(文本框)中有一个属性:clearButtonMode 选择 UITextFieldViewModeAlways 就可以在输入多个字符后,右边有个x号点一下全部清除,用户体验会好一点. UITextField

iOS 开发中使用到的小技巧汇总

国庆即将来到,一个小项目也即将完成,把自己在项目中用的一些小技巧写出来,方便查找. 1,去掉分割线--动画设置透明度alpha //去掉tableView的分隔线: self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone; self.tableView.showsVerticalScrollIndicator=NO; 2. 解决cell分割线左边短20px的问题 -(void)viewDidLayoutSubviews{ i

iOS 开发中的坑与相关技巧

1. 界面切换部分: 当一个界面中不包含NavigationBar的时候但是要其跳转到另一个包含NavigationBar的界面的情况下,要进行NavigationBar的展示和隐藏的情况下设置不同的界面的逻辑,此时设置的不当的话会造成侧滑切换界面的间隙会造成NavigationBar的标题栏的短暂隐藏,所以在控制其隐藏的时候需要注意一下,可以在需要隐藏的界面做以下设置: - (void)viewWillAppear:(BOOL)animated { [self.navigationContro