【iOS系列】-UIWebView加载网页禁止左右滑动
【iOS系列】-UIWebView加载网页禁止左右滑动
问题:
做项目时候,用UIWebView加载网页的时候,要求是和微信网页中打开的网页的效果一样,也即是只能上下滑动,不能左右滑动,也不能缩放.
根据要求把webview.scalesPageToFit = NO;这样就不能对网页进行缩放了,
但是仔细的看加载的网页,还是能看清,左右有能够轻微的滑动,效果如下:

分析:
网上搜索发现好多人也是有同样的疑惑,看了一会也没有解决方案。索性就自己解决了,解决方案如下:
首先,UIWebView里面是有ScrollView的,而其可以缩放,滑动等效果也是由ScrollView的特性。所以设置ScrollView的属性应该能把问题解决,
所以首先设置了contentInset,contentSize
webview.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
webview.scrollView.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);//这里webView的frame时充满屏幕的
发现没有效果,依然是能够左右移动(非常细微,同上图)。
找到网页开发人员,他们说已经适配各个屏幕,然后问Android开发人员,发现他们禁止缩放后,左右不能滑动,所以问题应该出在我这里了。
解决方案:
我们去分析,其能左右滑动ScrollView有个代理方法scrollViewDidScroll,在滑动的时候,就会调用,这里能不能找到解决方案呢。
所以我就自定义了一个MyWebView继承于UIWebView,为了能拿到scrollView中得scrollViewDidScroll方法,做一些事情。
首先在这个方法中得到CGPoint point = scrollView.contentOffset;然后打印X方向偏移位置发现是2,既然一滑动就会调用,索性我就在其X值大于0,也即X方向上有偏移的时候就立即给纠正。
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint point = scrollView.contentOffset;
if (point.x > 0) {
scrollView.contentOffset = CGPointMake(0, point.y);//这里不要设置为CGPointMake(0, 0),这样我们在文章下面左右滑动的时候,就跳到文章的起始位置,不科学
}
}
注:要是不让网页缩放,webview.scalesPageToFit = NO;这个也是要加上的。
就此,运行发现问题解决。同理禁止上下滑动也可用同样的思路解决。
作者:Darren
微博:@IT_攻城师
github:@Darren90
博客:http://www.cnblogs.com/fengtengfei/
欢迎您的访问...
【iOS系列】-UIWebView加载网页禁止左右滑动的更多相关文章
- UIWebView 加载网页、文件、 html-b
UIWebView 是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法,1.通过storyboard 拖拽 2.通过al ...
- iOS之webview加载网页、文件、html的方法
UIWebView 是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf.word.doc 等等文件 生成webview 有两种方法,1.通过storyboard 拖拽 2.通过a ...
- UIWebView 加载网页、文件、 html
UIWebView 是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法,1.通过storyboard 拖拽 2.通过al ...
- cocos2d-x 使用UIWebView加载网页(顺便可以看到如何用OC调C++)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=248 前段时间项目中要微博授权登 ...
- iOS中 UIWebView加载网络数据 技术分享
直奔核心: #import "TechnologyDetailViewController.h" #define kScreenWidth [UIScreen mainScreen ...
- iOS开发-UIWebView加载本地和网络数据
UIWebView是内置的浏览器控件,可以用它来浏览网页.打开文档,关于浏览网页榜样可以参考UC,手机必备浏览器,至于文档浏览的手机很多图书阅读软件,UIWebView是一个混合体,具体的功能控件内置 ...
- Swift-01 UIWebView加载网页
UIWebView在swift里面的语法,和OC不太一样,但是,使用方法什么的,都是从OC演变过来的.比如,都得有init方法,都有loadRequest方法,所以,有了OC这个基础,学习swift是 ...
- 关于iOS UIWebView 加载网页,点击网页内某些控件导致 Application 'UIKitApplication:xxx.xxx.xxx' was killed by jetsam.
问题:公司用的腾讯问卷系统,内嵌在我们应用或游戏的自定义UIWebView里面展示,发现在iOS 10 以下系统,点击圆形勾选框 会大概率出现闪退. 通过联调发现:报了这样一个警告Applicatio ...
- iOS使用webView 加载网页,在模拟器中没有问题,而真机却白屏了。App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist f
还在info.plist中配置.除了配置允许上网的配置之外,还有另一项.
随机推荐
- selenium Select下拉框
先来认识一下下拉框,以百度的“高级设置”为例 介绍两种方法来处理下拉框:使用click事件,使用Select方法 使用click事件 上述下拉框的源代码如下: 虽然我们可以在html源文件中看到sel ...
- css搞定所有垂直居中问题
单行文本 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...
- js实现复制粘贴功能
在项目中使用到复制粘贴功能,虽然网上有很多大牛封装了很多的插件,但是还是想不去使用插件,就像自己来实现这个功能. 另一篇是禁止复制粘贴 前端er怎样操作剪切复制以及禁止复制+破解等 初步想法: 1. ...
- 大数据学习——hive显示命令
show databases; desc t_partition001; desc extended t_partition002; desc formatted t_partition002; !c ...
- 『NYIST』第八届河南省ACM竞赛训练赛[正式赛一]-CodeForces 236A,虽然很水,但有一个很简单的函数用起来方便
A. Boy or Girl time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- poj 2337 && zoj 1919 欧拉回路+连通性判断
题目要求按字典序排列,而且可能有重边 所以一开始就将数组从大到小排列,那么我将字符串加入链表时就会令小的不断前移,大的被挤到后面 这里有一点问题就是我一开始使用的是qsort: int cmp(con ...
- POJ2014 Flow Layout
Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3161 Accepted: 2199 Description A f ...
- Sigar 编译笔记
https://blog.csdn.net/zw3413/article/details/79482438
- 创建SSH keys
1.检查是否已经有SSH Key存在 windows: type "%userprofile%\.ssh\id_rsa.pub" Linux: cat ~/.ssh/id_rsa. ...
- 一致性哈希算法-----> 解决memecache 服务器扩容后的数据丢失。
1 基本场景 比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 ...