zoukankan      html  css  js  c++  java
  • iOS 事件处理之UIResponder简介

    • 在用户使用app过程中,会产生各种各样的事件
    • iOS中的事件可以分为3大类型:触摸事件、加速计事件、远程控制事件
    • 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”
    • UIApplication、UIViewController、UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件

    // 当手指开始触摸view
    // NSArray,字典,NSSet(无序)
    
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        NSLog(@"%ld", touches.count);
        NSLog(@"%s",__func__);
    }
    
    // 当手指在view上移动的时候
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
        NSLog(@"%s",__func__);
        
        // 获取UITouch对象
        UITouch *touch = [touches anyObject];
        
        // 获取当前点
        CGPoint curP = [touch locationInView:self];
        
        // 获取上一个点
        CGPoint preP = [touch previousLocationInView:self];
        
        // 获取x轴偏移量
        CGFloat offsetX = curP.x - preP.x;
        
        // 获取y轴偏移量
        CGFloat offsetY = curP.y - preP.y;
        
        // 修改view的位置(frame,center,transform)
        self.transform = CGAffineTransformTranslate(self.transform, offsetX, offsetY);
       
    //    self.transform = CGAffineTransformMakeTranslation(offsetX, 0);
        
    }
    
    // 当手指离开这个view的时候
    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
         NSLog(@"%s",__func__);
    }
    
    // 当触摸事件被打断的时候调用(电话打入)
    - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
    {
        NSLog(@"%s",__func__);
    }

  • 相关阅读:
    POJ-2096-Collecting Bugs(概率DP)
    2019ICPC南京网络赛总结
    LOJ-6285-数列分块入门9
    LOJ-6284-数列分块入门8
    LOJ-6283-数列分块7
    bzoj2049: [Sdoi2008]Cave 洞穴勘测
    bzoj1010: [HNOI2008]玩具装箱toy
    bzoj1597: [Usaco2008 Mar]土地购买
    bzoj1233: [Usaco2009Open]干草堆tower 单调队列优化dp
    bzoj2442&&codevs4654 单调队列优化dp
  • 原文地址:https://www.cnblogs.com/jukaiit/p/5572100.html
Copyright © 2011-2022 走看看