ScrollView和系统手势滑动时,冲突问题的解决办法

原文链接:http://blog.csdn.net/hjaycee/article/details/49279951#0-tsina-1-90689-397232819ff9a47a7b7e80a40613cfe1

直接上解决办法:

1.首先自定义一个scrollView,比如:CustomScrollView,遵守<UIGestureRecognizerDelegate>协议,然后在实现文件中写如下代码:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    // 首先判断otherGestureRecognizer是不是系统pop手势
    if ([otherGestureRecognizer.view isKindOfClass:NSClassFromString(@"UILayoutContainerView")]) {
        // 再判断系统手势的state是began还是fail,同时判断scrollView的位置是不是正好在最左边
        if (otherGestureRecognizer.state == UIGestureRecognizerStateBegan && self.contentOffset.x == 0) {
            return YES;
        }
    }

    return NO;
}

2.那个横向滚动的scrollView继承这个自定义scrollView,也就是CustomScrollView

原理:

scrollView的pan手势会让系统的pan手势失效,所以我们只需要在系统手势失效且scrollView的位置在初始位置的时候让两个手势同时启用就可以了

时间: 2024-08-28 19:18:44

ScrollView和系统手势滑动时,冲突问题的解决办法的相关文章

dedecms添加文章时提示标题为空,编辑文章时编辑器空白的解决办法

dedecms添加文章时提示标题为空,编辑文章时编辑器空白的解决办法 dedecms出现这个问题与代码无关,主要是和PHP的版本有关,用的PHP5.4,更换成PHP5.2之后就不会有这个问题了. 问题原因是:php5.4版本中htmlspecialchars在php5.4默认为utf8编码,gbk编码的字符串经过htmlspecialchars 转义后的中文字符串为空了,所以造成添加文章时提示"标题不能为空",编辑文章时编辑器内容空白. 解决的办法:标题不能为空修改dede/artic

Launcher Activity在开机时重启两次解决办法

今天在看log的时候发现,Launcher activity会被onDestroy掉一次,然后再重启. 可能原因猜测: 1.横竖屏切换 2.MCC MNC等Configuration改变引起的 MCC(移动国家码)和 MNC(移动网络码) 由于当时的Launcher设置为强制横屏了,应该是不会引起重启的. 对于Configuration改变系统会发一个android.intent.action.CONFIGURATION_CHANGED的广播 于是就做了一个广播接收器去检测是不是由于Config

ECSHOP中transport.js和jquery的冲突的简单解决办法

ECSHOP中transport.js和jquery的冲突的简单解决办法 一流资源网近日在ECSHOP网站加入了几个JS特效代码,在谷歌.火狐下正常,在各版本IE下都不常,左思不得其解. 最后才知道原来是"ECSHOP中transport.js和jquery的冲突" 因为通用头部文件中引用了 1 {insert_scripts files='transport.js,utils.js'} transport.js与jquery有冲突.原因不多讲.在网上找到一个最简单解决办法: 成功了,

20140509-MySQL导入脚本文件,插入数据时显示乱码的解决办法

20140509-MySQL导入脚本文件,插入数据时显示乱码的解决办法 打开CMD输入以下命令: mysql –u root –p 然后输入密码: 在导入脚本文件之前,对字符编码进行设置: charset gbk; 说明:上面的这条语句非常关键,这样不论你在cmd窗口,还是使用客户端输入中文,都能够正确保存了. 建议初学者不要使用SQLyog或者Navicat Premium等客户端连接工具.

tomcat单独启动时闪退的解决办法,以及修改端口8080为80,

tomcat单独启动时闪退的解决办法: 点击" startup",马上就闪退了:原因一般都是没有配置%JAVA_HOME%和tomcat的环境变量造成的: 很简单: 在startup.bat那个文件下,编辑点进去之后,在最上边的echo off上面加上: SET JAVA_HOME=C:\Program Files\Java\jdk1.7.0_60 SET TOMCAT_HOME=C:\apache-tomcat-7.0.53 然后shutdown.bat里面也要加上这两句话: 然后重

MVC 使用ckfinder时提示客户端危险解决办法

MVC 使用ckfinder时提示客户端危险解决办法 在处理接收信息的Controller前面加   [ValidateInput(false)]形如:[HttpPost][ValidateInput(false)] public ActionResult GoodDetail(FormCollection form){return View();} 这种解决方法是把验证去掉了,对应网站安全性要求不高的(比如自己的后台)可以使用,论坛文本编辑器不建议

android viewpager fragment切换时界面卡顿解决办法

目前开发的程序在切换View时界面卡顿现象比较严重,影响用户体验,当前项目共就四个View,每个View也只是按钮,所以可以同时加载,不让其它view销毁. 只需在Adapter中重载destroyItem类即可 @Override public void destroyItem(ViewGroup container, int position, Object object) { //重载该方法,防止其它视图被销毁,防止加载视图卡顿 //super.destroyItem(container,

ios7 中代码创建 ScrollView TextView 等,默认向下缩进的解决办法

这个问题,记得以前困扰了好久.表现出来的现象就是 ScrollView 中的 ContentView 会往下移动一段距离,现在 textView 也是如此,会自动将光标下移. 后来发现这个距离差不多是 NavigationBar 的高度,才从这里找问题,最终找到了. @property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0); // Defaults to YES 需要设置

从ScrollView嵌套EditText的滑动事件冲突分析触摸事件的分发机制以及TextView的简要实现和冲突的解决办法

本篇文章假设读者没有任何的触摸事件基础知识,所以我们会从最基本的触摸事件分发处说起. ScrollView为什么会出现嵌套EditText出现滑动事件冲突呢?相信你会有这种疑问,我们来看这么一种情况: 有一个固定高度的EditText,假设它只能显示3行文本,但是,我们在其中输入的文本多余三行时,那么这时就需要可以在EditText内部进行小幅滚动了.那么将这个EditText放入了ScrollView当中, 并且ScrollView内容过多以致ScrollView也可以滑动,这时候就会出现Ed