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__);
}

时间: 2024-10-26 01:36:23

iOS 事件处理之UIResponder简介的相关文章

iOS:事件处理机制

官方文档说明:<Event Handling Guide for iOS>,本文参考转载文章,并参照官方文档补充说明. 本篇内容将围绕iOS中事件及其传递机制进行学习和分析.在iOS中,事件分为三类: 触控事件(单点.多点触控以及各种手势操作) 传感器事件(重力.加速度传感器等) 远程控制事件(远程遥控iOS设备多媒体播放等) 这三类事件共同构成了iOS设备丰富的操作方式和使用体验,本次就首先来针对第一类事件:触控事件,进行学习和分析. Gesture Recognizers Gesture

iOS之多线程1-NSThread简介

关于多线程在iOS中的重要性,就不废话了.就一个字:重要 ! ^_^ iOS中常用的三种多线程方式:NSThread , GCD, NSOpertaion 虽然NSThrea排在第一位(几乎所有的介绍多线程的书籍都是这么排序),但用的最少,原因:没有后面的两个小弟用起来体贴. 作为多线程的大哥,NSThread几乎已经躲到幕后了. NSThread是从Mac OS 系统引入到iOS中的,在Mac OS 10.5之前,NSThread的启用方法只有一个: detachNewThreadSelect

《转之微信移动团队微信公众号》iOS 事件处理机制与图像渲染过程

致歉声明: Peter在开发公众号功能时触发了一个bug,导致群发错误.对此我们深表歉意,并果断开除了Peter.以下交回给正文时间: iOS 事件处理机制与图像渲染过程 iOS RunLoop都干了什么 iOS 为什么必须在主线程中操作UI 事件响应 CALayer CADisplayLink 和 NSTimer iOS 渲染过程 渲染时机 CPU 和 GPU渲染 Core Animation Facebook Pop介绍 AsyncDisplay介绍 参考文章 iOS RunLoop都干了什

iOS 事件处理机制与图像渲染过程

iOS 事件处理机制与图像渲染过程 iOS RunLoop都干了什么 iOS 为什么必须在主线程中操作UI 事件响应 CALayer CADisplayLink 和 NSTimer iOS 渲染过程 渲染时机 CPU 和 GPU渲染 Core Animation Facebook Pop介绍 AsyncDisplay介绍 参考文章 iOS RunLoop都干了什么 RunLoop是一个接收处理异步消息事件的循环,一个循环中:等待事件发生,然后将这个事件送到能处理它的地方. 如图1-1所示,描述了

IOS事件处理

在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件 •UIView是UIResponder的子类,可以覆盖下列4个方法处理不同的触摸事件 UIEvent可获取是哪个特定的事件 触摸.加速.触摸事件. 默认所有的UIView不支持两个手指.要设置才可以,最好不要 搞多个手指,移动时

iOS之Apple Watch简介和使用

Apple Watch 初步了解 简介 项目演示 创建项目 简单的hello world 项目结构 Extension:位于用户的iPhone安装了对应的App上,包含我们需要实现的代码逻辑和其他的资源文件 watch app:目前只允许包含storyboard文件和resource文件 InterfaceController:当前界面的控制器 与UIViewController的区别是:InterfaceController最终继承的是NSObject InterfaceController不

5. IOS事件处理方式?

IOS常用事件处理机制,有如下三种方式: 1. 通过IBAction绑定将控件的特定事件绑定到控制器的指定方式,当该控件上发生此事件时,将会触发控件到的对应方法. 示例:就是拖线的方式. 2. 在程序中为UI控件的特定事件绑定事件监听器. 示例 (1) ,  注册事件:[btn addTarget:self action:@selector(onClickBtn:) forControlEvents:UIControlEventTouchUpInside];   (常用) 示例 (2),  删除

iOS开发UIEvent事件简介

1.UIEvent简介 UIEvent是代表iOS系统中的一个事件,一个事件包含一个或多个的UITouch: UIEvent分为四类: UIEventType typedef NS_ENUM(NSInteger, UIEventType) { UIEventTypeTouches,//触摸事件类型 iOS3.0之后可以用 UIEventTypeMotion,//摇晃事件类型 iOS3.0之后可以用 UIEventTypeRemoteControl,//遥控事件类型 iOS4.0之后可以用 UIE

ios开发,多线程简介

什么是进程? 进程就是指,在系统中正在运行的一个应用程序,比如同时打开QQ,Xcode,系统就会分别启动两个进程. 什么是线程? 一个进程要想执行任务,必须得有线程,线程是进程的基本执行单元,比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 线程的串行:一个线程中任务对的执行就是串行 如果要在一个线程中执行多个任务,那么只能一个一个的按照顺序执行这些任务,也就是说,在同一个时间内,一个线程只能执行一个任务 什么是多线程? 一个进程中可以开启多条线程,每条线程可以并发,执行不同的任务 比