zoukankan      html  css  js  c++  java
  • 常见的事件传递

    事件响应与传递

     UIResponder 

     1.首先要找到在链状结构中,最为适合处理事件相应的组件,如果该组件对事件进行到了处理,那么该事件传递(告一段路),如果最为适合相应该事件的组件没有重写(UIResponder方法),那么他会想回找第二适合处理用户相应事件的组件,如果在一个链状结构中没有任何一个组件处理用户的触控事件,那么该事件将被丢弃

     UIApplication-Appdelgate->UIWindow->UIViewController->(UIView默认视图)->GPGreenView(UIResponder)

      UIApplication-Appdelgate->UIWindow->UIViewController->(UIView默认视图)->//GPGreenView(UIResponder)->(redView)



    一旦用户触摸到了屏幕,就会立即执行touchesBegan

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

    -----------------------------

    例 touchesBegan:

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

    {

        //UITouch 用户的手指,用户手指触控到屏幕,系统就会自动创建一个UITouch对象,并且在内部记录下来用户,触控的位置

        //UITouch对象被存储在 touches 中

        UITouch * touch = [touches anyObject];

        

        //参考当前(自己)视图的坐标系,用户的触控位置应该在哪里

        CGPoint currentPoint = [touch locationInView:self];

        NSLog(@"point %@",NSStringFromCGPoint(currentPoint));

        NSLog(@"%@ %@,%@",_name,NSStringFromClass([self class]),NSStringFromSelector(_cmd));

    }

    -----------------------------

    只要用户触控发生移动,就会立即调用

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

    -----------------------------

    例 touchesMoved:

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

    {

        NSLog(@"%@ %@,%@",_name,NSStringFromClass([self class]),NSStringFromSelector(_cmd));

        //touchesMoved 方法中

        //1.可以获得手指当前坐标位置

        //2.可以获得移动之前的一个位置

        UITouch * touch = [touches anyObject];

        

        CGPoint  currentPoint = [touch locationInView:self];

        CGPoint  prePoint = [touch previousLocationInView:self];

         NSLog(@"currentpoint %@,prePoint %@",NSStringFromCGPoint(currentPoint),NSStringFromCGPoint(prePoint));

        

        跟随操作

        //1.手指在屏幕上移动的差值

        //2.让Frame,x,y坐标增加差值范围

        //3.更新Frame

        CGRect rect = self.frame;

        rect.origin.x += currentPoint.x - prePoint.x;

        rect.origin.y += currentPoint.y - prePoint.y;

       

    }

    ---------------------------------- 

     用户手指离开屏幕,就会立即触发

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

     

    如果用户的操作,被系统功能打断的时候会触发,来电话

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

  • 相关阅读:
    2019-2020-2 20175212童皓桢《网络对抗技术》 Exp4 恶意代码分析
    2019-2020-2 20175212童皓桢《网络对抗技术》Exp3 免杀原理与实践
    2019-2020-2 20175212童皓桢《网络对抗技术》Exp2 后门原理与实践
    2019-2020-2 20175212童皓桢《网络对抗技术》 Exp1 PC平台逆向破解
    2019-2020 《信息安全系统设计》20175212童皓桢 ucosii-2
    2019-2020-1 20175212_20175227《信息安全系统设计基础》
    实现mypwd
    2019-2020-1 20175212童皓桢《信息安全系统设计》实验四 外设驱动程序设计
    2019-2020-1 20175212童皓桢《信息安全系统设计》 实验三并发程序
    20175212-20175227 实验二 固件程序设计
  • 原文地址:https://www.cnblogs.com/CLiOS/p/5290711.html
Copyright © 2011-2022 走看看