文档章节

父view中添加手势子view不响应问题的解决

HelloSwift
 HelloSwift
发布于 2016/07/25 14:39
字数 209
阅读 6
收藏 0
点赞 0
评论 1

// 父类view
    UIImageView *back = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];
    back.image = [UIImage imageNamed:@"Default-568h@2x"];
    back.userInteractionEnabled = YES;
    [self.view addSubview:back];
   
    // 父类view中的imageView
    imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    imageView.image = [UIImage imageNamed:@"Default-568h@2x"];
    imageView.userInteractionEnabled = YES;
   
    // 父类view中的label
    label = [[UILabel alloc] initWithFrame:CGRectMake(100, 240, 100, 100)];
    label.text = @"label";
    label.backgroundColor = [UIColor grayColor];
    // 此属性必须打开,不然UITouch捕获Label
    label.userInteractionEnabled = YES;
   
    // 父类view中的button
    button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setTitle:@"button" forState:UIControlStateNormal];
    button.frame = CGRectMake(100, 350, 100, 100);
    button.backgroundColor = [UIColor purpleColor];
    [button addTarget:self action:@selector(btn) forControlEvents:UIControlEventTouchUpInside];

   
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
    tap.delegate = self;

    [back addGestureRecognizer:tap];
    [back addSubview:imageView];
    [back addSubview:label];
    [back addSubview:button];
}
- (void)btn
{
    NSLog(@"button");

}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    // 取消labelimageview响应手势
    if ([touch.view isKindOfClass:[UILabel class]] || touch.view == imageView)
    {
        return NO;
    }
    return YES;

}
- (void)tap:(UITapGestureRecognizer *)tap
{
    NSLog(@"tap.view = %@",tap.view);
}

© 著作权归作者所有

共有 人打赏支持
HelloSwift
粉丝 0
博文 57
码字总数 42780
作品 0
丰台
程序员
加载中

评论(1)

HelloSwift
HelloSwift
不错
iOS-事件响应链的学习

前言 事件处理完整过程; 1,在手指触摸屏幕时,会产生一个事件,系统会把这个事件添加到UIApplication管理的事件队列中。 2,取出队列中最前面的事件,交给主窗口Window。 3,主窗口会逐级向...

麦兜卖鱼丸 ⋅ 2016/06/14 ⋅ 1

React Native通过修改ScrollableTabView和ViewPager来解决左右滑动冲突的问题

1.背景   在文章例子中的RN(以下用RN表示React Native)版本是0.43.3。RN官方和非官方提供了很多左右滑动的控件和组件,作者使用的比较多的就是react-native-scrollable-tab-view和react-n...

请叫我百米冲刺 ⋅ 2017/05/05 ⋅ 0

iOS开发-关于自定义控件很值得一看的文章(二)

