首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS 事件传递和处理

前言 iPhone拥有很好的用户交互体验,这源于iOS系统对交互事件的高效处理和高优响应; App开发者处理用户交互非常便捷,这源于iOS系统和UIKit对用户操作做了封装和默认处理; 本文围绕iOS...App内:子线程接收事件->主线程封装事件->UIWindow启动hitTest确定目标视图->UIApplication开始发送事件->touch事件开始回调。...UIKit会从UIWindow开始寻找目标视图,先调用UIWindow的hitTest方法询问是否有响应的视图,hitTest方法首先会先调用UIWindow的pointInside方法询问是否在点击范围内...但是当手势识别成功之后,默认会cancel后续touch操作,从目标视图开始的响应链都会收到touchesCancelled方法,而不是正常的touchesEnded方法,堆栈如下: ?...UIButton是UIControl的子类,通过追踪touch事件的变化得到一些UIControl定义的事件(UIControlEvents);UIButton的点击操作是通过UIControlEvents

1.5K20

UI篇-自定义控件之基类UIControl

UIControl的意义所在 UIControl的主要角色是定义一套接口和基础实现,为iOS的人机交互制定了一系列的标准, 为了当确定的事件发生的时候(比如点击了按钮)准备好动作消息(Action)...UIControl事件实现原理 比如我们有一个按钮,当他点击时候,我们执行ViewContollr的-(void)click:(id)sender方法, 这里传入的UIControlEventTouchUpInside...当用户点击按钮时,UIControl响应了触摸链的touchesEnded方法,便会根据私有字典,把对应UIControlEventTouchUpInside的目标(target)和目标方法(action...控件被按下去的事件 UIControlEventTouchDownRepeat 控件被重复点击的时间,点击次数超过一次 UIControlEventTouchDragInside 在控件范围内按下并拖动的事件...UIControlEventTouchDragExit 从控件范围外拖动到控件范围内的事件 UIControlEventTouchUpInside 点击控件后在控件范围内释放触发事件 UIControlEventTouchUpOutside

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

    表格视图: 以容易进行分段或分组的单列形式展示数据 用户可以通过点击来选中某行,或通过控件来添加、移除、多选、查看详情或者展开另一个表格视图 iOS定义了两种表格样式: 分组型(Grouped)。...iOS提供了若干表格视图元素(table-view elements)来扩展表格视图的功能。除了特别标明外,这些元素只适用于表格视图。 ?...iOS定义了在平铺型表格和分组型表格中最常用到的四种单元格布局样式。每种单元格样式都有最适合展示的信息类型。 重要 从编程角度来说,这些样式应用于单元格中,用以控制表格里每一列的绘制方式。...添加这些元素会缩小标题以及副标题单元格的可用宽度。 使用表格视图可以简洁而高效地展示少量或者大量信息。举例来说,你可以通过表格视图来: 展示用户可选的选项列表。...如果你想以一种非标准的形式来布局你的表格,最好是自定义一种单元格样式,而不是在现有的表格样式上进行改动。

    10.1K51

    跟iOS UI的捉迷藏(如何获取用户点击行为的控件title)

    乍一听,熟悉Android的同学会说, View的onClick事件监听就好了,然而,iOS与Android并不相同,一方面,iOS没有统一的获取title的方式,另一方面,不同UI控件title的位置不尽相同...根据上文可知,当UIControl监听到需要处理的交互事件时,会调用 sendAction:to:forEvent: 将target、action以及event对象发送给全局应用,Application...我们只需要通过hook UIControl的 sendAction:to:forEvent: 或 sendAction:to:from:forEvent: 自定义事件执行的target及action。...这样就无法确定是哪个UISegment 换条路 通过打印UISegmentedControl的方法列表,我们找到了一个selectedSegmentIndex 这个对应的内容为最后一个被选中的UISegment...查官方文档 找到了一个,但是iOS14才开放的方法 可以升级后好好试一下,如果大家有好的方法获取,请留言。

    1.4K10

    iOS 中的事件响应

    -> Bool 检查自身可否接收事件过程中,如果视图符合以下三个条件中的任一个,都会无法接收事件: view.isUserInteractionEnabled = false view.alpha <...{ // 视图无法接受事件 if !...; cancelled:手势识别器已接收到导致取消连续手势的触摸; failed:手势识别器收到了一个无法识别为手势的多点触控序列; recognized:手势识别器接收到一个多点触控序列,并将其识别为它的手势...当用户在 UIScrollView 的一个子视图上按下时,UIScrollView并不知道用户是想要滑动内容视图还是点击对应子视图,所以在按下的一瞬间, 事件 UIEvent 从 UIApplication...相关链接 由手势与 UIControl 冲突引发的「事件处理全家桶」探索[4] iOS 事件(UITouch、UIControl、UIGestureRecognizer)传递机制[5] iOS | 事件传递及响应链

    2.8K11

    事件传递、响应者链条

    ,能够处理touchesBegan等触摸事件 当一个Touch事件产生时,要先找到响应者,iOS通过Hit-Test机制来寻找响应者,每一个UIView(继承自UIResponder)都有以下的方法 -...:原理 // point是该视图的坐标系上的点 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { // 1.判断自己能否接收触摸事件...在视图层次结构的最顶级视图,传递给ViewController ViewController将事件传递给window对象进行处理 window对象继续将事件或消息传递给UIApplication...四、实例分析 UIButton的继承链是: UIButton->UIControl->UIView->UIResponder->NSObject UIApplication能够接受事件,因为UIApplication...和UIView一样继承自UIResponder 下面是一个点击事件的方法过程 UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd

    89010

    excel常用操作

    1日期推荐输入格式为:年/月/日,可以在单元格格式修改日期格式alt+方向下箭头:下拉式菜单输入双击黑色小加号也可以下拉到底3选中不懂的一行的下一行,在视图中打开冻结窗格,即可让上面的内容一直显示,还可以使用拆分功能...11数据透视表12每一页都显示标题:在页面布局中打印标题选择顶部标题内容13视图 页面布局调整页首与页尾页码是第几页,页数是总页数插入浮水印颜色用冲蚀效果用回车键移动位置14sum:总和large:第几大的数是输入...countifs:可以设定多个条件“符号”&单元格,表示链接两者\=COUNTIFS(C2\:C14,F2,D2\:D14,">"\&G2)日期也可以用month:从日期中截取月份sumifs...:复制 选择性粘贴 勾选转置ctrl+~:显示公式而不是数值储存格内换行:alt+enter21输入分数例如1/2时会自动识别成日期,需要输入0 1/2输入前面有0的数字时可以提前蛇尾文本格式或‘0.....,重复的只返回第一个找到的位置,此时可指定开始位置len():单元格内的字母数25hlookup()index():返回指定行列后的元素内容match():返回查询的元素行或列内的位置28randbetween

    11210

    【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

    File -> New -> File, 弹出下面对话框, 选择 iOS 的 User Interface 选项卡中的 View 选项, 点击 Next 按钮;  -- 创建文件 : 输入名称 Main.xib...; (7) Line Break 属性 Line Break 属性 :  -- 作用 : 该属性对 UILabel 内的文本进行截断, UILabel 中的字符串比较多, UILabel 无法容纳这些字符串...IOS 的 MVC 模式 - M(Model 模型) V (View 视图) C (Controller 控制器) IOS MVC 模式 :  -- Model 模型 : Model 一般式普通的 Objective...通过代码设置事件处理方法 (1) 注册删除事件响应方法 注册删除事件响应方法 :  -- 注册删除事件方法来源 : IOS 中与用户交互的控件都继承了 UIControl 类, 注册 删除 控件响应方法...IOS 图标设置 IOS 图片设置 : 直接从文件目录将图片拖动到 Xcode 相应的设置中. -- 设置图标 : 在项目文件视图中, 点击 Images.xcassets, 选中左侧的 AppIcon

    5K30

    工作中必会的57个Excel小技巧

    7、恢复未保护的excel文件 文件 -最近所用文件 -点击“恢复未保存的excel文件” 9、设置新建excel文件的默认字体和字号 文件 -选项 -常规 -新建工作簿时:设置字号和字体 10、把A.xlsx...-视图 -隐藏 5、让标题行始终显示在最上面 视图 -冻结窗格 -冻结首行 6、把窗口拆分成上下两部分,都可以上下翻看 选取要拆分的位置 -视图 -拆分 7、调整excel工作表显示比例 按ctrl+...、隐藏单元格内所有值 ctrl+1打开单元格设置窗口 -数字 -自定义 -右边文框中输入三个分号;;; 3、隐藏编辑栏、灰色表格线、列标和行号 视图 -显示 -去掉各项的勾选 四、单元格选取 1 、选取当前表格...按ctrl+a全选当前数据区域 2 、选取表格中的值/公式 按ctrl+g打开定位窗口 -定位条件 -值/公式 3 、查找值 按ctrl+f打开查找窗口,输入查找的值 -查找 4、选取最下/最右边的非空单元格...11、插入特殊符号 插入 -符号 12、查找重复值 选取数据列 -开始 -条件格式 -突出显示单元格规则 -重复值 13、删除重复值 选取区域 -数据 -删除重复项 14、单元格分区域需要密码才能编辑

    4.1K30

    Excel 常用的九十九个技巧 Office 自学教程快速掌握办公技巧

    Microsoft Excel 是微软为 Windows、macOS、Android 和 iOS 开发的电子表格软件,可以用来制作电子表格、完成许多复杂的数据运算,进行数据的分析和预测,并且具有强大的制作图表的功能...14、冻结窗格依次点击菜单栏的【视图】-【冻结窗格】-【冻结首行或冻结首列】若需要同时冻结首行和首列时点击数据区域左上角第一个单元格再选择冻结窗格中的【冻结拆分窗格】即可,需要取消冻结则点击【取消冻结窗格...48、快速冻结第一行及第一列选中表格内的 B2 单元格,点击菜单栏中的【视图】-【冻结至第 1 行 A 列】就完成了。...86、取消固定单元格首先全选固定的单元格,然后点击【视图】-【冻结窗格】-【取消固定单元格】即可。...94、快速提取字符串中的数字单元格内手动输入目标值,接着按下 Ctrl+E,Excel 会自动识别截取规则,批量截取数字。

    7.2K21

    IOS开发之视图和视图控制器

    视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西。在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多。...3.界面都是视图对象,即在UIView类的实例中进行布局,UIView表示屏幕上的一块矩形区域,负责渲染矩形区域中的内容,并且响应该区域内发生的触摸事件。...视图层大致分为下面的几类         1.容器视图                 容器视图用于增强其他视图的功能,或者为视图内容提供额外的视觉分隔,比如UIScorllView类用于显示因内容太大而无法显示在一个屏幕上的视图...控件是一种特殊类型的视图,继承子UIControl超类,通常要绑定回调方法(比如Target-Action回调和委托回调),用于用户交互。控件包括按键,文本框,滑块,和切换开关。...2.我们在MainViewController.m中进行我们的视图声明和实例化,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #import

    1.8K70

    最新iOS设计规范四|3大界面要素:视图(Views)

    iOS系统提供了许多内置活动,包括Print、Message和AirPlay。这些任务总是首先出现在活动视图中,无法重新排序。你不必为执行这些内置任务而去创建自定义活动。...一般而言,表格是基于文本的内容的理想选择,并且通常作为导航视图显示在拆分视图的一侧,而相关内容显示在另一侧。 表单分类 iOS有三种样式的列表,平级、分组、插入分组。 平级。...表单中的行 使用标准表格单元格样式来定义内容在表格行中的显示方式。 基础列表(默认):行的左侧显示图像,其后紧跟左对齐标题。对于不需要显示其他附加信息的项目来说,这是一种很好的选择。...显示不全的文字和词语很难被阅读和理解。超长的文本被截断在所有表格单元格样式中都是自动的,只是根据你使用的单元格样式和发生截断的位置,它可能会出现或多或少的问题。 可为“删除”按钮自定义标题。...然后,用户还会期待出现新的视图或者要改变的东西,例如已勾选按钮,是表示用户已经做出了选择。 为非标准表行设计自定义表格单元格样式。

    8.5K31

    用 Table 在 SwiftUI 下创建表格

    ( Xcode 14.0 beta (14A5228q) ),Table 在 iPad OS 上的表现不佳,存在不少的 Bug 。...开发者可以通过 frame 修饰符来更改单元格中内容的对齐方式( 暂时无法更改标题的对齐方式 ): TableColumn("货币代码") { Text($0.currencyCode)....red : .green) } 目前的测试版 14A5228q ,当属性类型为 Bool 时,在该列上启用排序会导致应用无法编译 尽管在点击可排序列标题后,仅有一个列标题显示了排序方向,但事实上 Table...将按照用户的点击顺序添加或整理排序变量的排序顺序。...在其他平台上创建表格 虽然 Table 可以在按照 iOS 16 的 iPhone 上运行,但由于只能显示首列数据,因此并不具备实际的意义。

    4.2K31

    office相关操作

    :计算符合条件的储存格数目,一次只能設定一个条件countifs:可以设定多个条件“符号”&单元格,表示链接两者\=COUNTIFS(C2\:C14,F2,D2\:D14,">"\&G2)日期也可以用表格转置:复制 选择性粘贴 勾选转置ctrl+~:显示公式而不是数值储存格内换行:alt+enter19输入分数例如1/2时会自动识别成日期...,重复的只返回第一个找到的位置,此时可指定开始位置len():单元格内的字母数23hlookup()index():返回指定行列后的元素内容match():返回查询的元素行或列内的位置24randbetween...excel第一行与第一列交叉单元格,点击视图-冻结窗格如此便能实现同时冻结首行首列的效果。...怎么将Excel表格的空格替换成换行显示word空白页问题在表格后的空白页,按del无法删除。

    11510

    最新Python大数据之Excel进阶

    利用固定常量创建图表 •选中任意单元格,点击插入标签,选择合适类型的图表 •此时会插入一个空白的图表,我们选择图表,切换图表设计标签,点击选择数据图标。...二维表将无法顺利建立数据透视表。 表中不要有空值 原始数据不要出现空行/空列。如数据缺失,或为“0”值,建议输入“0”而非空白单元格。...表中不要有合并单元格 数据透视表的原始表格中不要有合并单元格存在,否则容易导致透视分析错误 填充合并单元格办法:取消合并单元格 ->选中要填充的空单元格 ->输入公式->按Ctrl+Enter键重复操作...如左下图所示,“日期”在【行】区域内,选中“日期”进行拖拽,可以拖动到【列】区域内。 字段设置 •设置字段的值 透视表是一种可以快速汇总大量数据的表格。...最终效果 分析不同业务员不同商品的销量 分析不同业务员,不同商品类别的销售额 添加数据透视图 添加透视图的方法:选中透视表区域的单元格,在【数据透视表分析】选项卡下【工具】组中选择【数据透视图】 数据透视图内容筛选

    26550

    iOS之深入解析Xcode 13正式版发布的40个新特性

    Buttons; 添加了对用于静态表格视图中表格视图单元格的新内容配置样式的支持; UITabBar 和 UIToolbar 检查器现在支持配置 scrollEdgeAppearance; Interface...Xcode 13 中的 Swift 语法高亮显示是即时且无闪烁的,无论是在文件之间进行编辑还是导航; 即使您的代码不完整或您的项目无法编译,Swift Jump to Definition 现在也能提供更具弹性的体验...二十九、Audio Units Audio Units 现在提供 Audio Unit host 可以在 iOS 中显示的自定义视图。...四十、UIKit 对于针对 iOS 15 beta SDK 编译的应用程序,在文本视图和文本字段中键入时,按键命令不再拦截文本输入和文本编辑命令。...在 iOS 14 和 iPadOS 14 及更早版本中,当 autocorrectionType 设置为 UITextAutocorrectionTypeNo 时,QuickType 栏将被禁用。

    8.8K40

    2022年最新Python大数据之Excel基础

    基础 数据引用 引用当前工作表数据 •在B2单元格中输入”=“ •点击要引用的单元格或范围 引用当前工作表数 •使用Enter键结束键入,E2单元格内即引用了B2单元格内的数据 •此时,B2单元格为被引用单元格...二维表将无法顺利建立数据透视表。 表中不要有空值 原始数据不要出现空行/空列。如数据缺失,或为“0”值,建议输入“0”而非空白单元格。...表中不要有合并单元格 数据透视表的原始表格中不要有合并单元格存在,否则容易导致透视分析错误 填充合并单元格办法:取消合并单元格 ->选中要填充的空单元格 ->输入公式->按Ctrl+Enter键重复操作...如左下图所示,“日期”在【行】区域内,选中“日期”进行拖拽,可以拖动到【列】区域内。 字段设置 •设置字段的值 透视表是一种可以快速汇总大量数据的表格。...最终效果 分析不同业务员不同商品的销量 分析不同业务员,不同商品类别的销售额 添加数据透视图 添加透视图的方法:选中透视表区域的单元格,在【数据透视表分析】选项卡下【工具】组中选择【数据透视图】 数据透视图内容筛选

    8.2K20
    领券