• 事件的基本概念


    用户在使用App的过程中会产生各种事件:

    • 触摸事件(手势与屏幕交互)
    • 加速计事件(摇一摇)
    • 远程控制事件(耳麦)

    只有继承自UIResponder的对象才能接受并处理事件,这类对象称为响应者对象

    • UIApplication
    • UIViewController
    • UIView
    • ...

    产生相应交互时,系统会自动调用相关事件

    • 触摸:touchesBegan:
    • 移动:touchesMoved:
    • 离开:touchesEnded:
    • 系统事件打断触摸:touchesCancelled:

    UITouch对象

    • 作用:保存了触摸的相关信息
    • 通过相应属性与方法获取

    UIEvent对象

    • 事件对象,记录了事件产生的时刻和类型
    • 还提供了相应方法可以获得在某个View上面的触摸对象UITouch

    实现View随手指拖拽而移动

    -(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
        //0.获取UITouch对象
        UITouch *touch = [touches anyObject];//当前只有一个UITouch对象,可以使用anyObject
        //1.获取手指当前触摸点
        CGPoint curP = [touch locationInView:self];
        //2.获取手指上一个触摸点
        CGPoint preP = [touch previousLocationInView:self];
        //3.计算偏移量
        CGFloat offsetX = curP.x - preP.x;
        CGFloat offsetY = curP.y - preP.y;
        //4.修改View的位置
        //MakeTranslation:会清空上一次的形变
        //self.transform = CGAffineTransformMakeTranslation(offsetX, 0);
        self.transform = CGAffineTransformTranslate(self.transform, offsetX, offsetY);
    }
    
  • 相关阅读:
    vue子父组件传值
    springboot后端controller参数接收
    mybatis-plus 相关
    整理 node-sass 安装失败的原因及解决办法
    vue组件name的作用小结
    关于npm audit fix
    Vue项目
    你们都在用IntelliJ IDEA吗?或许你们需要看一下这篇博文
    Eslint配置
    spring boot 资料整合
  • 原文地址:https://www.cnblogs.com/ShaRuru/p/5100468.html
Copyright © 2020-2023  润新知