美文网首页
(五)举个栗子

(五)举个栗子

作者: 小白猿 | 来源:发表于2019-03-01 16:08 被阅读0次

本文系转载,原文地址为iOS触摸事件全家桶

iOS中,除了UIResponder能够响应事件,手势识别器、UIControl同样具备对事件的处理能力。当这几者同时存在于某一场景下的时候,事件又会有怎样的归宿呢?

抛砖引玉

场景界面如图:

image

代码不能再简单:

- (void)viewDidLoad {
    [super viewDidLoad];
    //底部是一个绑定了单击手势的backView
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(actionTapView)];
    [_backView addGestureRecognizer:tap];
    //上面是一个常规的tableView
    _tableMain.tableFooterView = [UIView new];
    //还有一个和tableView同级的button
    [_button addTarget:self action:@selector(buttonTap) forControlEvents:UIControlEventTouchUpInside];
}

- (void)actionTapView{
    NSLog(@"backview taped");
}

- (void)buttonTap {
    NSLog(@"button clicked!");
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSLog(@"cell selected!");
}

然后我像往常一样怀揣着吃奶的自信点击了cell。what??点不动??点歪了吗??再点,还是没反应!!我试着短按了一小会儿cell,依旧没反应!!我不死心,长按了一会儿,didSelectRowAtIndexPath终于调了,还算给点面子 - -。然后我又点了下面的button,没有任何问题。but what ??

为了搞清楚状况,我自定义了相关的控件类,均重写了4个响应触摸事件的方法以打印日志(每个重写的触摸事件方法都调用了父类的方法以保证事件默认传递逻辑)。

观察各种情况下的日志现象:

现象一 快速点击cell

backview taped

现象二 短按cell

-[GLTableView touchesBegan:withEvent:]
backview taped
-[GLTableView touchesCancelled:withEvent:]

现象三 长按cell

-[GLTableView touchesBegan:withEvent:]
-[GLTableView touchesEnded:withEvent:]
cell selected!

现象四 点击button

-[GLButton touchesBegan:withEvent:]
-[GLButton touchesEnded:withEvent:]
button clicked!

如果上面的现象依旧能让你舒心地抿上一口咖啡,那么恭喜你,本节的内容已经不适合你了。如果觉得一脸懵逼,那就继续往下看吧~

下一篇 (六)手势识别器 UIGestureRecognizer

相关文章

  • (五)举个栗子

    本文系转载,原文地址为iOS触摸事件全家桶 iOS中,除了UIResponder能够响应事件,手势识别器、UICo...

  • 举个栗子

    【问题】苹果商店用户反馈不能注册、不能修改密码、不能使用企业支付 【假设】员工反馈的这些问题是因为信息不对称。员工...

  • 举个“栗子”

    举个栗子 举把剑 举只皮卡丘 举只大白 举个艾斯 举个钢铁侠 举只福娃

  • 举个栗子

    秋季没有做过多的停留便要匆匆要离去,冬季也按耐不住它激动的心情早早探出头来。措手不及的你是否还在冷风中发抖?这种氛...

  • 举个栗子

    最近一个之前的同事因为找工作的事向我寻求帮助,但说实话,能力有限,我也帮不了多少。 只是在和同事说到面试中关于思维...

  • 举个栗子。

    好的广告,不仅仅能打动人,还能让人立刻产生行动。 “啤酒饮料矿泉水,花生瓜子八宝粥。” 每次听到这亲切的呼唤, 我...

  • 举个栗子

    “举个栗子”这个词汇不是我首创的,也不是她首创的,但我第一次听说这个词便是从她哪里得知的。就暂且称她为“举...

  • 举个栗子

    在年前,我们就启动了碳火服务,嘴巴也粘了不少的光。 今天我们像往常一样,也安排上了暖暖的炭火。 光取暖也没那个事儿...

  • append(),appendTo(),appendChild(

    举个栗子 append(),appendTo() appendChild() 举个栗子 prepend(),pre...

  • Promise常用用法

    1-1举个栗子 1-2举个栗子 --by Affandi ⊙▽⊙

网友评论

      本文标题:(五)举个栗子

      本文链接:https://www.haomeiwen.com/subject/uqlduqtx.html