事件的基本概念

用户在使用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);
}

转载于:https://www.cnblogs.com/ShaRuru/p/5100468.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值