zoukankan      html  css  js  c++  java
  • iOS

    事件处理的完整过程

    • 1> 先将事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件。

    • 2> 调用最合适控件的touches….方法

    • 3> 如果调用了[super touches….];就会将事件顺着响应者链条往上传递,传递给上一个响应者

    • 4> 接着就会调用上一个响应者的touches….方法

    如何判断上一个响应者

    • 1> 如果当前这个view是控制器的view,那么控制器就是上一个响应者

    • 2> 如果当前这个view不是控制器的view,那么父控件就是上一个响应者

    响应者链的事件传递过程

    • 如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图
    • 在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理
    • 如果window对象也不处理,则其将事件或消息传递给UIApplication对象
    • 如果UIApplication也不能处理该事件或消息,则将其丢弃

    响应者

    1. touches方法做法是将事件顺着响应着链条向上传递,交给上一响应者进行处理。
    2. 默认方法中[super touches... withEvent..];
    3. 控件能响应事件则必须实现重写touches方法,在其方法中处理事件,实现响应。
    4. 多控件处理的原则是1在响应者链条上,且是其控件的父控件2且实现touches方法。
  • 相关阅读:
    经纬度计算距离
    MS SQL 获取身份证年龄
    C# SpeechSynthesizer 使用
    mysql 获取字段括号里的内容
    C# 获取操作系统版本
    微信 小程序跳转到的H5页面,再跳转回跳小程序
    SQL 收缩日志
    SQL 获取表结构
    SQL Server 优化
    Snowflake
  • 原文地址:https://www.cnblogs.com/ShaoYinling/p/4649881.html
Copyright © 2011-2022 走看看