zoukankan      html  css  js  c++  java
  • OS开发 touch事件的优先级和事件传递

    界面类的对象一般都是可以接触点击事件的,只不过有的默认接受,有的需要设定属性。

    userInteractionEnabled 属性设置为YES的时候就可以接受点击事件了


     

    - (void)touchesBegan:(NSSet *) touches withEvent:(UIEvent *) event

     

    - (void)touchesMoved:(NSSet *) touches withEvent:(UIEvent *) event

     

    - (void)touchesEnded:(NSSet *) touches withEvent:(UIEvent *) event

     

    - (void)touchesCancelled:(NSSet *) touches withEvent:(UIEvent *) event

     

    上面三个方法就会显示触摸的地方,可以在里面进行响应的操作

     

    touch事件同时只能给一个对象,那么控制touch事件分配的对象也是一个难点了

     

    首先touch事件响应的优先级就是界面的层次,在最上层不响应的时候就会传递给下层

     

    当点击一个区域,想把想把事件传递下去,其他区域拦截事件的时候又是一个问题了

     

     

    - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

     

    这个方法可以很好的解决问题,当返回NO的时候就可以传递下去,返回YES的时候当前对象接受点击事件

     

     

    CGRectContainsPoint(CGRectMake(0, 0, 40, 40), point);


    经常配合这个方法来判断触摸点是否在CGRect内;

  • 相关阅读:
    mvc与springmvc
    mybatis一级与二级缓存详解
    resultType和resultMap的使用场景
    mybatis第一天学习总结
    linux常用命令(不断更新)
    SSH基本框架搭建的详细过程
    hibernate多条件组合查询的两种方式
    AJAX验证用户名是否被注册
    Vimrc
    关于window.open在不同浏览器的不同点
  • 原文地址:https://www.cnblogs.com/mawenqiangios/p/4992532.html
Copyright © 2011-2022 走看看