UITapGestureRecognizer响应顺序是怎么样的

一个scrollview上有几个按钮
在scrollview上add 了一个单击事件

singletap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
    [singletap setNumberOfTapsRequired:1];
   [scrollview addGestureRecognizer:singletap];
这样点击按钮,不会响应按钮的事件,直接跳到handleSingleTap去了?
单击事件不是应该先被直接单击的subview处理,如果没有处理才提交到supview处理嘛?
怎么才能让按钮响应单击事件?

使用
UIGestureRecognizerDelegate的一个方法判断点击的是哪个view,确定是否响应事件。
    singletap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
    [singletap setNumberOfTapsRequired:1];
    singletap.delegate = self;
   [scrollview addGestureRecognizer:singletap];

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if(touch.view != scrollview){
        return NO;
    }else
        return YES;
}

时间: 2024-11-29 01:04:33

UITapGestureRecognizer响应顺序是怎么样的的相关文章

django中“url映射规则”和“服务端响应顺序”

1.django搜索路径 使用 import 语句时,Python 所查找的系统目录清单. 查看方式: import sys print sys.path 通常无需关心 Python 搜索路径的设置,Python 和 Django 会在后台自动帮你处理好. 2.url匹配模式  基本结构: '^需要匹配的url字符串$' PS:实际上最终完整的url串是http://根路径:端口号/需要匹配的url字符串 系统自动添加的部分'http://根路径:端口号/' eg:url匹配模式:'^lates

MFC窗口的消息响应顺序

最开始的消息传递 1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc() 该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.OnWndMsg() 该函数的功能首先按字节对消息进行排序,对于WM_COM

控件不接收用户交互的情况以及事件响应顺序

开发中经常会遇到控件不接收用户交互了,可以从以下几个方面检查: 1. enable = NO 就不可以被点击 ->也会让按钮显示禁用状态 2. 设置了控件的 userInterActionEnabel = NO 3. hidden属性为YES 4. 控件的alpha < = 0.01 5. 如果一个父控件与用户的交互设置为NO ,那么它子控件将获取不到交互事件 6.如果子视图超出父视图范围,超出范围的部分也不能接收用户交互 7. 触发事件的过程 1). 交互事件,是先由父控件获取到,然后父控件

onTouchEvent,onClick,onLongClick的return值和事件响应顺序

其实你只要理解了事件处理机制,知道true和false在其中起着标志事件是否被消耗,如果消耗了就不再传递给其他控件了. 如果没有消耗则还会传递给其他控件,触发其他控件的事件处理函数.使用的时候注意下就是了. 给一个button同时添加这三种事件,onTouchEvent的action_down是最先触发的, 如果返回true,则表示action_down事件已经被消耗,本次点击(长按或点击)不会再响应其他的事件 if (event.getAction() == MotionEvent.ACTIO

Cocoa Touch(二):图形界面构建UIKit

代码构建UI 1.视图树模型 计算机图形实际上是一个视图树模型,每个视图都有一个本地坐标系.每个本地坐标系的组成部分是:原点在父坐标系中的位置,每个基在父坐标系中的位置,由此就可以根据向量的本地位置求出相对于父坐标系的位置,最终求出向量全局位置.我们要分清全局坐标系,父坐标系,本地坐标系三种概念,分清基.向量的坐标.向量的位置三种概念. 2.控件监听事件 观察者模式在这里得到充分体现. 监听普通事件: [button addTarget:self action:@selector(loadIma

iOS学习笔记(2)— UIView用户事件响应

iOS学习笔记(2)— UIView用户事件响应 UIView除了负责展示内容给用户外还负责响应用户事件.本章主要介绍UIView用户交互相关的属性和方法. 1.交互相关的属性 userInteractionEnabled 默认是YES ,如果设置为NO则不响应用户事件,并且把当前控件从事件队列中删除.也就是说设置了userInterfaceEnabled属性的视图会打断响应者链导致该view的subview都无法响应事件. multipleTouchEnabled  默认是NO,如果设置为YE

android view、viewgroup 事件响应拦截处理机制

文章中会用到部分网络资源,首先将原作者的链接附上. 但是还是会附上数量较大的关于此部分内容的自己的思考. ------------------------------------------------------------------------------------write by mcdullsin 将原作者的链接附上可以为搜索引擎评价原始作者的文章提供自己能力所及的帮助,也算是对分享自己技术的各位前辈的一种感激吧. 1.android编程下touch事件的分发和消费机制 2.andr

VS2010/MFC设置对话框控件的Tab顺序

设置对话框控件的Tab顺序 前面几节为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但是还有个遗留的小问题,就是对话框控件的Tab顺序问题. 运行加法计算器程序,显示对话框后不进行任何操作,直接按回车,可以看到对话框退出了.这是因为“退出”按钮是Tab顺序为1的控件,也就是第一个接受用户输入的控件.但是按照我们的输入习惯,应该是被加数的编辑框首先接受用户输入,然后是加数编辑框

VS 对话框控件的Tab顺序问题

我们先来直观的看看各个控件的Tab顺序吧.打开“Resource View”视图,然后在资源中找到对话框IDD_ADDITION_DIALOG,双击ID后中间客户区域出现其模板视图.在主菜单中选择“Format”->"Tab Order"(VS 2010)或者VS 2012 C#中的“视图--Tab键顺序”,或者按快捷键Ctrl+D (在C#中无法使用),对话框模板上就会显示各个控件的Tab顺序数字.如下图: 上图中每个控件左上角都有一个数字,这就是它的Tab响应顺序.对话框刚打