上一次我们一起做一个多段选择的自定义控件,顺便学习UIView的基本属性和方法。 链式响应原理 先简单普及一下响应链原理,我们可以简单地认为iPhone屏幕就是一个容器,我们看到的各种控件(U...

神补刀 ⋅ 2016/03/19 ⋅ 0

iOS触摸事件响应链

前言 本文讨论iOS事件中的触摸事件及其响应链,至于加速计事件和远程控制事件不在本文的讨论范畴。 本文讲解的问题: 触摸事件进入app内部是如何传递的?(不包含系统响应阶段) UIResponder响...

indulge_in ⋅ 2017/11/22 ⋅ 0

Android-解决ViewFlipper与ScrollView滑动响应事件拦截的问题【转】

最近在做一个简单的展示界面时,遇到了一个比较棘手的问题。由于要展示多项内容,所以使用ViewFlipper作为水平滑动容器;而每项内容中由于许多文本较长,因此需要使用ScrollView作为垂直滑动...

球球 ⋅ 2016/05/20 ⋅ 0

边框侧滑返回!!!!!

前言: ios7开始 苹果增加了页面 右滑返回的效果;具体的是以UINavigationController为容器的ViewController间右滑切换页面。 代码里的设置是: self.navigationController.interactivePopGe...

Im刘亚芳 ⋅ 2015/04/20 ⋅ 0

首页广告弹框

现在软件的更新也是日新月异,最近发现APP打开后都会在根视图上面弹出一个小广告,点击进去跳入新的界面,点击取消主界面讲可以响应 1.gif 咱们可以创建一个测试的demo工程. 一.创建一个UITabBa...

农民工包子总 ⋅ 2017/12/21 ⋅ 0

Android中的事件模型

以前写 android ,对事件的处理没有太深入,只是简单的 onTouchEvent 就 ok 了,现在写的 UI ,很多自定义组件,父 view 和子view 都需要接收事件,然后处理。如果不弄明白它的事件传递机制,...

byonds ⋅ 2014/02/27 ⋅ 0

iOS开发——响应链(Responder Chain)的深入理解和代码示例(二)

响应链机制是开发中很重要的概念,在一些事件的处理中需要对响应链的传递有深入的了解,我们才能对事件的传递有更好的控制。今天我们继续来研究下响应链,并实现一个很简单的功能。示例代码已...

CHENYUFENG1991 ⋅ 2016/07/10 ⋅ 0

再谈iOS 7的手势滑动返回功能

之前随手写过一篇《使用UIScreenEdgePanGestureRecognizer实现swipe to pop效果》,挺粗糙的。 现在使用默认模板创建的iOS App都支持手势返回功能,如果导航栏的返回按钮是自定义的那么则会失...

北方人在上海 ⋅ 2016/06/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Hive函数

1.函数explode (一转多) create table hive_wc(sentence string); load data local inpath '/home/hadoop/data/hive-wc.txt' into table hive_wc; 结果: hive > select * from hive_wc; ......

GordonNemo ⋅ 19分钟前 ⋅ 0

PE格式第三讲扩展,VA,RVA,FA的概念

作者:IBinary 出处:http://www.cnblogs.com/iBinary/ 版权所有,欢迎保留原文链接进行转载:) 一丶VA概念 VA (virtual Address) 虚拟地址的意思 ,比如随便打开一个PE,找下它的虚拟地址 这边...

simpower ⋅ 36分钟前 ⋅ 0

使用Java connector消费ABAP系统的函数

Java Connector(JCO)环境的搭建:Step by step to download and configure JCO in your laptop 我的ABAP系统有个函数名叫ZDIS_GET_UPSELL_MATERIALS,输入一个customer ID和product ID,会输......

JerryWang_SAP ⋅ 42分钟前 ⋅ 0

IDEA提示编码速度

焦点移动 将焦点冲代码编辑窗口移动到菜单栏:Alt+菜单栏带下划线字母 将焦点从工具窗口移动到代码编辑窗口 Esc或Shift+Esc 将焦点从代码编辑移动到最近使用的工具窗口 F12 模板提示 Ctrl+J...

bithup ⋅ 54分钟前 ⋅ 0

180623-SpringBoot之logback配置文件

SpringBoot配置logback 项目的日志配置属于比较常见的case了,之前接触和使用的都是Spring结合xml的方式,引入几个依赖,然后写个 logback.xml 配置文件即可,那么在SpringBoot中可以怎么做?...

小灰灰Blog ⋅ 今天 ⋅ 0

冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第...

人觉非常君 ⋅ 今天 ⋅ 0

Vagrant setup

安装软件 brew cask install virtualboxbrew cask install vagrant 创建project mkdir -p mst/vmcd mst/vmvagrant init hashicorp/precise64vagrant up hashicorp/precise64是一个box......

遥借东风 ⋅ 今天 ⋅ 0

python3.6 安装pyhook_3

我的是在win下的,忙了半天老是安装不了, pip install 也不行。 那么可以看出自己的版本是32bit 一脸懵逼 没办法 只好下载32版本的来安装 我一直以为 是 对应32 位的 。 下面是 小例子 http...

之渊 ⋅ 今天 ⋅ 0

004、location正则表达式

1、location的作用 location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。 2、location的语法 = 开头表示精确匹配 ^~...

北岩 ⋅ 今天 ⋅ 0

CentOS7 静默安装 Oracle 12c

环境 CentOS7.5 最小安装 数据库软件 linuxx64_12201_database.zip 操作系统配置 关闭 SELinux sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 关闭防火墙 systemctl disable ......

Colben ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部