首页 > 其他 > 详细

触摸事件

时间:2014-05-19 15:49:33      阅读:340      评论:0      收藏:0      [点我收藏+]

第一:触控事件的基本概念:

      事件是当用户手指触击屏幕及在屏幕上移动时,系统不断发送给应用程序的对象;

      系统将事件按照特定的路径传递给可以对其进行处理的对象;

      在IOS中,一个UITouch对象表示一个触摸,一个UIEvent对象表示一个事件;

      事件对象中包含与当前多点触摸序列相对应的所有触摸对象,还可以提供与特定视图或窗口相关联的触摸对象;

 第二:触控的开始,移动和结束:

       触摸所包含的信息有时间和空间两方面:

       时间方面的信息称为阶段,表示触摸是否刚刚开始,是否正在移动或处于静止状态以及何时结束;

       触摸信息还包括当前在视图或窗口中的位置信息,以及之前的位置信息;

       当一个手指接触屏幕时,触摸就和某个窗口或视图关联在一起,这个关联在事件的整个生命周期都会得到维护;

第三:触控与多点触控:

        当手指接触到屏幕,不管是单点触摸还是多点触摸,事件都会开始,直到用户所有的手指都离开屏幕;

        触摸对象UITouch类常用属性:

        view:触摸产生时所处的视图,由于视图可能发生变化,当前视图也不一定是最初的视图;

        tapCount:轻击操作和鼠标的单价操作类似,tapCount表示短时间内轻击屏幕的次数,因此可以根据tapCount判断单击,双击,或更多的轻击;

        phase:触摸事件在屏幕上有一个周期,即触摸开始,触摸点移动,触摸结束,还有中途取消;

触控事件响应链:

      所有事件响应的类都实UIResponder的子类,它能接收处理事件。

      处理触摸的四个方法:

bubuko.com,布布扣
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event     
{  
     //触摸开始
    NSLog(@"touchesBegan");  
}  
  
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event     
{  
    //触摸移动
    NSLog(@"touchesMoved");  
}  
  
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event   
{  
     //触摸结束
    NSLog(@"touchesEnded");  
}  
  
-(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event    
{  
//如系统决定取消此次触摸,那可能就不调用touchesEnded方法了,在这种情况下会调用touchesCancelled方法  
    NSLog(@"touchesCancelled");  
}  
bubuko.com,布布扣

  

bubuko.com,布布扣
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event     
{  
     //触摸开始
    NSLog(@"touchesBegan");  

    //获取第一次进行手势或轻击
    UITouch *touch = [touches anyObject];
   //获取某个视图的触摸
   UITouch *myTouches = [event touchesForView:self.view];
   //获取点击的位置
    CGPoint beginPoint = [touch locationInView:self];

}  
bubuko.com,布布扣

    对应响应链有以下规则:

     第一响应者就是响应链的开始;

     以UIResponder为父类的任何类都是响应者;

     如果第一响应者不处理某个事件,则将该事件传递到响应者链的下一级,一般情况下如果下一级处理,则停止事件的传递;

     如果事件通过整个响应者链并且没有对象处理该事件,则丢弃该事件

    响应者链传递的顺序总结:

    第一响应者几乎总是视图或控件,并且首先对事件进行响应;

    如果第一响应者不处理,则传递给其他视图控制器,如果仍不处理则传递给第一响应者的父视图;

    如果父视图没有处理,则转给父视图的控制器;

    如果一直传递下去而没有环节去处理,则一直传递到应用程序的窗口;

    如果窗口不处理,则将传递给应用程序委托,如果应用程序委托不是UIResponder子类或不处理,则事件被丢弃;

    如果事件通过整个响应者链并且没有对象处理该事件,则丢弃该事件;

    

     

触摸事件,布布扣,bubuko.com

触摸事件

原文:http://www.cnblogs.com/taopengcun/p/3735110.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!