在view上响应手势和touch事件

1.touch事件的传递是从上往下传递。如果子类截获了touch事件父类不会在响应touch事件,但是在子类的touchbegin接口中加入[super touchbegin。。。。]则父类就能响应子类的touch事件。

2.怎么让touch和手势同时存在一个view中?

一般情况下,手势发生的时候先调用代理中shouldReceiveTouch:方法后执行touch事件。目的是询问delegate是否允许手势接收一个touch对象。如果返回yes表示允许接收反之,返回NO。

另外注意手势中的几个属性:

属性:cancelsTouchesInView 用来表示当手势被识别以后是否允许识别touch对象。default = YES;

    delaysTouchesBegin     用来表示 接收者解析view的时候是否延迟发送touch对象。if YES,view 在UITouchBegin 和 UITouchPhaseMoved两个阶段解析touch事件。

if NO,view 在UITouchBegin阶段把touch对象挂起。如果识别出来了手势,则把touch对象给丢弃。如果没有识别出来,则把touch对象发送到touch begin。。。。。


        UIPinchGestureRecognizer * pinchRecognizer  = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(doPinch:)];
        pinchRecognizer.delegate  = self;
        pinchRecognizer.cancelsTouchesInView = YES;
        pinchRecognizer.delaysTouchesBegan = YES;
        [self addGestureRecognizer:pinchRecognizer];

其中delegate中的方法全部返回YES。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值