文档章节

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

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

// 父类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);
}

© 著作权归作者所有

共有 人打赏支持
下一篇: Git学习1
HelloSwift
粉丝 0
博文 56
码字总数 42710
作品 0
丰台
程序员
私信 提问
加载中

评论(1)

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

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

麦兜卖鱼丸
2016/06/14
102
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
0
iOS开发-关于自定义控件很值得一看的文章(二)

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

神补刀
2016/03/19
275
0
UIGesture和UIControl的前世今缘

UIGesture和UIControl的前世今缘 最近发现很多同学都搞不清楚 UIGesture 和 UIControl 的正确使用姿势。即便是做了多年 iOS 开发的 senior engineer 也搞不清楚这整个脉络。于是我决定写一篇...

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

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

球球
2016/05/20
13
0

没有更多内容

加载失败,请刷新页面

加载更多

jquery通过id显示隐藏

var $div3 = $('#div3'); 显示 $div3.show(); 隐藏 $div3.hide();

yan_liu
今天
3
0
《乱世佳人》读书笔记及相关感悟3900字

《乱世佳人》读书笔记及相关感悟3900字: 之前一直听「荔枝」,后来不知怎的转向了「喜马拉雅」,一听就是三年。上班的时候听房产,买房了以后听装修,兴之所至时听旅行,分手后听亲密关系,...

原创小博客
今天
3
0
大数据教程(9.6)map端join实现

上一篇文章讲了mapreduce配合实现join,本节博主将讲述在map端的join实现; 一、需求 实现两个“表”的join操作,其中一个表数据量小,一个表很大,这种场景在实际中非常常见,比如“订单日志...

em_aaron
今天
3
0
cookie与session详解

session与cookie是什么? session与cookie属于一种会话控制技术.常用在身份识别,登录验证,数据传输等.举个例子,就像我们去超市买东西结账的时候,我们要拿出我们的会员卡才会获取优惠.这时...

士兵7
今天
3
0
十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部