`
iaiai
  • 浏览: 2210929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iOS开发UI篇—响应者链条

 
阅读更多
一、触摸事件处理的详细过程
用户点击屏幕后产生的一个触摸事件,经过一些列的传递过程后,会找到最合适的视图控件来处理这个事件

找到最合适的视图控件后,就会调用控件的touches方法来作具体的事件处理

touchesBegan…

touchesMoved…

touchedEnded…

这些touches方法的默认做法是将事件顺着响应者链条向上传递,将事件交给上一个响应者进行处理

二、响应过程

一次完整的触摸事件的传递响应的过程

UIAppliction --> UIWiondw -->递归找到最适合处理事件的控件-->控件调用touches方法-->判断是否实现touches方法-->没有实现默认会将事件传递给上一个响应者-->找到上一个响应者

三、重要说明

1.相关概念

响应者链条:由很多响应者链接在一起组合起来的一个链条称之为响应者链条

响应者:继承UIResponder的对象称之为响应者对象

2.处理原则

默认做法是将事件顺着响应者链条向上传递,将事件交给上一个响应者进行处理

如何判断当前响应者的上一个响应者是谁?

  • 1)判断当前是否是控制器的View, 如果是控制器的View上一个响应者就是控制器
  • 2)如果当前不是控制器的View,上一个响应者就是父控件



3.响应者链条有什么用?

可以让一个触摸事件发生的时候让多个响应者同时响应该事件
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    [super touchesBegan:touches withEvent:event];

    NSLog(@"%@" , self.class);
}


四、响应者链的事件传递过程

如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图

在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理

如果window对象也不处理,则其将事件或消息传递给UIApplication对象

如果UIApplication也不能处理该事件或消息,则将其丢弃

补充:苹果官方文档
  • 大小: 58.5 KB
  • 大小: 260.7 KB
分享到:
评论

相关推荐

    iOS开发UI篇—字典转模型 - 文顶顶 - 博客园

    这篇文章通过一个具体的实例,向初学者展示了如何在iOS的UI开发过程中完成字典到模型的转换。 首先,文章提到了plist文件的使用。plist文件是一种在iOS开发中常用的数据存储格式,它可以存储各种类型的数据,包括...

    iOS开发UI基础UI高级开发(完整)

    教程名称: iOS开发UI基础 UI高级开发(完整)【】配套源码.zip【】配套课件.zip【】UI高级视频(未加密版本).zip【】UI 基础课程视频.zip【】Objective-C部分.zip 资源太大,传百度网盘了,链接在附件中,有需要...

    iOS开发UI框架

    在iOS应用开发中,UI框架扮演着至关重要的角色,它为开发者提供了构建用户界面所需的工具和组件。本项目聚焦于iOS开发中的UI框架,提供了一套完整的解决方案,包括App的首次启动引导页面、基于UITabBarController的...

    iOS UI开发详解

    ### iOS UI开发详解 #### 一、iOS UI开发概述 在iOS开发中,用户界面(User Interface, UI)的设计与实现是非常关键的一部分。优秀的UI不仅能够提升用户体验,还能够更好地展示应用的功能特性。本文将深入讲解iOS...

    iOS开发UI篇—CAlayer层的属性 - 文顶顶 - 博客园1

    iOS 开发 UI 篇—CALayer 层的属性 本文主要介绍了 iOS 开发中 UI 篇的 CALayer 层的属性,包括 position 属性和 anchorPoint 属性的作用和使用。 一、position 属性 position 属性是 CALayer 的一个基本属性,它...

    iOS开发进阶篇-成为一个iOS开发高手

    "iOS开发进阶篇-成为一个iOS开发高手"这份资料正为此目标提供了全面的指导。它深入探讨了iOS开发的核心概念和技术,旨在帮助开发者们从初级水平提升到高级专家水平。 首先,这份资料可能涵盖了Swift编程语言的高级...

    iOS注册UI案例

    在iOS开发中,用户界面(UI)的设计与实现是至关重要的,因为它直接影响到用户的体验和产品的吸引力。"iOS注册UI案例"是一个展示如何在iOS应用中创建用户注册流程的实例,由开发者“猫猫”精心制作。这个案例包含了...

    iOS开发UI_API手册

    适合初学者的iOS开发手册 记录了常用UI使用api以及调用流程

    iOS 7 UI Components

    iOS 7 UI Components是iOS7组件的psd文件

    iOS开发 - 第01篇 - UI基础 - 04 - 超级猜图

    在本教程中,我们将深入探讨iOS开发中的UI基础,特别是通过一个名为“超级猜图”的小程序来学习。这个小程序是一个适合初学者的项目,旨在帮助开发者掌握基本的用户界面设计和交互实现。在这个项目的实践中,我们...

    ios常用ui的demo

    在iOS开发中,UI(用户界面)设计是至关重要的,因为它直接影响到用户的体验和应用程序的吸引力。本示例集合“ios常用ui的demo”涵盖了多个关键的UI组件和功能,帮助开发者更好地理解和实现这些常见的iOS界面元素。...

    ios-iOS - UI - 01 - 计算器.zip

    在iOS开发中,UI(用户界面)设计是至关重要的,因为它直接影响到用户的体验和应用程序的受欢迎程度。本压缩包文件“ios-iOS - UI - 01 - 计算器.zip”显然关注的是一个基本但关键的UI组件:计算器。在iOS应用中,...

    IOS初级UI控件Demo(Swift版)

    在iOS开发中,Swift语言是苹果官方推荐的编程语言,用于构建用户界面(UI)和实现应用程序的功能。这个"IOS初级UI控件Demo(Swift版)"提供了丰富的Swift代码示例,帮助初学者理解并掌握iOS应用中的基本UI组件。下面...

    iOS开发视频教程《UI-第1季-2013年新版》(44集)

    资源名称:iOS开发视频教程《UI-第1季-2013年新版》(44集)资源目录:【】2013版千锋iOS培训视频UI(1.1-1.2)【】2013版千锋iOS培训视频UI(1.3-1.5)【】2013版千锋iOS培训视频UI(1.6-1.7)【】2013版千锋iOS...

    iOS开发之事件传递响应链

    在iOS开发中,事件传递响应链是一个至关重要的概念,它决定了应用程序如何处理用户的交互行为。当用户与屏幕上的元素进行互动,如点击、滑动等,iOS系统会生成相应的事件对象,并通过响应链来找到合适的对象来处理...

    IOS源码应用Demo-iphone开发技巧UI篇之实现CheckBox BECheckBox.zip

    综上所述,`BECheckBox`是iOS开发中一个典型的自定义UI组件示例,它涵盖了UI设计、响应式编程、动画实现等多个方面的知识点。通过学习和分析这个源码,开发者可以提升自己的iOS编程技能,并了解如何在实际项目中创建...

    iOS9 UI Tests UI自动化测试 demo

    iOS9 UI Tests UI自动化测试 demo 这篇文章详细讲解了原理以及如何操作 http://blog.csdn.net/zhao18933/article/details/46621999 demo中还提供了另外一种进行自动化测试的思路

    iOS 学习UI部分,代码和笔记,超详细

    在iOS开发中,UI(User Interface)部分是构建应用程序外观和交互的核心,它涉及各种控件和布局的设计。本资源包含iOS学习UI部分的代码和笔记,内容详细,旨在帮助开发者深入理解并熟练掌握iOS UI的开发技巧。下面将...

    基于Objective-C的QMUI iOS UI开发解决方案设计源码

    这是一个基于Objective-C的QMUI iOS UI开发解决方案设计,使用Objective-C、C、MATLAB和Python语言开发,包含348个文件。主要文件类型包括152个H文件、145个M文件、17个JSON文件、16个PDF文件、4个Markdown文档、3个...

    sketch IOS UI组件库

    Sketch IOS UI组件库,安装即可自动加载到Sketch中,省去自己建库的时间。

Global site tag (gtag.js) - Google Analytics