首页 / 专利库 / 软件 / 图形用户界面 / 用于触摸输入处理的设备、方法和图形用户界面

用于触摸输入处理的设备、方法和图形用户界面

阅读:811发布:2020-05-08

专利汇可以提供用于触摸输入处理的设备、方法和图形用户界面专利检索,专利查询,专利分析的服务。并且一种 电子 设备,在显示用于第一应用程序的 用户界面 时,在第一应用程序处接收描述在触敏表面上对应于相应用户界面对象的 位置 处检测到的第一触摸的信息。根据确定第一触摸满足与发起相应类型的界面操作相关联的预定义标准,设备发起涉及相应用户界面对象的相应类型的用户界面操作。第一应用程序接收关于除了相应类型的界面操作之外的用户界面操作忽略第一触摸的指令,并且关于除了相应类型的界面操作之外的用户界面操作忽略第一触摸。在一些实施方案中,相应类型的界面操作是拖动操作,用于在第一应用程序的视图中或从第一应用程序的视图拖动对象。,下面是用于触摸输入处理的设备、方法和图形用户界面专利的具体信息内容。

1.一种方法(700),包括:
在具有显示器和触敏表面的电子设备处:
在所述显示器上显示(702)包括多个用户界面对象的用于第一应用程序的用户界面;
在显示(704)用于所述第一应用程序的所述用户界面时,接收描述第一触摸的信息,其中在所述触敏表面上对应于用于所述第一应用程序的所述用户界面中的所述多个用户界面对象的相应用户界面对象的位置处检测到所述第一触摸,并且所述第一触摸移动到对应于用于所述第一应用程序的所述用户界面的区域之外,进入对应于用于第二应用程序的用户界面的区域;以及
响应于接收到(734)描述所述第一触摸的所述信息:
根据确定所述第一触摸未满足与发起相应类型的界面操作相关联的预定义标准,向所述第一应用程序提供(736)当所述第一触摸在对应于用于所述第一应用程序的所述用户界面的所述区域内时描述所述第一触摸并且当所述第一触摸移动到对应于用于所述第一应用程序的所述用户界面的所述区域之外并且进入对应于用于所述第二应用程序的所述用户界面的所述区域时描述所述第一触摸的信息;并且
根据确定(706)所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准:
发起(708)涉及所述相应用户界面对象的所述相应类型的用户界面操作;以及当在所述触敏表面上继续检测到所述第一触摸时(710)并且当涉及所述相应用户界面对象的所述用户界面操作继续时:
在所述第一应用程序处,接收(712)关于除了所述相应类型的界面操作之外的用户界面操作忽略所述第一触摸的指令;
由所述第一应用程序关于除了所述相应类型的界面操作之外的用户界面操作忽略(714)所述第一触摸,包括停止由所述第一应用程序关于除了所述相应类型的界面操作之外的用户界面操作处理所述第一触摸;
向所述第一应用程序提供(740)当所述第一触摸在对应于用于所述第一应用程序的所述用户界面的所述区域内时描述所述第一触摸的信息;并且
切换到(742)向所述第二应用程序提供当所述第一触摸移动到对应于用于所述第一应用程序的所述用户界面的所述区域之外并进入对应于用于所述第二应用程序的所述用户界面的所述区域时描述所述第一触摸的信息。
2.根据权利要求1所述的方法,包括:
在确定所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准之前,将所述第一触摸处理(720)为视图附接的触摸事件;并且
根据确定所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准,将所述第一触摸处理(722)为分离触摸事件。
3.根据权利要求1所述的方法,还包括:
在确定所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准之前,使用与所述第一应用程序相关联的一个或多个手势识别器将所述第一触摸处理(724)为视图附接的触摸事件;并且
根据确定(726)所述第一用户输入满足与发起所述相应类型的界面操作相关联的所述预定义标准:
停止(728)使用与所述第一应用程序相关联的所述一个或多个手势识别器将所述第一触摸处理为视图附接的触摸事件;以及
将所述第一触摸处理(730)为分离触摸事件。
4.根据权利要求1至3中任一项所述的方法,包括:
当涉及所述相应用户界面对象的所述用户界面操作继续时,在对应于所述第一应用程序的位置处接收(750)描述所述触敏表面上的第二触摸的变化的信息;以及响应于检测到所述第二触摸的所述变化,在不考虑所述第一触摸的情况下使用与所述第一应用程序相关联的一个或多个手势识别器处理(752)描述所述第二触摸的所述变化的所述信息。
5.根据权利要求1至3中任一项所述的方法,包括在检测到所述第一触摸的移动时,并且根据确定所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准:
确定(744)对应于所述第一触摸的相应位置的一个或多个相应区域,其中所述一个或多个相应区域与一个或多个相应应用程序相关联;以及
当所述第一触摸在相应区域内时,向用于所述相应区域的所述相应应用程序提供(746)描述所述第一触摸的信息。
6.根据权利要求1至3中任一项所述的方法,包括根据确定所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准,向用于相应区域的所述相应应用程序提供(748)描述所述第一触摸的所述信息,同时提供描述不满足与发起所述相应类型的界面操作相关联的所述预定义标准的一个或多个附加触摸的信息。
7.根据权利要求1所述的方法,包括:
当在所述触敏表面上继续检测到所述第一触摸时(710)并且当涉及所述相应用户界面对象的所述用户界面操作继续时:
在所述第一应用程序处接收(754)描述不同于所述第一触摸的第二触摸的信息;
响应于(756)接收到描述所述第二触摸的所述信息:
根据确定所述第二触摸满足与所述用户界面操作相关联的预定义添加标准:
在所述第一应用程序处,接收(758)关于除了所述相应类型的界面操作之外的用户界面操作忽略所述第二触摸的指令;以及
由所述第一应用程序关于除了所述相应类型的界面操作之外的用户界面操作忽略(760)所述第二触摸。
8.根据权利要求7所述的方法,其中所述预定义添加标准包括(762)当所述第一触摸和所述第二触摸之间的距离小于预定义的接近阈值时满足的标准。
9.根据权利要求1至3以及7中任一项所述的方法,包括:
在显示用于所述第一应用程序的所述用户界面时,在所述第一应用程序处接收(764)描述在所述触敏表面上对应于所述第一应用程序中的所述多个用户界面对象中的第三相应用户界面对象的位置处检测到的第三触摸的信息;
响应于(766)接收到描述所述第三触摸的所述信息:
根据确定所述第三触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准:
发起(768)涉及所述第三相应用户界面对象的所述相应类型的第二用户界面操作;
当在所述触敏表面上继续检测到所述第三触摸时(770)并且当涉及所述第三相应用户界面对象的所述第二用户界面操作继续时:
在所述第一应用程序处,接收(772)关于除了所述相应类型的界面操作之外的用户界面操作忽略所述第三触摸的指令;以及
由所述第一应用程序关于除了所述相应类型的界面操作之外的用户界面操作忽略(774)所述第三触摸。
10.根据权利要求1至3以及7中任一项所述的方法,包括响应于(776)接收到描述所述第一触摸的所述信息,由所述第一应用程序确定所述第一触摸是否满足与发起所述相应类型的界面操作相关联的所述预定义标准。
11.根据权利要求1至3以及7中任一项所述的方法,其中在所述第一应用程序处接收(778)的关于除了所述相应类型的界面操作之外的用户界面操作忽略所述第一触摸的所述指令包括触摸取消事件。
12.根据权利要求11所述的方法,包括响应于(780)接收到所述触摸取消事件,放弃除了所述相应类型的界面操作之外的用户界面操作的执行,并且未能将所述第一触摸识别为除了与所述相应类型的界面操作相关联的预定义手势集合中的一个手势之外的手势。
13.根据权利要求1至3以及7中任一项所述的方法,其中发起涉及所述相应用户界面对象的所述相应类型的用户界面操作包括向所述第一应用程序提供(782)唯一会话标识符,所述唯一会话标识符识别所述相应类型的所述用户界面操作和所述相应的用户界面对象。
14.根据权利要求13所述的方法,其中所述唯一会话标识符(784)与关于所述拖动操作的附加信息相关联,所述附加信息包括以下中的一者或多者:在所述相应类型的所述用户界面操作中涉及的包括所述相应用户界面对象的用户界面对象的总数,以及所述相应类型的所述用户界面操作中涉及的用户界面对象的一个或多个内容类型。
15.根据权利要求1至3以及7中任一项所述的方法,其中所述相应类型的用户界面操作(786)具有描述所述用户界面操作的当前阶段的相关联的操作阶段值,并且其中所述阶段值选自由以下各项组成的组:退出、进入和在其中。
16.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由具有显示器、触敏表面的电子设备执行时使得所述设备执行根据权利要求1至15所述的方法中的任一方法。
17.一种电子设备,包括:
显示器;
触敏表面;
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1至15所述的方法中的任一方法的指令。
18.一种用于在具有显示器和触敏表面的电子设备中使用的信息处理装置,包括:
用于在所述显示器上显示(702)包括多个用户界面对象的用于第一应用程序的用户界面的装置;
在显示(704)用于所述第一应用程序的所述用户界面时操作的装置,所述装置用于接收描述第一触摸的信息,其中在所述触敏表面上对应于用于所述第一应用程序的所述用户界面中的所述多个用户界面对象的相应用户界面对象的位置处检测到所述第一触摸,并且所述第一触摸移动到对应于用于所述第一应用程序的所述用户界面的区域之外,进入对应于用于第二应用程序的用户界面的区域;以及
响应于接收到(734)描述所述第一触摸的所述信息而操作的装置,所述装置用于:
根据确定所述第一触摸未满足与发起相应类型的界面操作相关联的预定义标准,向所述第一应用程序提供(736)当所述第一触摸在对应于用于所述第一应用程序的所述用户界面的所述区域内时描述所述第一触摸并且当所述第一触摸移动到对应于用于所述第一应用程序的所述用户界面的所述区域之外并且进入对应于用于所述第二应用程序的所述用户界面的所述区域时描述所述第一触摸的信息;并且
根据确定(706)所述第一触摸满足与发起所述相应类型的界面操作相关联的预定义标准,所述装置用于执行操作,所述操作包括:
发起(708)涉及所述相应用户界面对象的所述相应类型的用户界面操作;以及当在所述触敏表面上继续检测到所述第一触摸时(710)并且当涉及所述相应用户界面对象的所述用户界面操作继续时:
在所述第一应用程序处,接收(712)关于除了所述相应类型的界面操作之外的用户界面操作忽略所述第一触摸的指令;
由所述第一应用程序关于除了所述相应类型的界面操作之外的用户界面操作忽略(714)所述第一触摸,包括停止由所述第一应用程序关于除了所述相应类型的界面操作之外的用户界面操作处理所述第一触摸;
向所述第一应用程序提供(740)当所述第一触摸在对应于用于所述第一应用程序的所述用户界面的所述区域内时描述所述第一触摸的信息;并且
切换到(742)向所述第二应用程序提供当所述第一触摸移动到对应于用于所述第一应用程序的所述用户界面的所述区域之外并进入对应于用于所述第二应用程序的所述用户界面的所述区域时描述所述第一触摸的信息。
19.根据权利要求18所述的信息处理装置,包括:
在确定所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准之前操作的装置,所述装置用于将所述第一触摸处理(720)为视图附接的触摸事件;并且根据确定所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准而操作的装置,所述装置用于将所述第一触摸处理(722)为分离触摸事件。
20.根据权利要求18所述的信息处理装置,还包括:
在确定所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准之前操作的装置,所述装置用于使用与所述第一应用程序相关联的一个或多个手势识别器将所述第一触摸处理(724)为视图附接的触摸事件;并且
根据确定(726)所述第一用户输入满足与发起所述相应类型的界面操作相关联的所述预定义标准而操作的装置,所述装置用于执行操作,所述操作包括:
停止(728)使用与所述第一应用程序相关联的所述一个或多个手势识别器将所述第一触摸处理为视图附接的触摸事件;以及
将所述第一触摸处理(730)为分离触摸事件。
21.根据权利要求18至20中任一项所述的信息处理装置,包括:
当涉及所述相应用户界面对象的所述用户界面操作继续时操作的装置,所述装置用于在对应于所述第一应用程序的位置处接收(750)描述所述触敏表面上的第二触摸的变化的信息;以及
响应于检测到所述第二触摸的所述变化而操作的装置,所述装置用于在不考虑所述第一触摸的情况下使用与所述第一应用程序相关联的一个或多个手势识别器处理(752)描述所述第二触摸的所述变化的所述信息。
22.根据权利要求18至20中任一项所述的信息处理装置,包括在检测到所述第一触摸的移动时,并且根据确定所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准而操作的装置,所述装置用于:
确定(744)对应于所述第一触摸的相应位置的一个或多个相应区域,其中所述一个或多个相应区域与一个或多个相应应用程序相关联;以及
当所述第一触摸在相应区域内时,向用于所述相应区域的所述相应应用程序提供(746)描述所述第一触摸的信息。
23.根据权利要求18至20中任一项所述的信息处理装置,包括根据确定所述第一触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准而操作的装置,所述装置用于向用于相应区域的所述相应应用程序提供(748)描述所述第一触摸的所述信息,同时提供描述不满足与发起所述相应类型的界面操作相关联的所述预定义标准的一个或多个附加触摸的信息。
24.根据权利要求18所述的信息处理装置,包括:
当在所述触敏表面上继续检测到所述第一触摸时(710)并且当涉及所述相应用户界面对象的所述用户界面操作继续时操作的装置,所述装置用于:
在所述第一应用程序处接收(754)描述不同于所述第一触摸的第二触摸的信息;
响应于(756)接收到描述所述第二触摸的所述信息:
根据确定所述第二触摸满足与所述用户界面操作相关联的预定义添加标准:
在所述第一应用程序处,接收(758)关于除了所述相应类型的界面操作之外的用户界面操作忽略所述第二触摸的指令;以及
由所述第一应用程序关于除了所述相应类型的界面操作之外的用户界面操作忽略(760)所述第二触摸。
25.根据权利要求24所述的信息处理装置,其中所述预定义添加标准包括(762)当所述第一触摸和所述第二触摸之间的距离小于预定义的接近阈值时满足的标准。
26.根据权利要求18至20以及24中任一项所述的信息处理装置,包括:
在显示用于所述第一应用程序的所述用户界面时操作的装置,所述装置用于在所述第一应用程序处接收(764)描述在所述触敏表面上对应于所述第一应用程序中的所述多个用户界面对象中的第三相应用户界面对象的位置处检测到的第三触摸的信息;
响应于(766)接收到描述所述第三触摸的所述信息而操作的装置,所述装置用于:
根据确定所述第三触摸满足与发起所述相应类型的界面操作相关联的所述预定义标准:
发起(768)涉及所述第三相应用户界面对象的所述相应类型的第二用户界面操作;
当在所述触敏表面上继续检测到所述第三触摸时(770)并且当涉及所述第三相应用户界面对象的所述第二用户界面操作继续时:
在所述第一应用程序处,接收(772)关于除了所述相应类型的界面操作之外的用户界面操作忽略所述第三触摸的指令;以及
由所述第一应用程序关于除了所述相应类型的界面操作之外的用户界面操作忽略(774)所述第三触摸。
27.根据权利要求18至20以及24中任一项所述的信息处理装置,包括响应于(776)接收到描述所述第一触摸的所述信息而操作的装置,所述装置用于由所述第一应用程序确定所述第一触摸是否满足与发起所述相应类型的界面操作相关联的所述预定义标准。
28.根据权利要求18至20以及24中任一项所述的信息处理装置,其中在所述第一应用程序处接收(778)的关于除了所述相应类型的界面操作之外的用户界面操作忽略所述第一触摸的所述指令包括触摸取消事件。
29.根据权利要求28所述的信息处理装置,包括响应于(780)接收到所述触摸取消事件而操作的装置,所述装置用于放弃除了所述相应类型的界面操作之外的用户界面操作的执行,并且未能将所述第一触摸识别为除了与所述相应类型的界面操作相关联的预定义手势集合中的一个手势之外的手势。
30.根据权利要求18至20以及24中任一项所述的信息处理装置,其中发起涉及所述相应用户界面对象的所述相应类型的用户界面操作包括向所述第一应用程序提供(782)唯一会话标识符,所述唯一会话标识符识别所述相应类型的所述用户界面操作和所述相应的用户界面对象。
31.根据权利要求30所述的信息处理装置,其中所述唯一会话标识符(784)与关于所述拖动操作的附加信息相关联,所述附加信息包括以下中的一者或多者:在所述相应类型的所述用户界面操作中涉及的包括所述相应用户界面对象的用户界面对象的总数,以及所述相应类型的所述用户界面操作中涉及的用户界面对象的一个或多个内容类型。
32.根据权利要求18至20以及24中任一项所述的信息处理装置,其中
所述相应类型的用户界面操作(786)具有描述所述用户界面操作的当前阶段的相关联的操作阶段值,并且其中所述阶段值选自由以下各项组成的组:退出、进入和在其中。

说明书全文

用于触摸输入处理的设备、方法和图形用户界面

[0001] 本申请是申请日为2018年5月16日、申请号为201880031229.8、发 明名称为“用于触摸输入处理的设备、方法和图形用户界面”的发明专利 申请的分案申请。

技术领域

[0002] 这整体涉及具有触敏表面的电子设备,包括但不限于具有触敏表面的 电子设备,该触敏表面使用启发法和其他手势识别技术来区分包括拖放手 势、长按手势、轻扫手势等的各种触摸输入。

背景技术

[0003] 触敏表面作为计算机和其他电子计算设备的输入设备的使用在近年来 显著增长。示例性触敏表面包括触控板和触摸屏显示器。此类表面广泛地 用于操纵显示器上的用户界面对象。
[0004] 示例性操纵包括拖放对象或用户界面元素,诸如将信息从一个应用程 序移动到另一个应用程序,或者从应用程序或数据结构的一部分移动到另 一部分。其他操纵包括通过以预定义方式触摸它们来选择用户界面对象, 通过轻击或以其他方式与对应的应用程序启动图标或其他用户界面元素交 互来启动应用程序,通过在应用程序的用户界面的相应用户界面元素上执 行轻扫、拖动、轻击、捏合、长按、深按(例如,具有高于阈值的强度) 和其他触摸输入来访问应用程序特征。
[0005] 在各种基于触摸的手势诸如拖放手势、弹簧加载手势(例如,打开对 象以便看到对象的元素)之间消除歧义,并且轻扫手势和长按手势是非常 重要的,使得设备或系统执行与用户意图对应的动作。鉴于基于触摸的手 势之间有时存在细微差别,这种消除歧义可具有挑战性。
[0006] 虽然已经使用具有不同事件或手势定义的手势识别器来帮助这种消除 歧义。一方面消除基于触摸的拖放手势和弹簧加载(有时写为“弹簧加 载”)手势(例如,打开对象以便看到对象的元素)之间的歧义,另一方 面消除轻扫手势和长按手势之间的歧义,继续具有挑战性,并且有时是麻 烦且低效的。此类低效率可涉及用于消除歧义的机制,并且一旦消除歧义 或消除歧义的至少一部分,就已经实现了将触摸输入信息递送到各种软件 机制。此外,由于具有基于触摸的输入机制的设备提供越来越多的特征, 用于至少一些应用程序或应用程序视图的活动手势识别器的数量已经增长 到在仅需要那些手势识别器的一部分来处理用户输入的情况下使这种机制 变得麻烦且低效的点。

发明内容

[0007] 因此,需要具有用于处理拖放手势的更快、更有效的方法和界面的电 子设备,以及对应的拖放操作(以及任选的弹簧加载操作)。此类方法和 界面任选地补充或替换用于触摸输入处理和手势识别和处理的常规方法。 此类方法和界面减少了来自用户的输入的数量、程度、和/或性质,并且产 生更有效的人机界面。对于电池驱动设备,此类方法和界面可节省用电并 且增加两次电池充电之间的时间。
[0008] 借助所公开的设备可减少或消除与具有触敏表面的电子设备的用户界 面相关联的上述缺陷和其他问题。在一些实施方案中,该设备是台式计算 机。在一些实施方案中,该设备是便携式的(例如,笔记本电脑、平板电 脑或手持设备)。在一些实施方案中,该设备是个人电子设备(例如,可 穿戴电子设备,诸如手表)。在一些实施方案中,该设备具有触控板。在 一些实施方案中,该设备具有触敏显示器(也称为“触摸屏”或“触摸屏 显示器”)。在一些实施方案中,该设备具有图形用户界面(GUI)、一个或 多个处理器、存储器和一个或多个模、被存储在存储器中以用于执行多 个功能的程序或指令集。在一些实施方案中,用户主要通过触笔和/或手指 接触以及触敏表面上的手势来与GUI进行交互。在一些实施方案中,这些 功能任选地包括图像编辑、绘图、演示、文字处理、电子表格制作、玩游 戏、接打电话、视频会议、收发电子邮件、即时消息通信、健身支持、数 字摄影、数字视频录制、网页浏览、数字音乐播放、记笔记和/或数字视频 播放。用于执行这些功能的可执行指令任选地被包括在被配置用于由一个 或多个处理器执行的非暂态计算机可读存储介质或其他计算机程序产品 中。
[0009] 根据一些实施方案,在具有显示器、触敏表面以及任选的用于检测与 触敏表面接触的强度的一个或多个传感器的电子设备处执行方法。该方法 包括:在显示器上显示包括多个用户界面对象的用于第一应用程序的用户 界面,并且在显示用于第一应用程序的用户界面时,在第一应用程序处接 收描述在触敏表面上的位置处检测到的第一触摸的信息(例如,一个或多 个触摸事件),该位置对应于第一应用程序中的多个用户界面对象的相应 用户界面对象。该方法包括,响应于接收到描述第一触摸的信息,并且根 据确定第一触摸满足与发起相应类型的界面操作相关联的预定义标准:发 起涉及相应用户界面对象的相应类型的用户界面操作;当在触敏表面上继 续检测到第一触摸并且当涉及相应用户界面对象的用户界面操作继续时, 在第一应用程序处接收关于除了相应类型的界面操作之外的用户界面操作 忽略第一触摸的指令,并且由第一应用程序关于除了相应类型的界面操作 之外的用户界面操作忽略第一触摸。在一些实施方案中,相应类型的界面 操作是拖动操作,用于从第一应用程序或第一应用程序的视图拖动对象; 或拖放操作,其中拖动的对象被放入与被拖动的对象从其被拖动的不同的 应用程序或应用程序视图中;或者弹簧加载操作,其中打开其中可存储内 容的视图或容器,或者激活视图或对象的控件。
[0010] 根据一些实施方案,在具有显示器和触敏表面的电子设备处执行一种 方法。该方法包括在显示器上显示包括多个用户界面对象的用于第一应用 程序的用户界面;并且,在显示用于第一应用程序的用户界面时,在第一 应用程序处接收描述第一触摸的信息。在触敏表面上的对应于用于第一应 用程序的用户界面中的多个用户界面对象的相应用户界面对象的位置处检 测到第一触摸,并且移动到对应于用于第一应用程序的用户界面的区域之 外,进入对应于用于第二应用程序的用户界面的区域。该方法还包括,响 应于接收到描述第一触摸的信息:根据确定第一触摸未满足与发起相应类 型的界面操作相关联的预定义标准,即使在第一触摸移动到对应于用于第 一应用程序的用户界面的区域之外并且进入对应于用于第二应用程序的用 户界面的区域之后,继续向第一应用程序提供描述第一触摸的信息。该方 法还包括,根据确定第一触摸满足与发起相应类型的界面操作相关联的预 定义标准:发起涉及相应用户界面对象的相应类型的用户界面操作;并 且,当在触敏表面上继续检测到第一触摸并且当涉及相应用户界面对象的 用户界面操作继续时:在第一应用程序处接收关于除了相应类型的界面操 作之外的用户界面操作忽略第一触摸的指令;由第一应用程序关于除了相 应类型的界面操作之外的用户界面操作忽略第一触摸;当第一触摸在对应 于用于第一应用程序的用户界面的区域内时,向第一应用程序提供描述第 一触摸的信息;并且当第一触摸移动到对应于用于第一应用程序的用户界 面的区域之外并进入对应于用于第二应用程序的用户界面的区域时,切换 到向第二应用程序提供描述第一触摸的信息。
[0011] 根据一些实施方案,在具有显示器、触敏表面以及任选的用于检测与 触敏表面接触的强度的一个或多个传感器的电子设备处执行方法。该方法 包括:在显示器上显示包括多个视图的用户界面,所述多个视图包括第一 视图和第二视图,该第一视图与用于处理指向第一视图的触摸输入的第一 组一个或多个标准手势识别器相关联,该第二视图与用于处理指向第二视 图的触摸输入的第二组一个或多个标准手势识别器相关联,其中多个视图 中的一个或多个视图与第一交互标识符(例如,拖动、放下或弹簧加载交 互标识符)相关联,其指示可将第一组一个或多个补充手势识别器添加到 对应视图。该方法还包括经由触敏表面检测触敏表面上与多个视图的相应 视图对应的位置处的触摸输入;并且响应于经由触敏表面检测到触摸输 入:根据确定触摸输入满足补充手势识别器添加标准,其中补充手势识别 器添加标准包括当相应视图具有第一交互标识时满足的标准,将与第一交 互标识关联的第一组一个或多个补充手势识别器添加到相应视图;并且利 用一个或多个补充手势识别器和与相应视图相关联的一个或多个标准手势 识别器来处理触摸输入。该方法还包括根据确定触摸输入不满足补充手势 识别器添加标准,处理相应视图处的触摸输入,而不将与第一交互标识符 相关联的第一组一个或多个补充手势识别器添加到相应视图。
[0012] 根据一些实施方案,在具有显示器、触敏表面以及任选的用于检测与 触敏表面接触的强度的一个或多个传感器的电子设备处执行方法。该方法 包括在显示器上显示应用程序的用户界面;并且在显示应用程序的用户界 面时,检测对应于与多个手势识别器相关联的应用程序的用户界面的一部 分的用户输入,其中:多个手势识别器中的第一组一个或多个标准手势识 别器通过应用程序与用户界面的部分相关联(例如,分配给该部分);多 个手势识别器中的第二组一个或多个补充手势识别器通过系统过程(例 如,独立于应用程序的过程)与用户界面的该部分相关联(例如,分配给 该部分);并且涉及第一标准手势识别器和第一补充手势识别器的第一故 障要求通过系统过程与用户界面的该部分相关联(例如,分配给该部 分)。该方法还包括响应于检测到用户输入,根据第一标准手势识别器、 第一补充手势识别器和第一故障要求处理用户输入。例如,在一些实施方 案中,第一组一个或多个标准手势识别器和第二组一个或多个手势识别器 布置成手势识别分级结构,其中第一故障要求包括要求第一相应手势识别 器出故障,以便第二相应手势识别器成功识别手势,其中第一相应手势识 别器在手势识别分级结构中处于比第二相应手势识别器更高的级别。
[0013] 根据一些实施方案,电子设备包括显示器、触敏表面、存储器、一个 或多个处理器、一个或多个程序以及用于检测与触敏表面接触的强度的任 选地一个或多个传感器;一个或多个程序被存储在存储器中并且被配置为 由一个或多个处理器执行,并且一个或多个程序包括用于执行或导致执行 任何本文所述的方法的操作的指令。
[0014] 根据一些实施方案,计算机可读存储介质在其中存储有指令,所述指 令当由具有显示器、触敏表面和用于检测与触敏表面的接触强度的任选地 一个或多个传感器的电子设备执行时,使得该设备执行本文所述的任何方 法的操作或使得本文所述任何方法的操作被执行。
[0015] 根据一些实施方案,具有显示器、触敏表面、用于检测与触敏表面的 接触强度的任选地一个或多个传感器、存储器以及执行存储于存储器中的 一个或多个程序的一个或多个处理器的电子设备上的图形用户界面包括在 本文所述任何方法中所显示的一个或多个元件,该一个或多个元件响应于 输入进行更新,如本文所述的任何方法中所描述的。
[0016] 根据一些实施方案,一种电子设备包括:显示器、触敏表面以及用于 检测与触敏表面接触的强度的任选的一个或多个传感器;以及用于执行或 导致执行本文所述方法中的任一种方法的操作的装置。
[0017] 根据一些实施方案,用于具有显示器和触敏表面以及用于检测与触敏 表面的接触强度的任选地一个或多个传感器的电子设备中的信息处理设备 包括用于执行本文所述的任何方法的操作或使得本文所述的任何方法的操 作被执行的装置。
[0018] 因此,具有显示器、触敏表面以及用于检测与触敏表面接触的强度的 任选一个或多个传感器的电子设备被提供有更快、更有效的方法和界面以 用于处理基于触摸的输入,包括拖放手势、长按手势以及可能被有效识别 以用于相同应用程序或应用程序视图的其他手势,从而提高此类设备的有 效性、效率和用户满意度。此类方法和界面可补充或替换用于处理此类电 子设备中的触摸输入的常规方法。附图说明
[0019] 为了更好地理解各种所述实施方案,应结合以下附图参考下面的具体 实施方式,其中类似的附图标号在所有附图中指示对应的部分。
[0020] 图1是示出根据一些实施方案的具有触敏显示器的便携式多功能设备 的框图
[0021] 图2示出了根据一些实施方案的具有触摸屏的便携式多功能设备。
[0022] 图3A是根据一些实施方案的具有显示器和触敏表面的示例性多功能 设备的框图。
[0023] 图3B是示出根据一些实施方案的用于事件处理的示例性部件的框图。
[0024] 图3C是示出根据一些实施方案的手势识别器的示例性类和实例的框 图。
[0025] 图3D是示出根据一些实施方案的事件信息流的框图。
[0026] 图4A示出了根据一些实施方案的便携式多功能设备上的应用程序菜 单的示例性用户界面。
[0027] 图4B示出了根据一些实施方案的用于具有与显示器分开的触敏表面的 多功能设备的示例性用户界面。
[0028] 图4C至图4E示出了根据一些实施方案的动态强度阈值的示例。
[0029] 图5A至图5R示出了根据一些实施方案的用于拖放手势和操作以及弹 簧加载手势和操作的示例性用户界面。
[0030] 图6A示出了根据一些实施方案的在执行从第一应用程序或应用程序 视图的用户界面区域跨越到第二应用程序或应用程序视图的用户界面区域 的拖动手势期间的触摸事件生成、阶段和取消以及拖动事件生成和阶段。
[0031] 图6B示出了根据一些实施方案的触摸事件生成和阶段,同时触摸跨越 第一应用程序或应用程序视图的用户界面区域移动到第二应用程序或应用 程序视图的用户界面区域,而不分离触摸。
[0032] 图6C示出了根据一些实施方案的用于检测触摸,检测源处理中的拖动 手势的开始,分离触摸,将会话ID与触摸相关联并且将触摸提供给目标过 程的机制。
[0033] 图6D和图6E示出了根据一些实施方案的在将一个或多个补充手势识 别器添加到应用程序视图之前和之后的手势识别分级结构。
[0034] 图7A至图7F是示出根据一些实施方案的处理被识别为拖动手势的触 摸输入的方法的流程图
[0035] 图8A至图8E是示出根据一些实施方案的响应于在满足指定标准时检 测到触摸输入而动态地将补充手势识别器添加到应用程序或应用程序视图 的方法的流程图。
[0036] 图9A至图9D是示出根据一些实施方案的在与应用程序的用户界面的 一部分相关联的第一组标准手势识别器和与应用程序的用户界面的相同部 分相关联的第二组补充手势识别器之间建立故障依赖性的方法的流程图。

具体实施方式

[0037] 许多电子设备具有图形用户界面和触敏表面,无论是与显示器集成还 是以其他方式用于接收用户的触摸输入。随着基于触摸输入的手势的数量 增加,各种可能的手势之间的消除歧义变得更加困难,并且对于成功和有 效地使用此类电子设备更加重要。实际上,可在相同用户界面区域中使用 的多个手势可以相同的初始触摸特性开始,诸如保持静止(例如,移动小 于预定义距离或量)至少预定义的初始时间量的静止触摸。帮助消除此类 手势之间消除歧义的一种机制是使用手势识别器,每个手势识别器用于识 别相应的手势或手势类型,并且建立某些手势识别器在允许其他手势识别 器成功地将用户输入识别为特定手势之前未能识别用户输入的故障要求。 例如,当用户界面区域接受用于发起第一操作的长按输入和用于开始拖放 操作的拖动输入时,用于识别长按手势的手势识别器可取决于拖动开始手 势识别器出故障,用于识别拖放操作的开始。
[0038] 在另一方面,某些类型的手势识别器可由应用程序添加到用于应用程 序的用户界面区域,而补充手势识别器可在满足某些标准时由系统过程添 加到相同的用户界面区域。以这种方式,为特定用户界面区域建立的手势 识别器的数量可保持相对较低,直到需要或可能需要补充手势识别器,如 满足上述标准所示。例如,用于处理拖放操作的手势识别器可在需要或可 能需要它们时添加到用户界面区域,作为补充手势识别器。
[0039] 在另一方面,交互标识符与应用程序或应用程序视图相关联,以指示 哪些补充手势识别器(如果有的话)能够添加到那些应用程序或应用程序 视图。例如,只有能够参与拖放操作的应用程序或应用程序视图与拖动操 作的交互标识符相关联。第二不同的交互标识符可用于放下交互,因为一 些应用程序区域可以是拖放操作的来源,但不是目标,反之亦然。第三交 互标识符可用于弹簧加载交互,因为一些但不是所有应用程序区域可包括 能够打开的容器,或者具有能够使用弹簧加载手势激活的控件。以这种方 式,仅允许某些类型的手势或操作的应用程序和视图诸如拖放手势和操作 或弹簧加载手势和操作与对应的交互标识符相关联。此类交互标识符的使 用以及对具有添加到它们的补充手势识别器的应用程序区域的所得到的控 制改善了电子设备的操作效率,并且通过减少处理此类用户输入的手势识 别器的数量,还改善了此类设备对用户输入的响应性。
[0040] 图1、图2和图3A示出了示例性设备,图3B至图3D示出了事件和手 势识别以及触摸事件递送机制,图4A至图4B和图5A至图5R示出了用于 拖放操作的示例性用户界面。图6A至图6C示出了触摸事件和拖动事件生 成和管理机制。图7A至图7F示出了处理被识别为拖动手势的触摸输入的 方法的流程图。图8A至图8E示出了将补充手势识别器动态添加到应用程 序或应用程序视图的方法的流程图。图9A至图9D示出了在与应用程序的 用户界面的一部分相关联的第一组标准手势识别器和与应用程序的用户界 面的相同部分相关联的第二组补充手势识别器之间建立故障依赖性的方法 的流程图。图5A至图5R中的用户界面和图3B至图3D和图6A至图6C 中所示的机制用于说明图7A至图7F、图8A至图8E和图9A至图9D中的 过程。
[0041] 示例性设备
[0042] 现在将详细地参考实施方案,这些实施方案的示例在附图中示出。下 面的详细描述中示出许多具体细节,以便提供对各种所描述的实施方案的 充分理解。但是,对本领域的普通技术人员将显而易见的是,各种所描述 的实施方案可以在没有这些具体细节的情况下被实践。在其他情况下,没 有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必 要地使实施方案的各个方面晦涩难懂。
[0043] 还将理解的是,虽然在一些情况下,术语“第一”、“第二”等在本 文中用于描述各种元件,但是这些元件不应受到这些术语限制。这些术语 只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二 接触,并且类似地,第二接触可被命名为第一接触,而不脱离各种所描述 的实施方案的范围。第一接触和第二接触均为接触,但它们不是同一个接 触,除非上下文另外明确指示。
[0044] 在本文中对各种所述实施方案的描述中所使用的术语只是为了描述特 定实施方案的目的,而并非旨在进行限制。如在对各种所述实施方案中的 描述和所附权利要求书中所使用的那样,单数形式“一个”和“该”旨在 也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所 使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个 项目的任何和全部可能的组合。还将理解的是,术语“包括” (“includes”、“including”、“comprises”和/或“comprising”)在本 说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或 部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操 作、元件、部件和/或其分组。
[0045] 如本文中所使用,根据上下文,术语“如果”任选地被解释为意思是 “当……时”后“在……时”或“响应于确定”或“响应于检测到”。类 似地,根据上下文,短语“如果确定……”或“如果检测到[所陈述的条件 或事件]”任选地被解释为是指“在确定……时”或“响应于确定……”或 “在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或 事件]”。
[0046] 本文描述了电子设备、此类设备的用户界面和使用此类设备的相关过 程的实施方案。在一些实施方案中,该设备为还包含其他功能诸如PDA和/ 或音乐播放器功能的便携式通信设备,诸如移动电话。便携式多功能设备 的示例性实施方案包括但不限于来自Apple Inc.(Cupertino,California)的  和 设备。任选地使用其他便携式电子设备,诸 如具有触敏表面(例如,触摸屏显示器和/或触控板)的膝上型电脑或平板 电脑。还应当理解的是,在一些实施方案中,该设备并非便携式通信设 备,而是具有触敏表面(例如,触摸屏显示器和/或触控板)的台式计算 机。
[0047] 在下面的讨论中,描述了一种包括显示器和触敏表面的电子设备。然 而,应当理解,该电子设备任选地包括一个或多个其他物理用户界面设 备,诸如物理键盘鼠标和/或操纵杆。
[0048] 该设备通常支持各种应用,诸如以下应用中的一个或多个应用:记笔 记应用、绘图应用、演示应用、文字处理应用、网站创建应用、盘编辑应 用、电子表格应用、游戏应用、电话应用、视频会议应用、电子邮件应 用、即时消息应用、健身支持应用、照片管理应用、数字相机应用、数字 摄像机应用、Web浏览应用、数字音乐播放器应用序、和/或数字视频播放 器应用。
[0049] 在设备上执行的各种应用程序任选地使用至少一个通用的物理用户界 面设备,诸如触敏表面。触敏表面的一种或多种功能以及被显示在设备上 的对应信息任选地对于不同应用程序被调整和/或变化,和/或在相应应用程 序内被调整和/或变化。这样,设备的共用物理架构(诸如触敏表面)任选 地利用对于用户而言直观且清楚的用户界面来支持各种应用程序。
[0050] 现在将注意转到具有触敏显示器的便携式设备的实施方案。图1是 示出根据一些实施方案的具有触敏显示器系统112的便携式多功能设备100 的框图。触敏显示器系统112有时为了方便而被叫做“触摸屏”,并且有 时被简称为触敏显示器。设备100包括存储器
102(其任选地包括一个或多 个计算机可读存储介质)、存储器控制器122、一个或多个处理单元(CPU) 120、外围设备接口118、RF电路108、音频电路110、扬声器111、麦克 113、输入/输出(I/O)子系统106、其他输入、或控制设备116吗、和外部 端口124。设备100任选地包括一个或多个光学传感器164。设备100任选 地包括用于检测设备100(例如,触敏表面,诸如设备100的触敏显示器系 统112)上的接触的强度的一个或多个强度传感器165。设备100任选地包 括用于在设备100上生成触觉输出的一个或多个触觉输出发生器167(例 如,在触敏表面诸如设备100的触敏显示器系统112或设备300的触控板 355上生成触觉输出)。这些部件任选地通过一个或多个通信总线或信号线 103进行通信。
[0051] 如本说明书和权利要求书中所使用的,术语“触觉输出”是将由用户 利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的 部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理 位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用 户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的 情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感对应 于设备或设备的部件的物理特征的所感知的变化。例如,触敏表面(例 如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的 “按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如 “按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压 (例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又 如,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用 户解释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受 到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用 户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例 如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否 则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生 成典型(或普通)用户的所述感官知觉。
[0052] 应当理解,设备100仅仅是便携式多功能设备的一个示例,并且设备 100任选地具有比所示出的部件更多或更少的部件,任选地组合两个或更多 个部件,或者任选地具有这些部件的不同配置或布置。图1中所示的各种 部件在硬件、软件、固件或它们的任何组合(包括一个或多个信号处理电 路和/或专用集成电路)中实现。
[0053] 存储器102任选地包括高速随机存取存储器,并且还任选地包括非易 失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非 易失性固态存储器设备。设备100的其他部件(诸如一个或多个CPU 120 和外围设备接口118)对存储器102的访问任选地由存储器控制器122来控 制。
[0054] 外围设备接口118可被用于将设备的输入外围设备和输出外围设备耦 接到存储器102和一个或多个CPU 120。该一个或多个处理器120运行或 执行存储器102中所存储的各种软件程序和/或指令集以执行设备100的各 种功能并处理数据。
[0055] 在一些实施方案中,外围设备接口118、一个或多个CPU 120、和存 储器控制器122任选地在单个芯片诸如芯片104上实现。在一些其他实施 方案中,它们任选地在独立的芯片上实现。
[0056] RF(射频)电路108接收和发送也被称作电磁信号的RF信号。RF电 路108将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁 信号与通信网络和其他通信设备进行通信。RF电路108任选地包括用于执 行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多 个放大器、调谐器、一个或多个振荡器数字信号处理器、编解码芯片 组、用户身份模块(SIM)卡、存储器等等。RF电路108任选地通过无线通 信来与网络和其他设备进行通信,这些网络为诸如互联网(也被称为万维 网(WWW))、内联网和/或无线网络(诸如,蜂窝电话网络、无线局域网 (LAN)和/或城域网(MAN))。该无线通信任选地使用多种通信标准、协 议、和技术中的任一者,包括但不限于全球移动通信系统(GSM)、增强型 数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路 分组接入(HSUPA)、演进纯数据(EV-DO)、HSPA、HSPA+、双单元HSPA (DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W- CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、无线保真(Wi-Fi) (例如,IEEE 802.11a、IEEE 802.11ac、IEEE 802.11ax、IEEE 802.11b、 IEEE 802.11g和/或IEEE 802.11n)、互联网协议语音技术(VoIP)、Wi- MAX、电子邮件协议(例如,互联网消息访问协议(IMAP)和/或邮局协议 (POP))、即时消息(例如,可扩展消息处理和存在协议(XMPP)、用于即 时消息和存在利用扩展的会话发起协议(SIMPLE)、即时消息和存在服务 (IMPS)、和/或短消息服务(SMS))、或者包括在本文档提交日期还未开发 出的通信协议的其他任何适当的通信协议。
[0057] 音频电路110、扬声器111和麦克风113提供用户和设备100之间的音 频界面。音频电路110从外围设备接口118接收音频数据,将音频数据转 换为电信号,并将电信号传输到扬声器111。扬声器111将电信号转换为人 类可听到的声波。音频电路110还接收由麦克风113从声波转换的电信 号。音频电路110将电信号转换为音频数据,并且将音频数据传输到外围 设备接口118以用于处理。音频数据任选地由外围设备接口118检索自和/ 或传输至存储器102和/或RF电路108。在一些实施方案中,音频电路110 还包括麦插孔(例如,图2中的212)。耳麦插孔提供音频电路110与可 移除音频输入/输出外围设备之间的界面,该外围设备为诸如仅输出的耳机 或者具有输出(例如,单耳耳机或双耳耳机)和输入(例如,麦克风)两 者的耳麦。
[0058] I/O子系统106将设备100上的输入/输出外围设备诸如触敏显示器系 统112和其他输入或控制设备116与外围设备接口118耦接。I/O子系统 106任选地包括显示控制器156、光学传感器控制器158、强度传感器控制 器159、触觉反馈控制器161、和用于其他输入或控制设备的一个或多个输 入控制器160。一个或多个输入控制器160从其他输入或控制设备116接收 电信号或者将电信号发送到该其他输入或控制设备。其他输入控制设备116 任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开 关、操纵杆、点击轮等。在一些另选的实施方案中,一个或多个输入控制 器160任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一 者):键盘、红外线端口、USB端口、触笔、和/或指针设备诸如鼠标。一 个或多个按钮(例如,图2中的208)任选地包括用于扬声器111和/或麦 克风113的音量控制的向上/向下按钮。一个或多个按钮任选地包括下压按 钮(例如,图2中的
206)。
[0059] 触敏显示器系统112提供设备与用户之间的输入接口和输出接口。显 示控制器156从触敏显示器系统112接收电信号和/或将电信号发送至触敏 显示器系统112。触敏显示器系统112向用户显示视觉输出。视觉输出任选 地包括图形、文本、图标、视频以及它们的任何组合(统称为“图 形”)。在一些实施方案中,一些视觉输出或全部的视觉输出对应于用户 界面对象。如本文所使用,术语“示能表示”是用户交互式图形用户界面 对象(例如,被配置为对指向图形用户界面对象的输入做出响应的图形用 户界面对象)。用户交互式图形用户界面对象的示例包括但不限于按钮、 滑块、图标、可选择菜单项、开关、超链接、或其他用户界面控件。
[0060] 触敏显示器系统112具有基于触觉和/或触感接触来接受来自用户的输 入的触敏表面、传感器、或传感器组。触敏显示器系统112和显示控制器 156(与存储器102中的任何相关联的模块和/或指令集一起)检测触敏显示 器系统112上的接触(和该接触的任何移动或中断),并且将检测到的接 触转换为与被显示在触敏显示器系统112上的用户界面对象(例如,一个 或多个软按键、图标、网页或图像)的交互。在一个示例性实施方案中, 触敏显示器系统112和用户之间的接触点对应于用户的手指或触笔。
[0061] 触敏显示器系统112任选地使用LCD(液晶显示器)技术、LPD(发 光聚合物显示器)技术、或LED(发光二极管)技术,但是在其他实施方 案中使用其他显示技术。触敏显示系统112和显示控制器156任选地使用 现在已知的或以后将开发出的多种触摸感测技术中的任何技术以及其他接 近传感器阵列或用于确定与触敏显示系统112接触的一个或多个点的其他 元件来检测接触及其任何移动或中断,该多种触摸感测技术包括但不限于 电容性的、电阻性的、红外线的、和表面声波技术。在一个示例性实施方 案中,使用投射式互电容感测技术,诸如从Apple Inc.(Cupertino,California) 的 和
中发现的技术。
[0062] 触敏显示器系统112任选地具有超过100dpi的视频分辨率。在一些实 施方案中,触摸屏视频分辨率超过400dpi(例如,500dpi、800dpi或更 大)。用户任选地使用任何合适的物体或附加物诸如触笔、手指等来与触 敏显示系统112接触。在一些实施方案中,将用户界面设计成与基于手指 的接触和手势一起工作,由于手指在触摸屏上的接触区域较大,因此这可 能不如基于触笔的输入精确。在一些实施方案中,设备将基于手指的粗略 输入转化为精确的指针/光标位置或命令以用于执行用户所期望的动作。
[0063] 在一些实施方案中,除了触摸屏之外,设备100任选地包括用于激活 或去激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设 备的触敏区域,与触摸屏不同,该触敏区域不显示视觉输出。触控板任选 地是与触敏显示器系统112分开的触敏表面,或者是由触摸屏形成的触敏 表面的延伸部分。
[0064] 设备100还包括用于为各种部件供电的电力系统162。电力系统162任 选地包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、 再充电系统、电力故障检测电路、功率转换器或逆变器、电源状态指示符(例如,发光二极管(LED))以及与便携式设备中的电力的生成、管理和分 配相关联的任何其他部件。
[0065] 设备100任选地还包括一个或多个光学传感器164。图1示出了与I/O 子系统106中的光学传感器控制器158耦接的光学传感器。一个或多个光 学传感器164任选地包括电荷耦合器件(CCD)或互补金属化物半导体 (CMOS)光电晶体管。一个或多个光学传感器164从环境接收通过一个或多 个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块143 (也被叫做相机模块),一个或多个光学传感器164任选地捕获静态图像 和/或视频。在一些实施方案中,光学传感器位于设备100的与设备前部上 的触敏显示系统112相背对的后部上,使得触摸屏能够用作用于静态图像 和/或视频图像采集取景器。在一些实施方案中,另一光学传感器位于设 备的前部上,从而获取该用户的图像(例如,用于自拍、用于在用户在触 摸屏上观看其他视频会议参与者时进行视频会议等等)。
[0066] 设备100任选地还包括一个或多个接触强度传感器165。图1示出了与 I/O子系统106中的强度传感器控制器159耦接的接触强度传感器。一个或 多个接触强度传感器165任选地包括一个或多个压阻应变仪、电容式力传 感器、电气式力传感器、压电力传感器、光学力传感器、电容式触敏表 面、或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压 力)的传感器)。一个或多个接触强度传感器165从环境接收接触强度信 息(例如,压力信息或压力信息的代用物)。在一些实施方案中,至少一 个接触强度传感器与触敏表面(例如,触敏显示器系统112)并置排列或邻 近。在一些实施方案中,至少一个接触强度传感器位于设备100的与位于 设备100的前部上的触敏显示系统112相背对的后部上。
[0067] 设备100任选地还包括一个或多个接近传感器166。图1示出了与外围 设备接口118耦接的接近传感器166。另选地,接近传感器166与I/O子系 统106中的输入控制器160耦接。在一些实施方案中,当多功能设备被置 于用户耳朵附近时(例如,用户正在打电话时),接近传感器关闭并禁用 触敏显示器系统112。
[0068] 设备100任选地还包括一个或多个触觉输出发生器167。图1示出了与 I/O子系统106中的触觉反馈控制器161耦接的触觉输出发生器。触觉输出 发生器167任选地包括一个或多个电声设备,诸如扬声器或其他音频部 件,和/或将能量转换成线性运动的机电设备,诸如达、螺线管、电活性 聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,将电 信号转换成设备上的触觉输出的部件)。触觉输出发生器167从触觉反馈 模块133接收触觉反馈生成指令,并且在设备100上生成能够由设备100 的用户感觉到的触觉输出。
在一些实施方案中,至少一个触觉输出发生器 与触敏表面(例如,触敏显示器系统112)并置排列或邻近,并且任选地通 过竖直地(例如,向设备100的表面内/外)或横向地(例如,在与设备 100的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一 些实施方案中,至少一个触觉输出发生器传感器位于设备100的与位于设 备100的前部上的触敏显示系统112相背对的后部上。
[0069] 设备100任选地还包括一个或多个加速度计168。图1示出与外围设备 接口118耦接的加速度计168。另选地,加速度计168任选地与I/O子系统 106中的输入控制器160耦接。在一些实施方案中,基于对从该一个或多个 加速度计所接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图 来显示信息。设备100任选地除了一个或多个加速度计168之外还包括磁 力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未 示出),以用于获取关于设备100的位置和取向(例如,纵向或横向)的 信息。
[0070] 在一些实施方案中,存储于存储器102中的软件部件包括操作系统 126、通信模块(或指令集)128、接触/运动模块(或指令集)130、图形模 块(或指令集)132、触觉反馈模块(或指令集)133、文本输入模块(或 指令集)134、全球定位系统(GPS)模块(或指令集)135、以及应用程序 (或指令集)136。此外,在一些实施方案中,存储器102存储设备/全局内 部状态157,如图1和图3A中所示。设备/全局内部状态157包括以下中的 一者或多者:活动应用程序状态,其指示哪些应用程序(如果有的话)当 前是活动的;显示状态,其指示什么应用程序、应用程序视图或其他信息 占据触敏显示器系统112的各个区域;传感器状态,包括从设备的各个传 感器和其他输入或控制设备116获得的信息;以及关于设备的位置和/或姿 态的位置和/或方位信息;以及任选的其他状态信息。
[0071] 操作系统126(例如,iOS、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理通 用系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软 件部件和/或驱动器,并且有利于各种硬件和软件部件之间的通信。
[0072] 通信模块128促进通过一个或多个外部端口124来与其他设备进行通 信,并且还包括用于处理由RF电路108和/或外部端口124所接收的数据 的各种软件部件。外部端口124(例如,通用串行总线(USB)、火线等)适 于直接耦接到其他设备或间接地经由网络(例如,互联网、无线LAN等) 耦接。在一些实施方案中,外部端口是与Apple Inc.(Cupertino, California)的一些 和iPod设备中所使用的30针连 接器相同或
类似和/或兼容的多针(例如,30针)连接器。在一些实施方案 中,外部端口是与Apple Inc.(Cupertino,California)的一些 和iPod设备中所使用的
Lightning连接器相同或类似和/或兼容的 Lightning连接器。
[0073] 接触/运动模块130任选地检测与触敏显示器系统112(结合显示控制 器156)和其他触敏设备(例如,触控板或物理点击轮)的接触。接触/运 动模块130包括各种软件部件以用于执行与(例如通过手指或触笔)接触 检测相关的各种操作,诸如确定是否已发生接触(例如,检测手指按下事 件)、确定接触的强度(例如,接触的力或压力,或者接触的力或压力的 替代物)、确定是否存在接触的移动并跟踪跨触敏表面的移动(例如,检 测一个或多个手指拖动事件),以及确定接触是否已停止(例如,检测手 指抬离事件或者接触断开)。接触/运动模块130从触敏表面接收接触数 据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量 值和方向)和/或加速度(量值和/或方向的改变),所述接触点的移动由一 系列接触数据表示。这些操作任选地被应用于单点接触(例如,单指接触 或触笔接触)或者多点同时接触(例如,“多点触摸”/多指接触)。在一 些实施方案中,接触/运动模块130和显示控制器156检测触控板上的接 触。
[0074] 接触/运动模块130任选地检测用户的手势输入。触敏表面上的不同手 势具有不同的接触模式(例如,所检测到的接触的不同运动、计时和/或强 度)。因此,任选地通过检测特定接触模式来检测手势。例如,检测单指 轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或 基本上相同的位置)处(例如,在图标位置处)检测手指抬起(抬离)事 件。又如,检测触敏表面上的手指轻扫手势包括检测手指按下事件,然后 检测一个或多个手指拖动事件,并且随后检测手指抬起(抬离)事件。类 似地,通过检测触笔的特定接触图案来任选地检测触笔的轻击、轻扫、拖 动和其他手势。
[0075] 在一些实施方案中,检测手指轻击手势取决于检测手指按下事件与手 指抬起事件之间的时间长度,但是与检测手指按下事件与手指抬起事件之 间的手指接触强度无关。在一些实施方案中,根据确定手指按下事件与手 指抬起事件之间的时间长度小于预先确定的值(例如,小于0.1、0.2、 0.3、0.4或0.5秒),检测轻击手势,而不管轻击期间手指接触的强度是否 达到给定的强度阈值(大于标称接触检测强度阈值),例如轻按或深按强 度阈值。因此,手指轻击手势可以满足特定输入标准,该特定输入标准不 要求接触的特征强度满足给定强度阈值以满足特定输入标准。为清楚起 见,轻击手势中的手指接触通常需要满足标称接触检测强度阈值以检测到 手指按下事件,低于该标称接触检测强度阈值时,不会检测到接触。类似 的分析适用于通过触笔或其他接触检测轻击手势。在设备能够检测在触敏 表面上方悬停的手指或触笔接触的情况下,标称接触检测强度阈值任选地 不与手指或触笔与触敏表面之间的物理接触对应。
[0076] 同样的概念以类似方式适用于其他类型的手势。例如,可基于满足与 手势中包括的接触的强度无关或者不要求执行手势的一个或多个接触达到 强度阈值以便被识别的标准来任选地检测轻扫手势、捏合手势、展开手势 和/或长按手势。例如,基于一个或多个接触的移动的量来检测轻扫手势; 缩放手势基于两个或更多个接触朝彼此的移动来检测;扩放手势基于两个 或更多个接触背离彼此的移动来检测;长按手势基于触敏表面上具有少于 阈值移动量的接触的持续时间来检测。因此,关于特定手势识别标准不要 求接触强度满足相应的强度阈值以满足特定手势识别标准的陈述意味着特 定手势识别标准能够在手势中的接触未达到相应的强度阈值时被满足,并 且还能够在手势中的一个或多个接触达到或超过相应的强度阈值的情况下 被满足。在一些实施方案中,基于确定在预定义时间段内检测到手指按下 事件和手指抬起事件来检测轻击手势,而不考虑在预定义时间段期间接触 是高于还是低于相应的强度阈值,并且基于确定接触移动大于预定义量值 来检测轻扫手势,即使在接触移动结束时接触高于相应的强度阈值也是如 此。即使在对手势的检测受到执行手势的接触的强度的影响的具体实施中 (例如,当接触的强度高于强度阈值时,设备更快地检测到长按,或者当 接触的强度更高时,设备会延迟对轻击输入的检测),只要在接触未达到 特定强度阈值的情况下可以满足识别手势的标准,则对这些手势的检测也 不会要求接触达到特定强度阈值(例如,即使识别手势所需的时间量发生 变化)。
[0077] 在某些情况下,接触强度阈值、持续时间阈值和移动阈值以各种不同 组合进行组合,以便创建启发式算法来区分针对相同输入元素或区域的两 个或更多个不同手势,使得与相同输入元素的多个不同交互能够提供更丰 富的用户交互和响应的集合。关于一组特定手势识别标准不要求接触的强 度满足相应的强度阈值以满足特定手势识别标准的陈述不排除对其他强度 相关手势识别标准进行同时评估,以识别具有当手势包括具有高于相应强 度阈值的强度的接触时满足的标准的其他手势。例如,在某些情况下,第 一手势的第一手势识别标准(其不要求接触的强度满足相应的强度阈值以 满足第一手势识别标准)与第二手势的第二手势识别标准(其取决于达到 相应强度阈值的接触)竞争。在此类竞争中,如果第二手势的第二手势识 别标准首先得到满足,则手势任选地不被识别为满足第一手势的第一手势 识别标准。例如,如果在接触移动预定义的移动量之前接触达到相应的强 度阈值,则检测到深按手势而不是轻扫手势。相反,如果在接触达到相应 的强度阈值之前接触移动预定义的移动量,则检测到轻扫手势而不是深按 手势。即使在此类情况下,第一手势的第一手势识别标准仍然不要求接触 的强度满足相应的强度阈值以满足第一手势识别标准,因为如果接触保持 低于相应的强度阈值直到手势结束(例如,具有不会增大到高于相应强度 阈值的强度的接触的轻扫手势),手势将被第一手势识别标准识别为轻扫 手势。因此,不要求接触的强度满足相应的强度阈值以满足特定手势识别 标准的特定手势识别标准将会(A)在某些情况下,忽略关于强度阈值的接触 强度(例如,对于轻击手势而言)和/或(B)在某些情况下,如果在特定手势 识别标准识别与输入对应的手势之前,一组竞争的强度相关手势识别标准 (例如,对于深按手势而言)将输入识别为与强度相关手势对应,则不能 满足特定手势识别标准(例如,对于长按手势而言),从这个意义上来 讲,仍然取决于相对于强度阈值的接触强度(例如,对于与深按手势竞争 识别的长按手势而言)。
[0078] 图形模块132包括用于在触敏显示器系统112或其他显示器上渲染和 显示图形的各种已知软件部件,包括用于改变所显示的图形的视觉冲击 (例如,亮度、透明度、饱和度对比度或其他视觉属性)的部件。如本 文所用,术语“图形”包括可被显示给用户的任何对象,非限制性地包括 文本、网页、图标(诸如包括软键的用户界面对象)、数字图像、视频、 动画等。
[0079] 在一些实施方案中,图形模块132存储表示待使用的图形的数据。每 个图形任选地被分配有对应的代码。图形模块132从应用程序等接收用于 指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数 据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制 器156。
[0080] 触觉反馈模块133包括用于生成指令的各种软件部件,该指令由触觉 输出发生器167使用,以便响应于用户与设备100的交互而在设备100上 的一个或多个位置处产生触觉输出。
[0081] 任选地为图形模块132的部件的文本输入模块134提供用于在各种应 用程序(例如,联系人137、电子邮件140、IM 141、浏览器147和需要文 本输入的任何其他应用程序)中输入文本的软键盘。
[0082] GPS模块135确定设备的位置并提供这种信息以在各种应用程序中使 用(例如,提供至用于基于位置的拨号的电话138;提供至相机143作为图 片/视频元数据;以及提供至提供基于位置的服务诸如天气桌面小程序、当 地黄页桌面小程序和地图/导航桌面小程序的应用程序)。
[0083] 应用程序136任选地包括以下模块(或指令集)或者其子集或超集:
[0084] ·联系人模块137(有时称作通讯录或联系人列表);
[0085] ·电话模块138;
[0086] ·视频会议模块139;
[0087] ·电子邮件客户端模块140;
[0088] ·即时消息(IM)模块141;
[0089] ·健身支持模块142;
[0090] ·用于静态图像和/或视频图像的相机模块143;
[0091] ·图像管理模块144;
[0092] ·浏览器模块147;
[0093] ·日历模块148;
[0094] ·桌面小程序模块149,其任选地包括以下各项中的一者或多者:天 气桌面小程序149-1、股市桌面小程序149-2、计算器桌面小程序 149-3、闹钟桌面小程序149-4、词典桌面小程序149-5和由用户获 得的其他桌面小程序,以及用户创建的桌面小程序149-6;
[0095] ·用于形成用户创建的桌面小程序149-6的桌面小程序创建器模块 150;
[0096] ·搜索模块151;
[0097] ·视频和音乐播放器模块152,任选地由视频播放器模块和音乐播放 器模块构成;
[0098] ·记事本模块153;
[0099] ·地图模块154;和/或
[0100] ·在线视频模块155。
[0101] 任选地存储在存储器102中的其他应用程序136的示例包括其他文字 处理应用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、 支持JAVA的应用程序、加密、数字权益管理、语音识别和语音复制。
[0102] 相应的软件应用程序通常至少在执行期间具有应用程序状态,指示相 应软件应用程序及其部件(例如,手势识别器)的状态;参见下面描述的 应用程序内部状态321(图3B)。
[0103] 结合触敏显示器系统112、显示控制器156、接触模块130、图形模块 132、和文本输入模块134,联系人模块137包括可执行指令用于管理通讯 录或联系人列表(例如,存储在存储器102或存储器370中的联系人模块 137的应用程序内部状态192中),包括:添加姓名到通讯录;从地址簿删 除姓名;将电话号码、电子邮件地址、物理地址或其他信息与姓名关联; 将图像与姓名关联;对姓名进行归类和分类;提供电话号码和/或电子邮件 地址来发起和/或促进通过电话138、视频会议139、电子邮件140或即时消 息141的通信;等等。
[0104] 结合RF电路108、音频电路110、扬声器111、麦克风113、触敏显 示器系统112、显示控制器156、接触模块130、图形模块132、和文本输 入模块134,电话模块138包括用于进行以下操作的可执行指令:输入与电 话号码对应的字符序列、访问通讯录137中的一个或多个电话号码、修改 已输入的电话号码、拨打相应的电话号码、进行会话、以及当会话完成时 断开或挂断。如上所述,无线通信任选地使用多种通信标准、协议和技术 中的任一种。
[0105] 结合RF电路108、音频电路110、扬声器111、麦克风113、触敏显 示系统112、显示控制器156、一个或多个光学传感器164、光学传感器控 制器158、接触模块130、图形模块132、文本输入模块134、联系人列表 137和电话模块138,视频会议模块139包括根据用户指令来发起、进行和 终止用户与一个或多个其他参与方之间的视频会议的可执行指令。
[0106] 结合RF电路108、触敏显示器系统112、显示控制器156、接触模块 130、图形模块132和文本输入模块134,电子邮件客户端模块140包括用 于响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结 合图像管理模块144,电子邮件客户端模块140使得非常容易创建和发送具 有由相机模块143拍摄的静态图像或视频图像的电子邮件。
[0107] 结合RF电路108、触敏显示器系统112、显示控制器156、接触模块 130、图形模块132和文本输入模块134,即时消息模块141包括用于进行 以下操作的可执行指令:输入与即时消息对应的字符序列、修改先前输入 的字符、发送相应即时消息(例如,使用针对基于电话的即时消息的短消 息服务(SMS)或多媒体消息服务(MMS)协议或者使用针对基于互联网的即时 消息的XMPP、SIMPLE、Apple推送通知服务(APNs)或IMPS)、接收即时 消息、以及查看所接收的即时消息。在一些实施方案中,所传输和/或接收 的即时消息任选地包括图形、相片、音频文件、视频文件、和/或MMS和/ 或增强消息服务(EMS)中所支持的其他附接件。如本文所用,“即时消息” 是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联 网的消息(例如,使用XMPP、SIMPLE、APNs或IMPS发送的消息)两 者。
[0108] 结合RF电路108、触敏显示器系统112、显示控制器156、接触模块 130、图形模块132、文本输入模块134、GPS模块135、地图模块154和音 乐播放器模块146,健身支持模块
142包括可执行指令用于创建健身(例 如,具有时间、距离和/或卡路里燃烧目标);与(体育设备和智能手表中 的)健身传感器通信;接收健身传感器数据;校准用于监视健身的传感 器;为健身选择和播放音乐;以及显示、存储和传输健身数据。
[0109] 结合触敏显示器系统112、显示控制器156、一个或多个光学传感器 164、光学传感器控制器158、接触模块130、图形模块132和图像管理模 块144,相机模块143包括用于进行以下操作的可执行指令:捕获静态图像 或视频(包括视频流)并且将它们存储到存储器102中、修改静态图像或 视频的特征、和/或从存储器102删除静态图像或视频。
[0110] 结合触敏显示器系统112、显示控制器156、接触模块130、图形模块 132、文本输入模块134、和相机模块143,图像管理模块144包括用于排 列、修改(例如,编辑)、或以其他方式操控、加标签、删除、展示(例 如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行 指令。
[0111] 结合RF电路108、触敏显示器系统112、显示系统控制器156、接触 模块130、图形模块132和文本输入模块134,浏览器模块147包括根据用 户指令来浏览互联网(包括搜索、链接到、接收、和显示网页或其部分、 以及链接到网页的附件和其他文件)的可执行指令。
[0112] 结合RF电路108、触敏显示器系统112、显示系统控制器156、接触 模块130、图形模块132、文本输入模块134、电子邮件客户端模块140和 浏览器模块147,日历模块148包括用于根据用户指令来创建、显示、修改 和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的 可执行指令。
[0113] 结合RF电路108、触敏显示器系统112、显示系统控制器156、接触 模块130、图形模块132、文本输入模块134和浏览器模块147,桌面小程 序模块149是任选地由用户下载和使用的微型应用程序(例如,天气桌面 小程序149-1、股市桌面小程序149-2、计算器桌面小程序149-3、闹钟桌面 小程序149-4和词典桌面小程序149-5)、或由用户创建的微型应用程序 (例如,用户创建的桌面小程序149-6)。在一些实施方案中,桌面小程序 包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和 JavaScript文件。在一些实施方案中,桌面小程序包括XML(可扩展标记 语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。
[0114] 结合RF电路108、触敏显示器系统112、显示系统控制器156、接触 模块130、图形模块132、文本输入模块134、和浏览器模块147,桌面小 程序创建器模块150包括用于创建桌面小程序(例如,将网页的用户指定 部分转到桌面小程序中)的可执行指令。
[0115] 结合触敏显示器系统112、显示系统控制器156、接触模块130、图形 模块132和文本输入模块134,搜索模块151包括用于根据用户指令来搜索 存储器102中的与一个或多个搜索条件(例如,一个或多个用户指定的搜 索词)匹配的文本、音乐、声音、图像、视频和/或其他文件的可执行指 令。
[0116] 结合触敏显示系统112、显示系统控制器156、接触模块130、图形模 块132、音频电路110、扬声器111、RF电路108和浏览器模块147,视频 和音乐播放器模块152包括允许用户下载和回放以一种或多种文件格式 (诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行 指令,以及用于显示、呈现或以其他方式回放视频(例如,在触敏显示系 统112上或在经由外部端口124无线连接的外部显示器上)的可执行指 令。在一些实施方案中,设备100任选地包括MP3播放器诸如iPod (Apple Inc.的商标)的功能。
[0117] 结合触敏显示器系统112、显示控制器156、接触模块130、图形模块 132和文本输入模块134,记事本模块153包括用于根据用户指令来创建和 管理记事本、待办事项等的可执行指令。
[0118] 结合RF电路108、触敏显示器系统112、显示系统控制器156、接触 模块130、图形模块132、文本输入模块134、GPS模块135和浏览器模块 147,地图模块154包括用于根据用户指令来接收、显示、修改和存储地图 以及与地图相关联的数据(例如,驾车路线;特定位置处或附近的商店和 其他兴趣点的数据;和其他基于位置的数据)的可执行指令。
[0119] 结合触敏显示系统112、显示系统控制器156、接触模块130、图形模 块132、音频电路110、扬声器111、RF电路108、文本输入模块134、电 子邮件客户端模块140和浏览器模块147,在线视频模块155包括允许用户 访问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如在触摸 屏112上或在无线连接的或经由外部端口124连接的外部显示器上)、发 送具有至特定在线视频的链接的电子邮件、以及以其他方式管理一种或多 种文件格式诸如H.264的在线视频的可执行指令。在一些实施方案中,使 用即时消息模块141而不是电子邮件客户端模块140来发送特定在线视频 的链接。
[0120] 上述所识别的每个模块和应用对应于用于执行上述一种或多种功能以 及在本申请中所描述的方法(例如,本文中所描述的计算机实现的方法和 其他信息处理方法)的一组可执行指令。这些模块(即,指令集)不必以 独立的软件程序、过程或模块实现,因此这些模块的各种子集任选地在各 种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器102 任选地存储上述识别的模块和数据结构的子集。此外,存储器102任选地 存储上文未描述的另外的模块和数据结构。
[0121] 在一些实施方案中,设备100是该设备上的预定义的一组功能的操作 唯一地通过触摸屏和/或触控板来执行的设备。通过使用触摸屏和/或触控板 作为用于操作设备100的主要输入控制设备,任选地减少设备100上的物 理输入控制设备(例如,下压按钮、拨盘等等)的数量。
[0122] 唯一地通过触摸屏和/或触控板来执行的预定义的一组功能任选地包括 在用户界面之间的导航。在一些实施方案中,触控板在被用户触摸时将设 备100从设备100上显示的任何用户界面导航到主菜单、home菜单或根菜 单。在此类实施方案中,使用触控板来实现“菜单按钮”。在一些其他实 施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是 触控板。
[0123] 图2示出了根据一些实施方案的具有触摸屏(例如,图1的触敏显示 器系统112)的便携式多功能设备100。触摸屏任选地在用户界面(UI)200 内显示一个或多个图形。在本实施方案以及下文所述的其他实施方案中, 用户能够通过例如利用一根或多根手指202(在图中未按比例绘制)或一支 或多支触笔203(在图中未按比例绘制)在图形上作出手势来选择这些图形 中的一个或多个图形。在一些实施方案中,当用户中断与一个或多个图形 的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任 选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上 和/或向下)和/或已与设备100发生接触的手指的滚动(从右向左、从左向 右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图 形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序 图标上方扫动的轻扫手势任选地不会选择对应的应用程序。
[0124] 设备100任选地还包括一个或多个物理按钮,诸如“home”按钮、或 菜单按钮204。如前所述,菜单按钮204任选地用于导航到任选地在设备 100上被执行的一组应用程序中的任何应用程序136。作为另外一种选择, 在一些实施方案中,菜单按钮被实现为被显示在触摸屏显示器上的GUI中 的软键。
[0125] 在一些实施方案中,设备100包括触摸屏显示器、菜单按钮204、用 于使设备通电/断电和用于定设备的下压按钮206、一个或多个音量调节 按钮208、用户身份模块(SIM)卡槽210、耳麦插孔212、和对接/充电外部 端口124。下压按钮206任选地用于通过压下该按钮并且将该按钮保持在压 下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在 该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解 锁或发起解锁过程。在一些实施方案中,设备100还通过麦克风113来接 受用于激活或停用某些功能的语音输入。设备100还任选地包括用于检测 触敏显示器系统112上的接触的强度的一个或多个接触强度传感器165、和 /或用于为设备100的用户生成触觉输出的一个或多个触觉输出发生器 167。
[0126] 图3A是根据一些实施方案的具有显示器和触敏表面的示例性多功能 设备的框图。设备300不必是便携式的。在一些实施方案中,设备300是 膝上型电脑、台式计算机、平板电脑、多媒体播放器设备、导航设备、教 育设备(诸如儿童学习玩具)、游戏系统或控制设备(例如,家用控制器 或工业用控制器)。设备300通常包括一个或多个处理单元(CPU)310、 一个或多个网络或其他通信接口360、存储器370和用于将这些部件互联的 一根或多根通信总线320。通信总线320任选地包括使系统部件互连并且控 制系统部件之间的通信的电路(有时称作芯片组)。设备300包括具有显 示器340的输入/输出(I/O)界面330,该显示器通常是触摸屏显示器。I/O界 面330还任选地包括键盘和/或鼠标(或其他指示设备)350和触敏触控板 355、用于在设备300上生成触觉输出的触觉输出发生器357(例如,类似 于上文参考图1描述的触觉输出发生器167)、传感器359(例如,上文参 考图1描述的光学传感器164、加速度计168、接近传感器166和/或接触强 度传感器165)。存储器370包括高速随机存取存储器,诸如DRAM、 SRAM、DDR RAM或其他随机存取固态存储器设备;并且任选地包括非易 失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器 设备或其他非易失性固态存储设备。存储器370任选地包括远离CPU 310 定位的一个或多个存储设备。在一些实施方案中,存储器370存储与便携 式多功能设备100(图1)的存储器102中所存储的程序、模块和数据结构 类似的程序、模块和数据结构,或它们的子集。此外,存储器370任选地 存储在便携式多功能设备100的存储器102中不存在的附加程序、模块和 数据结构。例如,设备300的存储器370任选地存储绘图模块380、呈现模 块382、文字处理模块384、网站创建模块386、盘编辑模块388、和/或电 子表格模块390,而便携式多功能设备100的存储器
102(图1)任选地不 存储这些模块。
[0127] 图3A中上述所识别的元件中的每个元件任选地存储在先前提到的存 储器设备中的一个或多个存储器设备中。上述所识别的模块中的每个模块 对应于用于执行上述功能的一组指令。上述所识别的模块或程序(即,指 令集)不必被实现为单独的软件程序、过程或模块,因此这些模块的各种 子集任选地在各种实施方案中组合或以其他方式重新布置。在一些实施方 案中,存储器370任选地存储上述识别的模块和数据结构的子集。此外, 存储器370任选地存储上文未描述的另外的模块和数据结构。
[0128] 图3B是示出根据一些实施方案的用于事件处理(例如,事件处理部件 391)的示例性部件的框图。在一些实施方案中,存储器102(图1)包括 事件识别器全局方法312和一个或多个应用程序(例如,133-1到133- 3)。
[0129] 在一些实施方案中,事件识别器全局方法312包括事件监视器311、 命中视图确定模块314、活动事件识别器确定模块316和事件分配器模块 315。在一些实施方案中,事件识别器全局方法312位于操作系统126(图 1)中的事件递送系统内。另选地,事件识别器全局方法312在相应的应用 程序133-1中实现。在其他实施方案中,事件识别器全局方法312被实现为 独立模块,或存储在存储器102中的另一个模块(例如,接触/运动模块 (未示出))的一部分。
[0130] 事件监视器311从一个或多个传感器359、触敏显示器340和/或一个 或多个输入设备350、355接收事件信息。事件信息包括关于事件的信息 (例如,触敏显示器156上的用户触摸,作为多点触摸手势或设备102的 运动的一部分)和/或子事件(例如,触摸跨过触敏显示器156的移动)。 例如,用于触摸事件的事件信息包括以下中的一者或多者:触摸的位置和 时间戳。类似地,用于轻扫事件的事件信息包括以下中的两者或更多者: 轻扫的位置、时间戳、方向和速度。传感器359、触敏显示器156和输入设 备128直接或通过外围设备接口将信息事件和子事件信息发送到事件监视 器311,该外围设备接口检索和存储事件信息。在一些实施方案中,传感器 359包括以下中的一者或多者:接近传感器、加速度计、陀螺仪、麦克风和 摄像机。在一些实施方案中,传感器359还包括输入设备128和/或触敏显 示器156。
[0131] 在一些实施方案中,事件监视器311以预定间隔向传感器116和/或外 围设备接口发送请求。作为响应,传感器116和/或外围设备接口发送事件 信息。在其他实施方案中,传感器116和外围设备接口仅在存在重大事件 (例如,接收超过预定噪声阈值的输入和/或超过预定持续时间)时发送事 件信息。
[0132] 事件监视器311接收事件信息并将事件信息中继到事件分配器模块 315。在一些实施方案中,事件监视器311确定向其递送事件信息的一个或 多个相应应用程序(例如,133-1)。在一些实施方案中,事件监视器311 还确定要向其递送事件信息的一个或多个相应应用程序的一个或多个相应 视图317。
[0133] 虽然视图通常被认为是用户界面的窗口或其他部分,但从技术上讲, 视图是管理应用程序的用户界面的特定范围或区域的应用程序的一部分。 视图通常实现为特定类的实例或其子类中的一个,并管理应用程序窗口中 的矩形区域。因此,视图是具有相关联的显示区域或用户界面部分的对 象,并且还具有与该视图是实例的类相关联的一个或多个计算机程序(有 时称为“方法”)。视图负责绘制内容,处理多点触摸事件并且管理任何 子视图的布局。绘图内容涉及使用各种图形技术在视图的矩形区域内绘制 形状、图像和文本。视图通过使用手势识别器或直接处理触摸事件来响应 其矩形区域中的触摸事件。在视图分级结构中,父视图负责定位和调整其 子视图的大小,并且可动态地执行此操作。这种动态修改子视图的能力使 视图能够适应不断变化的条件,诸如界面旋转和动画。
[0134] 可将视图视为程序员或应用程序开发人员用于构造应用程序的用户界 面的构建块。不是使用一个视图来呈现应用程序的所有内容,而是通常使 用几个视图来构建视图分级结构。分级结构中的每个视图都呈现应用程序 的用户界面的特定部分,并且通常针对特定类型的内容进行优化。例如, 应用程序可具有专用于呈现图像、文本和其他类型的内容的不同视图。
[0135] 在一些实施方案中,事件识别器全局方法312还包括命中视图确定模 块314和/或活动事件识别器确定模块316。
[0136] 命中视图确定模块314(如果存在的话)提供用于在触敏显示器156 显示多于一个视图时确定在一个或多个视图内发生事件或子事件的位置的 软件程序。视图由用户能够在显示器上看到的控件和其他元素构成。
[0137] 与相应的应用程序(例如,133-1)相关联的用户界面的另一方面是一 组视图317,本文中有时也称为应用程序视图或用户界面窗口,在其中显示 信息并且发生基于触摸的手势。其中检测到触摸的(相应应用程序的)应 用程序视图可对应于应用程序的视图分级结构内的特定视图。例如,在其 中检测到触摸的最低层级视图可被叫做命中视图,并且被识别为正确输入 的那组事件可至少部分地基于开始基于触摸的手势的初始触摸的命中视图 来确定。下面参考图3D提供对视图分级结构的进一步讨论。
[0138] 命中视图确定模块314接收与事件和/或子事件相关的信息。当应用程 序具有以分级结构组织的多个视图时,命中视图确定模块314将命中视图 识别为应当对事件或子事件进行处理的分级结构中的最低视图。在大多数 情况下,命中视图是发起事件或子事件发生的最低级视图(即,事件序列 中的第一事件或子事件和/或形成手势的子事件)。一旦命中视图被命中视 图确定模块所识别,命中视图便通常接收与其被识别为命中视图所针对的 同一触摸或输入源相关的所有事件和/或子事件。然而,命中视图并不总是 唯一的视图,其接收与被识别为命中视图的相同触摸或输入源相关的所有 事件和/或子事件。换句话说,在一些实施方案中,另一应用程序(例如, 133-2)或同一应用程序的另一视图也接收与相同触摸或输入源相关的事件 和/或子事件的至少一个子集,即使(或者无论是否)已经确定触摸或输入 源的命中视图。
[0139] 活动事件识别器确定模块316确定视图分级结构内的哪个或哪些视图 应接收特定序列的事件和/或子事件。在一些应用程序上下文中,活动事件 识别器确定模块316确定仅命中视图应该接收特定序列的事件和/或子事 件。在其他应用程序上下文中,活动事件识别器确定模块316确定包括事 件或子事件的物理位置的所有视图是主动参与的视图,并因此确定所有活 动参与的视图应该接收特定序列的事件和/或子事件。在其他应用程序上下 文中,即使触摸事件和/或子事件完全局限于与一个特定视图关联的区域, 分级结构中较高的视图仍然保持为主动参与的视图,因此分级结构中较高 的视图应该接收特定序列的事件和/或子事件。除此之外或另选地,活动事 件识别器确定模块316确定程序化分级结构中的哪个(哪些)应用程序应 该接收特定序列的事件和/或子事件。因此,在一些实施方案中,活动事件 识别器确定模块316确定只有编程分级结构中的相应应用程序应该接收特 定序列的事件和/或子事件。在一些实施方案中,活动事件识别器确定模块 316确定编程分级结构中的多个应用程序应该接收特定序列的事件和/或子 事件。
[0140] 如下面进一步讨论的,在一些实施方案中,触摸最初被视为附接到  (attached to)特定视图或视图集,但是当检测到拖动手势时,一个触摸或 多个触摸“分离”,并且在一个触摸或多个触摸遍历与那些其他视图相关 联的用户界面区域时,与一个触摸或多个触摸相关的事件可递送到其他视 图。
[0141] 事件分配器模块315将事件信息调度到事件识别器(在本文也称为 “手势识别器”)(例如,事件识别器325-1)。在包括活动事件识别器确 定模块316的实施方案中,事件分配器模块315将事件信息递送到由活动 事件识别器确定模块316确定的事件识别器。在一些实施方案中,事件分 配器模块315在事件队列中存储事件信息,该事件信息由相应事件识别器 325中的相应事件识别器325(或事件接收器331)检索。
[0142] 在一些实施方案中,相应的应用程序(例如,133-1)包括应用程序内 部状态321,该应用程序内部状态指示当应用程序是活动的或正在执行时被 显示在触敏显示器156上的一个或多个当前应用程序视图。在一些实施方 案中,事件识别器全局方法312使用设备/全局内部状态157(图1和图 3A)来确定哪个(哪些)应用程序当前是活动的,并且事件识别器全局方 法312使用应用程序内部状态321来确定向其递送事件信息的应用程序视 图317。
[0143] 在一些实施方案中,应用程序内部状态321包括附加信息,诸如以下 中的一者或多者:当应用程序133-1恢复执行时恢复待使用的信息、指示信 息正被显示或准备好用于被应用程序133-1显示的用户界面状态信息、用于 使得用户能够返回到应用程序133-1的前一状态或视图的状态队列,以及用 户采取的先前动作的重复/撤销队列。在一些实施方案中,应用程序内部状 态321还包括上下文信息/文本和元数据323。
[0144] 在一些实施方案中,应用程序133-1包括一个或多个应用程序视图 317,每个应用程序视图具有用于处理在应用程序的用户界面的相应视图内 发生的触摸事件的对应指令(例如,对应的事件处理程序319,有时称为手 势处理程序)。应用程序133-1的至少一个应用程序视图317包括一个或多 个事件识别器325。通常,相应应用程序视图317包括多个事件识别器 325。在其他实施方案中,事件识别器325中的一个或多个事件识别器是独 立模块的一部分,该独立模块为诸如用户界面工具包(未示出)或应用程 序133-1继承方法和其他属性的较高级别的对象。在一些实施方案中,相应 的应用程序视图317还包括以下中的一者或多者:数据更新器、对象更新 器、GUI更新器和/或接收的事件数据。
[0145] 相应的应用程序(例如,133-1)还包括一个或多个事件处理程序 319。通常,相应的应用程序(例如,133-1)包括多个事件处理程序319。
[0146] 相应的事件识别器325-1从事件分配器模块315(直接或间接地通过应 用程序133-1)接收事件信息,并从事件信息中识别事件。事件识别器325- 1包括事件接收器331和事件比较器333。
[0147] 事件信息包括关于事件(例如,触摸)或子事件(例如,触摸移动) 的信息。根据事件或子事件,事件信息还包括附加信息诸如事件或子事件 的位置。当事件或子事件涉及触摸的运动时,事件信息还可包括子事件的 速度和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一取 向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包 括关于设备的当前取向(也被称为设备姿态)的对应信息。
[0148] 事件比较器333将事件信息与一个或多个预定义的手势定义(本文也 称为“事件定义”)进行比较,并且基于该比较,确定事件或子事件,或 者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器333 包括一个或多个手势定义335(如上所述,本文也称为“事件定义”)。手 势定义335包含手势的定义(例如,事件和/或子事件的预定义序列),例 如,手势1(337-1)、手势2(337-2)等。在一些实施方案中,手势定义 335中的子事件包括例如触摸开始、触摸结束、触摸移动、触摸取消和多个 触摸。在一个示例中,手势1(337-1)的定义是对所显示的对象的双击。 例如,双击包括在手势的预定阶段在显示的对象上的第一触摸(触摸开 始),在手势的下一个预定阶段的第一抬离(触摸结束),在手势的后续 的预定阶段在显示的对象上的第二触摸(触摸开始),以及在手势的最后 预定阶段的第二抬离(触摸结束)。在另一示例中,手势2的定义(337- 2)包括在显示的对象上拖动。例如,拖动包括在显示的对象上的触摸(或 接触),触摸在触敏显示器156上的移动,以及触摸的抬离(触摸结 束)。
[0149] 在一些实施方案中,事件识别器325-1还包括用于事件递送339的信 息。用于事件递送339的信息包括对对应事件处理程序319的引用。任选 地,用于事件递送339的信息包括动作目标对354。在一些实施方案中,响 应于识别手势(或手势的一部分),将事件信息(例如,动作消息)发送 到由动作目标对354标识的一个或多个目标383(参见图3D)。在其他实 施方案中,响应于识别手势(或手势的一部分),激活动作目标对。
[0150] 在一些实施方案中,手势定义335包括用于相应用户界面对象的手势 的定义。在一些实施方案中,事件比较器333执行命中测试以确定哪个用 户界面对象与子事件相关联。例如,在触敏显示器156上显示三个用户界 面对象的应用程序视图中,当在触敏显示器156上检测到触摸时,事件比 较器333执行命中测试以确定这三个用户界面对象(如果有的话)中的哪 一个用户界面对象与该触摸(事件)相关联。如果每个显示的对象与相应 的事件处理程序319相关联,则事件比较器333使用命中测试的结果来确 定应该激活哪个事件处理程序319。例如,事件比较器333选择与触发命中 测试的事件和对象相关联的事件处理程序319。
[0151] 在一些实施方案中,用于相应手势的相应手势定义337还包括延迟动 作,该延迟动作延迟事件信息的递送,直到已经确定事件和/或子事件的序 列是否对应于事件识别器的事件类型为止。
[0152] 当相应事件识别器325-1确定一系列事件和/或子事件与手势定义335 中的任何事件不匹配时,相应事件识别器325-1进入事件故障状态,之后相 应事件识别器325-1忽略基于触摸的手势的后续事件和/或子事件。在这种 情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟 踪并处理持续进行的基于触摸的手势的事件和/或子事件。
[0153] 在一些实施方案中,当没有用于命中视图的事件识别器保持时,事件 信息被发送到视图分级结构中的较高视图中的一个或多个事件识别器。另 选地,当没有用于命中视图的事件识别器保持时,忽略事件信息。在一些 实施方案中,当没有用于视图分级结构中的视图的事件识别器保持时,事 件信息被发送到程序分级结构中的更高编程级别中的一个或多个事件识别 器。另选地,当没有用于视图分级结构中的视图的事件识别器保持时,则 忽略事件信息。
[0154] 在一些实施方案中,相应的事件识别器325-1包括事件识别器状态 334。事件识别器状态334包括相应事件识别器325-1的状态。
[0155] 在一些实施方案中,事件识别器状态334包括识别器元数据和属性 349。在一些实施方案中,识别器元数据和属性349包括以下中的一者或多 者:A)可配置属性、标记和/或列表,其指示事件递送系统应如何执行事 件和/或子事件递送到主动参与的事件识别器;B)可配置的属性、标记和/ 或列表,其指示事件识别器如何彼此交互;C)可配置的属性、标记和/或 列表,其指示事件识别器如何接收事件信息;D)可配置的属性、标记和/ 或列表,其指示事件识别器如何识别手势;E)可配置的属性、标记和/或 列表,其指示事件和/或子事件是否被递送到视图分级结构中不同的级别; 以及F)对对应事件处理程序319的引用。
[0156] 在一些实施方案中,事件识别器状态334包括事件/触摸元数据351。 事件/触摸元数据351包括关于已经检测到的相应事件/触摸的事件/触摸信 息,并且对应于手势定义335的相应手势定义337。事件/触摸信息包括以 下中的一者或多者:相应事件/触摸的位置、时间戳、速度、方向、距离、 比例(或比例变化)和度(或角度变化)。
[0157] 在一些实施方案中,当识别出手势的一个或多个特定事件和/或子事件 时,相应事件识别器325激活与相应事件识别器325相关联的事件处理程 序319。在一些实施方案中,相应事件识别器325将与事件相关联的事件信 息递送到事件处理程序319。
[0158] 事件处理程序319在被激活时执行以下中的一者或多者:创建和/或更 新数据,创建和更新对象,以及准备显示信息并将其发送以在显示器126 或触敏显示器156上显示。
[0159] 在一些实施方案中,相应的应用程序视图317-2包括视图元数据341。 如上面参考图3B所述,视图元数据341包括关于视图的数据。任选地,视 图元数据341包括以下中的一者或多者:停止属性342、跳过属性343、未 命中跳过属性344、交互标识符347(下面关于动态添加的拖动、放下和弹 簧加载手势识别器进行讨论)和其他视图元数据329。
[0160] 在一些实施方案中,视图分级结构内的第一主动参与视图可被配置为 防止将相应子事件递送到与第一主动参与视图相关联的事件识别器。该行 为可实现跳过属性343。当为应用程序视图设置跳过属性时,仍然为与视图 分级结构中的其他主动参与的视图相关联的事件识别器执行相应子事件的 递送。
[0161] 另选地,视图分级结构内的第一主动参与视图可被配置为防止将相应 子事件递送到与该第一主动参与视图相关联的事件识别器,除非第一主动 参与视图是命中视图。该行为可实现条件未命中跳过属性344。
[0162] 在一些实施方案中,视图分级结构内的第二主动参与视图被配置为防 止将相应子事件递送到与第二主动参与视图相关联的事件识别器以及与第 二主动参与视图的原型相关联的事件识别器。该行为可实现停止属性342。
[0163] 图3C是示出根据一些实施方案的手势识别器(例如,事件处理部件 390)的示例性类和实例的框图。
[0164] 软件应用程序(例如,应用程序133-1)具有一个或多个事件识别器 345。在一些实施方案中,相应的事件识别器(例如,345-2)是事件识别 器类。相应的事件识别器(例如,345-2)包括事件识别器特定代码338 (例如,定义事件识别器的操作的指令集)和状态机
340。
[0165] 在一些实施方案中,软件应用程序(例如,应用程序133-1)的应用程 序状态321包括事件识别器的实例。事件识别器的每个实例是具有状态 (例如,事件识别器状态334)的对象。通过执行对应的事件识别器特定代 码(例如,338)并更新或维护事件识别器实例365的状态334来实现相应 事件识别器实例的“执行”。事件识别器实例365的状态334包括事件识 别器实例的状态机340的状态351。
[0166] 在一些实施方案中,应用程序状态321包括多个事件识别器实例 365。相应的事件识别器实例365通常对应于已被绑定(也称为“附接”) 到应用程序的视图的事件识别器。在一些实施方案中,一个或多个事件识 别器实例365被绑定到程序分级结构中的相应应用程序,而不参考相应应 用程序的任何特定视图。在一些实施方案中,应用程序状态321包括相应 事件识别器(例如,345-2)的多个实例(例如,365-1至365-L)。在一些 实施方案中,应用程序状态321包括多个事件识别器(例如,345-1至345- R)的实例365。
[0167] 在一些实施方案中,手势识别器345的相应实例(例如,365-2)包括 事件识别器状态334。如上所述,在一些实施方案中,事件识别器状态334 包括识别器元数据和属性349和事件/触摸元数据351。在一些实施方案 中,事件识别器状态334还包括视图分级结构参考336,其指示手势识别器 345-2的相应实例365-2附接到哪个视图。
[0168] 在一些实施方案中,识别器元数据和属性349包括以下内容或它们的 子集或超集:
[0169] ·排他性标记324;
[0170] ·排他性例外列表326;
[0171] ·等待列表327;当包括在用于相应事件识别器(或手势识别器)的 事件识别器状态334中时,该列表327指示在相应事件识别器可识 别相应事件之前必须进入事件不可能或事件取消状态的事件识别器 (或手势识别器)组(如果有的话)。换句话说,所列出的事件或 手势识别器必须在具有等待列表327的事件识别器被允许识别输入 或事件之前不能识别输入或事件。实际上,列出的事件识别器具有 比具有等待列表327的事件识别器更高的识别事件的优先级。
[0172] ·延迟触摸开始标记328;
[0173] ·延迟触摸结束标记330;和
[0174] ·触摸取消标记332。
[0175] 在一些实施方案中,一个或多个事件识别器可适于延迟递送子事件序列的 一个或多个子事件,直到事件识别器识别出事件之后。该行为反映了延迟 事件。例如,考虑视图中的单个轻击手势,其中多个轻击手势是可能的。 在这种情况下,轻击事件变为“轻击+延迟”识别器。实质上,当事件识别 器实现该行为时,事件识别器将延迟事件识别,直到确定子事件序列确实 对应于其事件定义。当收件人视图无法正确响应已取消的事件时,该行为 可以是适当的。在一些实施方案中,事件识别器将延迟将其事件识别状态 更新为其相应的主动参与视图,直到事件识别器确定子事件序列不对应于 其事件定义。延迟触摸开始标记328、延迟触摸结束标记330和触摸取消标 记332被提供以定制子事件递送技术,以及事件识别器和视图状态信息更 新至特定需要。
[0176] 在一些实施方案中,识别器元数据和属性349包括以下内容或它们的 子集或超集:
[0177] ·状态机状态/阶段351,其指示相应事件识别器实例(例如,365-2) 的状态机(例如,340)的状态;状态机状态/阶段351可具有各种 状态值,诸如“事件可能”、“事件识别”、“事件失败”等,如 下所述;另选地或另外地,状态机状态/阶段351可具有各种阶段 值,诸如“触摸阶段开始”,其可指示触摸数据结构定义了未被先 前触摸数据结构参考的新触摸;“触摸阶段移动”值可指示被定义 的触摸已经从先前位置移动;“触摸阶段静止”值可指示触摸保持 在相同位置;“触摸阶段结束”值可指示触摸已经结束(例如,用 户已经将他/她的手指从多点触摸显示器的表面抬起);“触摸阶段 取消”值可指示触摸已被设备取消;取消的触摸可以是不一定由用 户结束但是设备已经确定忽略的触摸;例如,设备可确定无意中生 成了触摸(即,由于将便携式多点触摸启用设备放置在一个口袋 中)并且由于该原因忽略触摸;状态机状态/阶段351的每个值可以 是整数(本文称为“手势识别器状态值”);
[0178] ·动作-目标对354,其中每对识别相应的事件识别器实例响应于将事 件或触摸识别为手势或手势的一部分而将所识别的动作消息发送到 的目标;
[0179] ·委托353,当委托被分配给相应的事件识别器实例时,委托353是 对对应委托的引用;当委托未分配给相应的事件识别器实例时,委 托346包含空值;以及
[0180] ·启用属性356,其指示相应的事件识别器实例是否被启用;在一些 实施方案中,当相应的事件识别器实例未被启用(例如,禁用) 时,相应的事件识别器实例不处理事件或触摸。
[0181] 包括手势识别器状态和属性的关于手势识别器的附加信息可见于2014 年5月29日提交的美国专利申请14/290,931,该专利申请全文以引用方式 并入本文。
[0182] 每个触摸数据结构361可包括各种条目。在一些实施方案中,触摸数 据结构可包括与事件/触摸元数据351中的至少触摸特定条目对应的数据, 诸如以下内容或它们的子集或超集:
[0183] ·“视图的第一触摸”条目362;
[0184] ·“每个触摸信息”条目363,包括“时间戳”信息,其指示触摸数 据结构所涉及的特定时间(例如,触摸时间);任选地,“每个触 摸信息”条目362包括其他信息,诸如对应触摸的位置;以及
[0185] ·任选的“轻击计数”条目364。
[0186] 因此,每个触摸数据结构可定义在特定时间(例如,触摸是否是静止 的、正在移动的等)与相应的触摸(或其他输入源)发生的事情以及与触 摸相关联的其他信息(诸如位置)。因此,每个触摸数据结构可定义特定 时刻的特定触摸的状态。可在触摸事件数据结构中添加引用相同时间的一 个或多个触摸数据结构,该触摸事件数据结构可定义特定视图在某一时刻 正在接收的所有触摸的状态(如上所述,一些触摸数据结构还可引用已经 结束且不再被接收的触摸)。随着时间的推移,可将多个触摸事件数据结 构发送到实现视图的软件,以便向软件提供描述视图中发生的触摸的连续 信息。
[0187] 处理复杂的基于触摸的手势(任选地包括多点触摸手势)的能力可增 加各种软件应用程序的复杂性。在某些情况下,这种附加的复杂性对于实 现高级且理想的界面功能可以是必需的。例如,游戏可需要能够处理在不 同视图中发生的多个同时触摸,因为游戏通常需要同时按下多个按钮,或 者将加速度计数据与触敏表面上的触摸组合。但是,一些更简单的应用程 序和/或视图不需要高级界面功能。例如,简单的软按钮(即,在触敏显示 器上显示的按钮)可通过单个触摸而不是多点触摸功能令人满意地操作。 在这些情况下,底层OS可将不必要或过多的触摸数据(例如,多点触摸数 据)发送到与旨在仅可通过单个触摸操作的视图相关联的软件部件(例 如,单个触摸或轻击软按钮)。由于软件部件可需要处理该数据,因此它 可需要以处理多个触摸的软件应用程序的所有复杂性为特征,即使它与仅 与单个触摸相关的视图相关联。这可增加用于设备的软件开发的成本,因 为传统上易于在鼠标界面环境中编程的软件部件(即,各种按钮等)在多 点触摸环境中可复杂得多。
[0188] 为了降低识别复杂的基于触摸的手势的复杂性,可使用委托来控制根 据一些实施方案的事件识别器的行为。如下所述,委托可确定例如对应的 事件识别器(或手势识别器)是否可接收事件(例如,触摸)信息;对应 的事件识别器(或手势识别器)是否可从状态机的初始状态(例如,事件 可能状态)转变到另一个状态;和/或对应的事件识别器(或手势识别器) 是否可同时将事件(例如,触摸)识别为对应的手势,而不阻止其他事件 识别器(或手势识别器)识别事件或被识别事件的其他事件识别器(或手 势识别器)阻止。
[0189] 然而,应该理解,前面关于评估和处理触敏表面上的用户触摸的复杂 性的讨论也适用于用输入设备128操作电子设备102的所有形式的用户输 入,并非所有用户输入都在触摸屏上启动,例如,在有或没有以下项的情 况下协调鼠标移动和鼠标按钮按压:单次或多次键盘按压或保持、设备旋 转或其他移动,触控板上的用户移动(诸如轻击、拖动、滚动等)、触笔 输入、口头指示、检测到的眼睛移动、生物特征输入、检测到的用户生理 变化和/或其任何组合,其可用作与定义要识别的事件的事件和/或子事件对 应的输入。
[0190] 转到事件信息流,图3D是示出根据一些实施方案的事件信息流的框 图。
[0191] 在图3D中,事件分配器模块315(例如,在操作系统118或应用程序 软件124中)接收事件信息(例如,对于视图378中的触摸事件),并且 将事件信息发送到一个或多个应用程序(例如,在该示例中为应用程序 133-1,但不是应用程序133-2)。在一些实施方案中,应用程序133-1包括 视图分级结构372中的多个视图(例如,图3B,对应于视图317的374、 376和378)以及多个视图中的多个手势识别器(379-1到379-3)。应用程 序133-1还包括一个或多个手势处理程序319-i,其对应于目标-动作对354 中的目标383(例如,目标383-1和383-2)。在一些实施方案中,事件分 配器模块315从命中视图确定模块314接收命中视图信息,并且将事件信 息发送到命中视图(例如,378)或附接到命中视图(例如,379-1和379- 2)的事件识别器。除此之外或另选地,事件分配器模块315从命中级别确 定模块352接收命中级别信息,并且将事件信息发送到命中级别(例如, 133-1和133-2)中的应用程序或命中级别应用程序中的一个或多个事件识 别器(例如,379-4)。需注意,在图3D所示的示例中,应用程序133-2不 具有作为对于所接收的事件信息的命中视图的视图,并且事件信息不被发 送到应用程序133-2的手势识别器(例如,手势识别器379-4)中的任一个 手势识别器。
[0192] 在一些实施方案中,接收事件信息的应用程序中的一个应用程序是默 认应用程序(例如,133-2可以是默认应用程序)。在一些实施方案中,仅 允许每个接收应用程序中的手势识别器的子集(或被配置为)接收事件信 息。例如,在该示例中,应用程序133-1中的手势识别器379-3不接收事件 信息。接收事件信息的手势识别器在本文被称为接收手势识别器。在图3D 中,接收手势识别器379-1和379-2接收事件信息,并且将接收的事件信息 与接收手势识别器中的相应手势定义337(图3B)进行比较。在图3D 中,手势识别器379-1和379-4具有相应的手势定义,并且当这些定义与所 接收的事件信息匹配时,具有匹配的手势定义的手势识别器将相应的动作 消息(例如,381)发送到对应的手势处理程序(例如,319-i)。在该示例 中,应用程序133-2的手势处理程序319-j不接收与事件分配器模块315调 度的事件信息对应的动作消息,因为该事件信息被发送到命中视图378中 的手势识别器,命中视图378不是应用程序133-2的一部分。在一些实施方 案中,手势处理程序是独立于应用程序的模块的一部分,该模块可供多个 不同的应用程序用作应用程序开发框架,并且当使用应用程序开发框架编 译应用程序时,手势处理程序将包含在应用程序的代码中(例如,手势处 理程序不是特定于应用程序的应用程序核心的一部分,而是从某种意义上 说独立于应用程序的应用程序的一部分,其可供多个不同的应用程序使 用)。在其他情况下,诸如在应用程序133-2的视图中的触摸输入,事件信 息将被递送到应用程序133-2的一个或多个手势识别器。
[0193] 现在将注意力转到任选地在便携式多功能设备100上实现的用户界面 (“UI”)的实施方案。
[0194] 图4A示出根据一些实施方案的便携式多功能设备100上的应用程序菜 单的示例性用户界面。类似的用户界面任选地在设备300上实现。在一些 实施方案中,用户界面400包括以下元件或者其子集或超集:
[0195] ·无线通信(诸如蜂窝信号和Wi-Fi信号)的信号强度指示符402;
[0196] ·时间404;
[0197] ·蓝牙指示符405;
[0198] ·电池状态指示符406;
[0199] ·具有常用应用程序图标的托盘408,诸如:
[0200] ο电话模块138的被标记为“电话”的图标416,该图标416任选 地包括未接来电或语音留言的数量的指示符414;
[0201] ο电子邮件客户端模块140的被标记为“邮件”的图标418,该图 标418任选地包括未读电子邮件的数量的指示符410;
[0202] ο浏览器模块147的标记为“浏览器”的图标420;以及
[0203] ο视频和音乐播放器模块152(也称为iPod(苹果公司(Apple Inc.) 的商标)模块152)的被标记为“iPod”的图标422;以及
[0204] ·其他应用程序的图标,诸如:
[0205] οIM模块141的被标记为“消息”的图标424;
[0206] ο日历模块148的被标记为“日历”的图标426;
[0207] ο图像管理模块144的被标记为“照片”的图标428;
[0208] ο相机模块143的被标记为“相机”的图标430;
[0209] ο在线视频模块155的被标记为“在线视频”的图标432;
[0210] ο股市桌面小程序149-2的被标记为“股市”的图标434;
[0211] ο地图模块154的被标记为“地图”的图标436;
[0212] ο天气桌面小程序149-1的被标记为“天气”的图标438;
[0213] ο闹钟桌面小程序149-4的被标记为“时钟”的图标440;
[0214] ο健身支持模块142的被标记为“健身支持”的图标442;
[0215] ο记事本模块153的标记为“记事本”的图标444;以及
[0216] ο用于设置应用程序或模块的图标446,该图标提供对设备100及 其各种应用程序136的设置的访问。
[0217] 应当注意,图4A中示出的图标标签仅仅是示例性的。例如,在一些 实施方案中,视频和音乐播放器模块152的图标422被标记为“音乐”或 “音乐播放器”。对于各种应用程序图标任选地使用其他标签。在一些实 施方案中,相应应用程序图标的标签包括与该相应应用程序图标对应的应 用程序的名称。在一些实施方案中,特定应用程序图标的标签不同于与该 特定应用程序图标对应的应用程序的名称。
[0218] 图4B示出了具有与显示器450分开的触敏表面451(例如,图3A中 的平板或触控板355)的设备(例如,图3中的设备300)上的示例性用户 界面。设备300还任选地包括用于检测触敏表面451上的接触的强度的一 个或多个接触强度传感器(例如,传感器357中的一个或多个传感器)和/ 或用于为设备300的用户生成触觉输出的一个或多个触觉输出发生器
359。
[0219] 图4B示出了具有与显示器450分开的触敏表面451(例如,图3中的 平板或触控板355)的设备(例如,图3中的设备300)上的示例性用户界 面。尽管将参考触摸屏显示器112(其中组合了触敏表面和显示器)上的输 入给出随后的许多示例,但是在一些实施方案中,设备检测与显示器分开 的触敏表面上的输入,如图4B中所示。在一些实施方案中,触敏表面(例 如,图4B中的451)具有与显示器(例如,450)上的主轴线(例如,图 4B中的453)对应的主轴线(例如,图4B中的452)。根据这些实施方 案,设备检测与显示器上相应位置对应的位置处的与触敏表面451的接触 (例如,图4B中的460和462)(例如,在图4B中,460对应于
468并且 462对应于470)。这样,在触敏表面(例如,图4B中的451)与多功能 设备的显示器(例如,图4B中的450)是分开的时侯,由设备在触敏表面 上所检测到的用户输入(例如,接触460和462以及它们的移动)被该设 备用于操纵显示器上的用户界面。应当理解,类似的方法任选地用于本文 所述的其他用户界面。
[0220] 另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、 手指轻扫手势等)来给出下面的示例,但是应当理解的是,在一些实施方 案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入 (例如,基于鼠标的输入或触笔输入)替换。例如,轻扫手势任选地由鼠 标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例 如,而不是接触的移动)替代。又如,轻击手势任选地由在光标位于轻击 手势的位置上方时的鼠标点击(例如,代替对接触的检测,之后是停止检 测接触)替代。类似地,当同时检测到多个用户输入时,应当理解的是, 多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使 用。
[0221] 如本文所用,术语“焦点选择器”是指指示用户正与之进行交互的用 户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具体实 施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例 如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如, 图3中的触控板355或图4B中的触敏表面451)上检测到输入(例如,按 压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调整。 在包括使得能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸 屏显示器(例如,图1中的触敏显示器系统112或图4A中的触摸屏)的一 些具体实施中,在触摸屏上检测到的接触充当“焦点选择器”,使得当在 触摸屏显示器上在特定用户界面元素(例如,按钮、窗口、滑块或其他用 户界面元素)的位置处检测到输入(例如,通过接触的按压输入)时,根 据所检测到的输入来调整特定用户界面元素。在一些具体实施中,焦点从 用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移 动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键将焦 点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择器根据 焦点在用户界面的不同区域之间的移动而移动。不考虑焦点选择器所采取 的具体形式,焦点选择器通常是由用户控制以便传送与用户界面的用户期 望的交互(例如,通过向设备指示用户界面的用户期望与其进行交互的元 素)的用户界面元素(或触摸屏显示器上的接触)。例如,在触敏表面 (例如,触控板或触摸屏)上检测到按压输入时,焦点选择器(例如,光 标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮 (而不是设备显示器上示出的其他用户界面元素)。
[0222] 如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的 “强度”是触敏表面上的接触(例如,手指接触或触笔接触)的力或压力 (每单位面积的力),或是指触敏表面上的接触的力或压力的代替物(代 用物)。接触的强度具有值范围,该值范围包括至少四个不同的值并且更 典型地包括上百个不同的值(例如,至少256个)。接触的强度任选地使 用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触 敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏 表面上的不同点处的力。在一些具体实施中,来自多个力传感器的力测量 被合并(例如,加权平均或者加和),以确定估计的接触力。类似地,触 笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏 表面上检测到的接触区域的大小和/或其变化、接触附近的触敏表面的电容 和/或其变化以及/或者接触附近的触敏表面的电阻和/或其变化任选地被用 作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或 压力的替代物测量直接用于确定是否已经超过强度阈值(例如,强度阈值 以对应于替代物测量的单位来描述)。在一些具体实施中,将接触力或压 力的替代测量值转换为预估力或压力,并且使用预估力或压力确定是否已 超过强度阈值(例如,强度阈值是以压力单位测量的压力阈值)。使用接 触的强度作为用户输入的属性,从而允许用户访问用户在用于(例如,在 触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示 器、触敏表面或物理控件/机械控件诸如旋钮或按钮)的实地面积有限的尺 寸更小的设备上本来不能容易地访问的附加设备功能。
[0223] 在一些实施方案中,接触/运动模块130使用一组一个或多个强度阈值 来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。 在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例 如,强度阈值不由特定物理致动器的激活阈值来确定,并且可在不改变设 备100的物理硬件的情况下进行调整)。例如,在不改变触控板或触摸屏 显示器硬件的情况下,触控板或触摸屏显示器的鼠标“点击”阈值可被设 置为预定义阈值的大范围中的任一个阈值。另外,在一些具体实施中,设 备的用户提供有用于调节一组强度阈值中的一个或多个强度阈值(例如, 通过调节各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次 调节多个强度阈值)的软件设置。
[0224] 如说明书和权利要求书中所使用的,接触的“特征强度”这一术语是 指基于接触的一个或多个强度的接触的特征。在一些实施方案中,特征强 度基于多个强度样本。特征强度任选地基于相对于预定义事件(例如,在 检测到接触之后,在检测到接触抬离之前,在检测到接触开始移动之前或 之后,在检测到接触结束之前,在检测到接触的强度增大之前或之后和/或 在检测到接触的强度减小之前或之后)而言在预先确定的时间段(例如, 0.05秒、0.1秒、0.2秒、0.5秒、1秒、2秒、5秒、10秒)期间采集的预定 义数量的强度样本或一组强度样本。接触的特征强度任选地基于以下各项 中的一者或多者:接触强度的最大值、接触强度的均值、接触强度的平均 值、接触强度的前10%处的值、接触强度的半最大值、接触强度的90%最 大值等。在一些实施方案中,在确定特征强度时使用接触的持续时间(例 如,在特征强度是接触的强度在时间上的平均值时)。在一些实施方案 中,将特征强度与一组一个或多个强度阈值进行比较,以确定用户是否已 执行操作。例如,该组一个或多个强度阈值可包括第一强度阈值和第二强 度阈值。在本示例中,特征强度未超过第一阈值的接触导致第一操作,特 征强度超过第一强度阈值但未超过第二强度阈值的接触导致第二操作,并 且特征强度超过第二阈值的接触导致第三操作。在一些实施方案中,使用 特征强度和一个或多个强度阈值之间的比较来确定是否要执行一个或多个 操作(例如,是否执行相应选项或放弃执行相应操作),而不是用于确定 执行第一操作还是第二操作。
[0225] 在一些实施方案中,识别手势的一部分以用于确定特征强度。例如, 触敏表面可接收连续轻扫接触,该连续轻扫接触从起始位置过渡并达到结 束位置(例如拖动手势),在该结束位置处,接触的强度增大。在该示例 中,接触在结束位置处的特征强度可仅基于连续轻扫接触的一部分,而不 是整个轻扫接触(例如,仅结束位置处的轻扫接触的一部分)。在一些实 施方案中,可在确定接触的特征强度之前向轻扫手势的强度应用平滑化算 法。
例如,平滑化算法任选地包括以下各项中的一种或多种:不加权滑动 平均平滑化算法、三角平滑化算法、中值滤波器平滑化算法和/或指数平滑 化算法。在一些情况下,这些平滑化算法消除了轻扫接触的强度中的窄的 尖峰或凹陷,以实现确定特征强度的目的。
[0226] 本文所述的用户界面图任选地包括各种强度图,这些强度图示出了触 敏表面上的接触相对于一个或多个强度阈值(例如,接触检测强度阈值 IT0、轻按压强度阈值ITL、深按强度阈值ITD(例如,其最初至少高于IL) 和/或一个或多个其他强度阈值(例如,比IL更低的强度阈值IH))的当前 强度。该强度图通常不是所显示的用户界面的一部分,但是被提供以帮助 解释所述图。在一些实施方案中,轻按压强度阈值对应于这样的强度:在 该强度下设备将执行通常与点击物理鼠标或触控板的按钮相关联的操作。 在一些实施方案中,深按强度阈值对应于这样的强度:在该强度下设备将 执行与通常与点击物理鼠标或触控板的按钮相关联的操作不同的操作。在 一些实施方案中,当检测到特征强度低于轻按压强度阈值(例如,并且高 于标称接触检测强度阈值IT0,比标称接触检测强度阈值低的接触不再被检 测到)的接触时,设备将根据接触在触敏表面上的移动来移动焦点选择 器,而不执行与轻按压强度阈值或深按强度阈值相关联的操作。一般来 讲,除非另有陈述,否则这些强度阈值在不同组的用户界面附图之间是一 致的。
[0227] 在一些实施方案中,设备对设备所检测到的输入的响应取决于基于输 入期间的接触强度的标准。例如,对于一些“轻按压”输入,在输入期间 超过第一强度阈值的接触的强度触发第一响应。在一些实施方案中,设备 对由设备所检测到的输入的响应取决于包括输入期间的接触强度和基于时 间的标准两者的标准。例如,对于一些“深按”输入,只要在满足第一强 度阈值与满足第二强度阈值之间经过延迟时间,在输入期间超过大于轻按 压的第一强度阈值的第二强度阈值的接触的强度便触发第二响应。该延迟 时间的持续时间通常小于200ms(例如,40ms、100ms、或120ms,这取 决于第二强度阈值的量值,其中该延迟时间随着第二强度阈值增大而增 大)。该延迟时间帮助避免意外的深按输入。又如,对于一些“深按”输 入,在达到第一强度阈值之后将出现敏感度降低的时间段。在该敏感度降 低的时间段期间,第二强度阈值增大。第二强度阈值的这种暂时增大还有 助于避免意外深按输入。对于其他深按输入,对检测到深按输入的响应不 取决于基于时间的标准。
[0228] 在一些实施方案中,输入强度阈值和/或对应输出中的一者或多者基于 一个或多个因素(诸如用户设置、接触运动、输入定时、应用运行、施加 强度时的速率、同时输入的数量、用户历史、环境因素(例如,环境噪 声)、焦点选择器位置等)而变化。示例因素在美国专利申请14/399,606 和14/624,296中有所描述,这些美国专利申请全文以引用方式并入本文。
[0229] 例如,图4C示出了部分地基于触摸输入476随时间的强度而随时间改 变的动态强度阈值480。动态强度阈值480是两个分量的总和:在从触摸输 入476初始被检测到开始的预定义的延迟时间p1之后随时间衰减的第一分 量474和随时间而跟踪触摸输入476的强度的第二分量478。第一分量474 的初始高强度阈值减少意外触发“深按”响应,同时仍然允许在触摸输入 476提供足够强度的情况下进行即时“深按”响应。第二分量478减少通过 触摸输入的逐渐的强度波动而无意触发“深按”响应。在一些实施方案 中,在触摸输入476满足动态强度阈值480时(例如,在图4C中的点481 处),触发“深按”响应。
[0230] 图4D示出了另一个动态强度阈值486(例如,强度阈值ID)。图4D 还示出了两个其他强度阈值:第一强度阈值IH和第二强度阈值IL。在图4D 中,尽管触摸输入484在时间p2之前满足第一强度阈值IH和第二强度阈值 IL,但是直到在时间482处经过延迟时间p2才提供响应。同样在图4D中, 动态强度阈值486随时间衰减,其中衰减在从时间482(触发了与第二强度 阈值IL相关联的响应的时候)已经过预定义的延迟时间p1之后的时间488 开始。这种类型的动态强度阈值减少紧接在触发与较低阈值强度(诸如第 一强度阈值IH或第二强度阈值IL)相关联的响应之后或与其同时意外触发 与动态强度阈值ID相关联的响应。
[0231] 图4E示出了另一个动态强度阈值492(例如,强度阈值ID)。在图 4E中,在从触摸输入490被初始检测到的时候已经过延迟时间p2之后,触 发与强度阈值IL相关联的响应。同时,动态强度阈值492在从触摸输入490 被初始检测到的时候已经过预定义的延迟时间p1之后衰减。因此,在触发 与强度阈值IL相关联的响应之后降低触摸输入490的强度,接着在不释放 触摸输入490的情况下增大触摸输入490的强度可触发与强度阈值ID相关 联的响应(例如,在时间494处),即使当触摸输入490的强度低于另一 强度阈值(例如,强度阈值IL)时也是如此。
[0232] 接触特征强度从低于轻按强度阈值ITL的强度增大到介于轻按强度阈 值ITL与深按强度阈值ITD之间的强度有时被称为“轻按”输入。接触的特 征强度从低于深按强度阈值ITD的强度增大到高于深按强度阈值ITD的强度 有时称为“深按”输入。接触特征强度从低于接触检测强度阈值IT0的强度 增大到介于接触检测强度阈值IT0与轻按强度阈值ITL之间的强度有时被称 为检测到触摸表面上的接触。接触的特征强度从高于接触检测强度阈值IT0的强度减小到低于接触检测强度阈值IT0的强度有时被称为检测到接触从触 摸表面抬离。在一些实施方案中,IT0为零。在一些实施方案中,IT0大于 零。在一些例示中,阴影圆或椭圆用于表示触敏表面上的接触的强度。在 一些例示中,没有阴影的圆或椭圆用于表示触敏表面上的相应接触而不指 定相应接触的强度。
[0233] 在本文中所述的一些实施方案中,响应于检测到包括相应按压输入的 手势或响应于检测到利用相应接触(或多个接触)所执行的相应按压输入 来执行一个或多个操作,其中至少部分地基于检测到该接触(或多个接 触)的强度增大到高于按压输入强度阈值而检测到该相应按压输入。在一 些实施方案中,响应于检测到相应接触的强度增大到高于按压输入强度阈 值来执行相应操作(例如,在相应按压输入的“向下冲程”上执行相应操 作)。在一些实施方案中,按压输入包括相应接触的强度增大到高于按压 输入强度阈值以及该接触的强度随后减小到低于按压输入强度阈值,并且 响应于检测到相应接触的强度随后减小到低于按压输入阈值来执行相应操 作(例如,在相应按压输入的“向上冲程”上执行相应操作)。
[0234] 在一些实施方案中,设备采用强度滞后以避免有时被称为“抖动”的 意外输入,其中设备限定或选择与按压输入强度阈值具有预定义关系的滞 后强度阈值(例如,滞后强度阈值比按压输入强度阈值低X个强度单位, 或滞后强度阈值是按压输入强度阈值的75%、90%或某个合理比例)。因 此,在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输 入强度阈值以及该接触的强度随后减小到低于对应于按压输入强度阈值的 滞后强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后强 度阈值来执行相应操作(例如,在相应按压输入的“向上冲程”上执行相 应操作)。类似地,在一些实施方案中,仅在设备检测到接触强度从等于 或低于滞后强度阈值的强度增大到等于或高于按压输入强度阈值的强度并 且任选地接触强度随后减小到等于或低于滞后强度的强度时才检测到按压 输入,并且响应于检测到按压输入(例如,根据环境,接触强度增大或接 触强度减小)来执行相应操作。
[0235] 为了容易解释,任选地响应于检测到以下情况而触发对响应于与按压 输入强度阈值相关联的按压输入或响应于包括按压输入的手势而执行的操 作的描述:接触的强度增大到高于按压输入强度阈值、接触的强度从低于 滞后强度阈值的强度增大到高于按压输入强度阈值的强度、接触的强度减 小到低于按压输入强度阈值、或接触的强度减小到低于与按压输入强度阈 值对应的滞后强度阈值。另外,在将操作描述为响应于检测到接触的强度 减小到低于按压输入强度阈值而执行的示例中,任选地响应于检测到接触 的强度减小到低于对应于并且小于按压输入强度阈值的滞后强度阈值来执 行操作。如上所述,在一些实施方案中,对这些操作的触发还取决于满足 基于时间的标准(例如,在满足第一强度阈值和满足第二强度阈值之间已 经过延迟时间)。
[0236] 用户界面和相关联的过程
[0237] 现在将注意力转向可在具有显示器、触敏表面和(任选地)用于检测 与触敏表面的接触的强度的一个或多个传感器的电子设备诸如便携式多功 能设备100或设备300上实现的用户界面(“UI”)和相关联的过程的实 施方案。
[0238] 图5A至图5R示出了根据一些实施方案的用于拖放操作的示例性用户 界面。这些附图中的用户界面用于说明下面描述的过程,包括下面参考图 7A至图7F、图8A至图8E和图9A至图9D描述的过程。为了便于解释, 将参考在具有触敏显示器系统112的设备上执行的操作来论述实施方案中 的一些实施方案。在此类实施方案中,焦点选择器为任选地:相应手指或 触笔接触、对应于手指或触笔接触的表示点(例如,相应接触的重心或与 相应接触相关联的点)、或在触敏显示器系统112上所检测到的两个或更 多个接触的重心。然而,响应于当在显示器450上显示附图中示出的用户 界面连同焦点选择器时检测到触敏表面451上的接触,任选地在具有显示 器450和独立的触敏表面451的设备上执行类似的操作。
[0239] 在图5A至图5R中以及下面的方法700、800和900的描述中,触摸 或触摸输入以及触摸或触摸输入的移动在相应用户的控制下通过在A)电 子设备用户的一个或多个手指或B)类似工具的触笔的触摸屏(例如,触 摸屏112)或触控板(例如,触控板355,有时也称为触控板)或其他触敏 表面上或其附近的放置和/或移动来进行。
[0240] 图5A示出了显示在触摸屏112上的便携式多功能设备100的用户界 面,具有用于第一应用程序(应用程序A)的用户界面区域502,以及用于 第二应用程序(应用程序B)的另一个用户界面区域504。用于应用程序A 的界面区域502包括四个对象,对象1、对象2、对象3和对象4,并且用 于应用程序B的用户界面区域504包括第五对象(对象5)。在一些实施 方案中,应用程序A的区域502可以是应用程序A的视图。在一些实施方 案中,区域502中的对象1至对象4的显示的表示也可以是应用程序A的 视图。类似地,应用程序B的区域504可以是应用程序B的视图,并且区 域504中对象5的显示的表示也可以是应用程序B的视图。
[0241] 如图5A的右侧所示,应用程序A或应用程序A的视图中的一个或多 个视图具有用于拖动操作、放下操作和弹簧加载操作的交互标识符,指示 用于拖动手势、放下手势和弹簧加载手势的补充手势识别器可(或将要) 在满足适用的补充手势识别器添加标准时添加到应用程序A的视图中的一 个或多个视图。在一些实施方案中,交互标识符被存储或包括在具有此类 交互标识符的每个应用程序视图的视图元数据341(图3B)中。而且,在 图5A所示的示例中,没有向应用程序A的视图中的任一个视图添加补充 手势识别器,也没有建立任何手势识别器故障依赖性。
[0242] 图5B示出了图5A中所示的用户界面中的对象4上的第一触摸(触摸 1)。因此,更新了应用程序A的用户界面区域502中的对象4的外观。另 外,焦点选择器506现在与对象4重叠,指示第一触摸输入的位置。
[0243] 如果第一触摸横向移动(例如,到用户界面区域502中的位置505) 而不满足预定义的拖动开始识别标准(下面更详细地讨论),则与第一触 摸相关联的焦点选择器移动(例如,到位置505)而不拖动它最初放置在其 上的对象(对象4)。如下面参考图5D所讨论的,当第一触摸在保持在初 始触摸位置之前横向移动达至少触摸输入必须保持与电子设备的触敏表面 接触的最小时间量时,可发生该结果,在开始横向移动之前没有实质的横 向移动,以便满足预定义的拖动开始识别标准。
[0244] 如图5B的右侧所示,检测到对象4上的第一触摸(触摸1)的时间是 时间=t1。应用程序A或其视图继续具有用于拖动操作、放下操作和弹簧加 载操作的交互标识符。此外,在图5B所示的示例中,用于识别拖动开始、 拖动手势的开始和拖动添加的补充手势识别器(其是用于将对象添加到现 有拖动操作的手势)已被添加到对应于对象4的应用程序视图,或对应于 用户界面区域504的视图。此外,建立了手势识别器故障依赖性,使得对 应于对象4或用于用户界面区域504的视图的应用程序视图的长按(LP) 手势识别器取决于拖动开始(DS)手势识别器出故障。在一些实施方案 中,通过在长按手势识别器的等待列表327(图3B)中列出拖动手势识别 器来指示该故障依赖性。
[0245] 关于交互标识符、补充手势识别器以及向应用程序或应用程序视图自 动或动态添加补充手势识别器以及在标准手势识别器和补充手势识别器之 间自动建立故障依赖性的进一步讨论在下面参考图6D、图6E、图7A至图 7F、图8A至图8E和图9A至图9D提供。
[0246] 图5C示出了当通过深按(例如,基于强度)或长按(例如,基于时 间)手势识别器识别第一触摸(触摸1)时生成的用户界面。在该示例中, 响应于将第一触摸识别为长按手势,显示与对象4相关联的一组菜单选 项。
[0247] 如图5C的右侧所示,对象4上的第一触摸(触摸1)被识别为长按手 势的时间是时间=t1+T2,其中t1是第一次检测到第一触摸的时间。在一 些实施方案中,T2是触摸输入必须保持与电子设备的触敏表面接触而没有 实质的横向移动的阈值时间量,以便满足预定义的长按识别标准。
[0248] 图5D示出了通过第一触摸(触摸1)的拖动手势的开始。因此,对象 4随着第一触摸而移动或拖动。此时,第一触摸和对象4保持在应用程序A 的用户界面区域502中。
[0249] 如图5D的右侧所示,对象4上的第一触摸(触摸1)被识别为拖动开 始手势的时间是时间=t1+T3,其中t1是第一次检测到第一触摸的时间。在 一些实施方案中,T3至少是触摸输入在开始横向移动之前必须保持与电子 设备的触敏表面接触而没有实质横向移动的最小时间量,以便满足预定义 的拖动开始识别标准。相反,如果在经过时间阈值(T3)之前要检测到触 摸1的移动,则触摸1将在显示器上移动(例如,移动到位置505,如图 5B所示),而不启动拖动手势,并因此不拖动对象4。
[0250] 在一些实施方案中,在使用标准手势识别器初始识别触摸输入(例如 作为长触摸)之后,如图5C所示,电子设备随后使用补充手势识别器将触 摸输入识别为第二手势诸如拖动开始手势,如图5D所示。在此类实施方案 中,T3(图5D)是比T2更大或更长的时间间隔(图5C)。
[0251] 还如图5D的右侧所示,会话ID(在该示例中等于1)已被分配给第 一触摸,或者分配给被第一触摸拖动的对象。如下面更详细描述的,当触 摸被识别为拖动手势时,会话ID被分配给触摸,变为分离的触摸。会话ID 对应于添加到应用程序A或其视图中的一个或多个视图的一组补充手势识 别器,其一旦被识别为拖动手势就控制第一触摸的处理。其他拖动手势 (例如,并发或后续拖动手势)将获得与包括第一触摸的拖动的会话ID不 同的它们自己的会话ID。
[0252] 在这些附图(例如,图5A至图5R)中,使用来自常规触摸(也称为 附接触摸或视图附接的触摸)的不同图形(具有条纹填充图案的椭圆形) 描绘分离的触摸(具有交叉阴影线的填充图案并且周长比分离的触摸暗的 椭圆形)。在一些实施方案中,分离的触摸与其遍历的应用程序视图或用 户界面区域的标准手势识别器分离,并且因此,与分离的触摸的放置和/或 移动相关联的触摸事件(在本文中有时称为拖动事件)由与那些视图或用 户界面区域相关联的补充手势识别器处理,而不由与那些视图或用户界面 区域相关联的标准手势识别器处理。当满足预定义的标准时,将补充手势 识别器动态地添加(例如,通过系统过程)到应用程序或视图。与常规触 摸的放置和/或移动相关联的触摸事件(有时在本文中称为附接触摸或视图 附接的触摸)由与那些视图或用户界面区域相关联的标准手势识别器处 理。标准手势识别器是手势识别器,通常通过应用程序与应用程序视图或 应用程序的用户界面区域相关联或分配给应用程序视图或应用程序的用户 界面区域。
[0253] 在图5E中,第一触摸移动到应用程序B的用户界面区域504,利用其 拖动对象4。图5E的右侧示出了应用程序B或应用程序B的视图中的一个 或多个视图具有用于放下操作和弹簧加载操作的交互标识符,指示用于放 下手势和弹簧加载手势的补充手势识别器可(或将要)在满足适用的补充 手势识别器添加标准时添加到应用程序B的视图中的一个或多个视图。而 且,在图5E所示的示例中,用于放下手势的一个或多个补充手势识别器已 被添加到应用程序B的一个或多个视图,手势识别器故障依赖性还没有建 立,并且会话ID已经分配给(或继续分配给)包括第一触摸的拖动操作。 添加到视图的补充手势识别器的其他示例以及手势识别器故障依赖性的其 他示例在下面关于该序列中的后续附图(诸如图5M)进行讨论。
[0254] 在图5F中,在对象4上检测到两指触摸输入(例如,在应用程序中的 同一对象或视图上的两个同时检测到的触摸)。在一些实施方案中,两指 触摸用于启动拖动操作,而不必在开始触摸输入的横向移动(例如,拖 动)之前等待超时时间段。
[0255] 在图5G中,两指触摸开始移动,利用其拖动对象4。该图中的时间是 时间=t1+ΔT,其中t1是第一次检测到第一触摸的时间,并且ΔT是比上述 T2和T3时间段短的时间段。在一些实施方案或情况下,ΔT接近但大于 零。两指触摸的移动导致触摸被分离,并且会话ID被分配给两个触摸输入 (例如,触摸1和触摸2)。如下面更详细描述的,在确定触摸满足预定义 的拖动开始标准时,两个触摸都分离。交互标识符、添加的手势识别器和 故障依赖性与图5D中的相同。在图5G中通过拖动的对象的外观变化来指 示拖动手势的识别(例如,周边以较厚的周长绘制),并且在图5G中通过 两个触摸的变化的外观指示两个触摸的分离。
[0256] 在图5H中,两指触摸从应用程序A的用户界面区域502移动到应用 程序B的用户界面区域504中。在两指触摸进入应用程序B的用户界面区 域504时,放下手势识别器添加到用户界面区域504。还如图5H所示,用 户界面区域504具有用于拖动、放下弹簧加载交互的交互标识符。
[0257] 图5I表示当检测到第二触摸(触摸2)时从图5D中所示的用户界面 发生的转变。在该示例中,第二触摸在用于应用程序A的用户界面区域 502中的对象(对象2)上。由于第一触摸已经分离,所以第二触摸独立于 第一触摸被处理,除非第二输入被识别为拖动添加手势。因此,如果第二 触摸未被识别为拖动添加手势,则使用用于应用程序A的用户界面区域 502的标准手势识别器来处理第二触摸。在该示例中,对象1、对象2和对 象3是应用程序A中的竖直可滚动列表的元素。当第二触摸(触摸2)竖 直向下移动时,如图5J所示,可滚动列表向下滚动与第二触摸的竖直移动 量对应的量。如图所示,第二触摸的移动不需要完全竖直以引起滚动。滚 动列表的滚动导致附加元素(对象Z)滚动到显示的可滚动列表的顶部处 的视图中。
[0258] 在图5K中,第二触摸(触摸2)继续被移动(例如,由设备100的用 户移动)。在该示例中,第二触摸的移动向下和平地移动到应用程序B 的用户界面区域504中。由于第二触摸尚未被识别为拖动开始手势,因此 即使当第二触摸移动到用户界面区域504中时,第二触摸仍然附接应用程 序A或应用程序A的一个或多个视图,因此,对应于第二触摸的触摸事件 继续被递送到应用程序A,并且响应于那些触摸事件,应用程序A的用户 界面区域502中的可滚动列表根据第二触摸的竖直移动量继续滚动。可滚 动列表的继续滚动导致另一个附加元素(对象Y)滚动到所显示的可滚动 列表的顶部处的视图中。
[0259] 再次参考图5I,在一些实施方案中,拖动添加手势是在可用于添加到 拖动操作的对象上执行的轻击或其他区别性触摸手势(例如,距已经参与 拖动操作的对象或已指定为可用于添加到拖动手势的对象在预定义的距离 内的对象(例如,通过其中显示该对象的应用程序)。如果图5I中所示的 第二触摸被识别为拖动添加手势,则将对象2添加到与第一触摸相关联的 拖动操作,如图5L所示。在图5I和图5L中,时间t2对应于第一次检测到 第二触摸(触摸2)的时间,并且T4是或者对应于拖动添加手势的最大持 续时间。
[0260] 在图5L中,对象2堆叠在对象4后面,并且当第一触摸在触摸屏112 上横向移动时,两个对象(对象2和对象4)被拖动。在一些实施方案中, 拖动添加手势需要是两指轻击手势,而不是图5I和图5L中所示的单指轻 击手势,而在一些其他实施方案中,单指轻击手势和两个指轻击手势都可 以是拖动添加手势,只要它们满足预定义的拖动标准(例如,要求用户输 入包括在与可被拖动的用户界面对象对应的位置处的接触,并且要求识别 出拖动操作的第一触摸与第二触摸之间的距离不大于预定义的距离或接近 度阈值)。
[0261] 在图5M中,对象4和对象2(仅作为其在对象4下堆叠的阴影示出) 已被拖动到应用程序B的用户界面区域504中。在该示例中,响应于分离 的触摸(触摸1)被拖动到应用程序B的用户界面504中,放下和弹簧加 载补充手势识别器被添加到应用程序B的用户界面504,并且进一步创建 或添加故障依赖性,使得长按手势识别器依赖于弹簧加载手势识别器的故 障,以便识别长按手势。
[0262] 图5N示出了在将对象4和对象2拖入应用程序B的用户界面区域504 之后在抬离第一触摸时发生的图5K所示的用户界面的更新。在图5N中, 在抬离第一触摸之后,对象4和对象2被取消堆叠并定位在应用程序B的 用户界面区域504中。在一些实施方案中,一旦拖动操作(或放下操作) 已经完成并且对应的触摸已被抬离,则将自动移除用于处理触摸的补充手 势识别器,并且也移除与已移除的补充手势识别器对应的一些(或全部) 手势识别器依赖性。因此,在该示例中,图5N示出了交互标识符集合,但 是图5M中列出的补充手势识别器不再在图5N中列出,并且类似地,长按 (LP)手势识别器对图5M中所示的(补充)弹簧加载手势识别器的依赖 性在图5N中不再呈现。
[0263] 图5O表示在第二触摸(触摸2)被识别为拖动手势之后从图5I中所 示的用户界面的转变。这是第二拖动手势,其与第一触摸的第一拖动手势 无关,并且对应的触摸(触摸2)被分配不同的会话ID,例如会话ID 2, 然后是第一触摸,其在该示例中被分配会话ID 1。另外,第二触摸在被识 别为触摸手势时分离,从而使用于用户界面区域502的标准手势识别器不 必处理由(或用于)第二触摸产生的触摸事件。
[0264] 图5P表示从图5O中所示的用户界面的转变,其中第一触摸(触摸 1)和第二触摸(触摸2)在不同方向上移动,从而随着第一触摸的移动拖 动(对象4),并且随着第二触摸的移动拖动对象2。第一触摸和第二触摸 是独立的分离触摸,并且每个触摸用于拖动与另一个不同的对象或对象 集。
[0265] 图5Q表示在第一触摸(触摸1)向下移向用户界面区域504中的对象 5之后从图5E所示的用户界面的转变。作为该移动的结果,对象4现在至 少部分地定位在对象5上。在该示例中,补充弹簧加载手势识别器已被添 加到与应用程序B的一个或多个视图相关联的一组手势识别器。在一些实 施方案中,在检测到触发事件或条件时,将补充弹簧加载手势识别器添加 到应用程序B的一个或多个视图,诸如被拖动的对象(例如对象4)在能 够响应弹簧加载手势的另一个对象(例如对象5)上的移动。
[0266] 图5R表示在放置第一触摸(触摸1)之后从图5Q中所示的用户界面 的转变,或通过第一触摸拖动的对象(对象4)的放置在对象5上被识别为 弹簧加载手势。如下面更详细描述的,弹簧加载手势的识别是通过根据弹 簧加载交互ID和界面区域504中触发一个或多个补充手势识别器的添加的 触摸的存在而添加到用户界面区域504(例如,应用程序B的视图)的补 充手势识别器中的一个补充手势识别器来实现的。响应于弹簧加载手势, 打开对象5,其是文件夹对象(有时称为容器或容器对象),而对象4继续 被第一触摸(触摸1)拖动,如图5R所示。任选地,用户可继续移动第一 触摸以便将对象4拖动到对应于对象5的现在打开的文件夹中,然后在通 过第一触摸将对象4拖动到与对象5对应的打开的文件夹的内部之后通过 从触摸屏112抬离第一触摸将对象4放到该文件夹中。
[0267] 应注意,与图5N中所示的场景不同,在图5R中,第一触摸继续与触 摸屏112接触,因此仍可能发生放下操作或甚至进一步的弹簧加载操作, 并且因此放下和弹簧加载补充手势识别器继续与应用程序B的一个或多个 视图相关联。
[0268] 生成触摸的触摸事件以表示随时间的触摸。触摸具有从预定的一组阶 段中选择的阶段:用于相应触摸的触摸开始指示刚在触敏表面上检测到的 相应触摸,用于相应触摸的触摸移动指示相应触摸已经在触敏表面上移 动,用于相应触摸的触摸结束指示已停止在触敏表面上检测到相应触摸, 作为结束手势的一部分,并且用于相应触摸的触摸取消指示相应触摸已被 确定为意外触摸或已经以其他方式被识别为应忽略的触摸。在一些实施方 案中,触摸事件由一个或多个手势识别器处理,以识别由在触敏表面上检 测到的触摸执行的手势(例如,轻击、轻扫、拖动、捏合等)。在一些实 施方案中,当针对相应触摸发出触摸取消事件(即,用于(或包括)具有 等于触摸取消的阶段的触摸的触摸事件)时,基于相应触摸执行操作的应 用程序取消操作并恢复到检测到触摸之前的状态。在一些实施方案中,当 针对相应触摸检测到触摸取消操作时,正在将触摸评估为手势的一部分的 一个或多个手势识别器被取消(例如,假设触摸的取消将使得不可能满足 手势识别器使用的手势定义)。在一些实施方案中,应用程序响应于相应 触摸的触摸取消事件不同于响应于触摸结束事件。例如,以触摸取消事件 结束的轻击输入(例如,用于触摸的触摸事件,对应于轻击输入,具有触 摸取消阶段)被忽略,而以触摸结束事件(例如,用于触摸的触摸事件, 对应于轻击输入,具有触摸结束阶段)结束的轻击输入被处理为轻击。作 为另一个示例,当检测到使对象在显示器上移动的移动接触时,如果在对 象已经移动跨过显示器之后检测到具有触摸结束阶段的触摸事件,则该对 象将保持在其移动到的位置,或者(任选地)以某种惯性继续前进,相 反,如果在对象已经移动跨过显示器之后检测到具有触摸取消阶段的触摸 事件,则将对象的移动反转到在检测到移动接触之前显示对象的位置。下 面参考图6B描述在不分离触摸的情况下处理的触摸的示例。
[0269] 图6A示出了在一段时间内生成的触摸事件和拖动事件,同时触摸 (有时称为触摸输入)从用于第一应用程序(应用程序A)的用户界面区 域移动到用于第二应用程序(应用程序B)的用户界面区域。在一些实施 方案中,检测到的触摸对应于用户的手指或触笔等在电子设备的触敏表面 上的接触。在图5B、图5D和图5E中示出了触摸的此类移动的示例。如图 6A中的“触摸事件”序列所表示,在将触摸输入识别为拖动手势之前,在 最初检测到触摸时生成触摸事件。触摸事件序列表示通过一系列阶段(诸 如,开始、移动和取消)演变的触摸。当在图5B中最初检测到触摸时,触 摸在具有触摸开始阶段的触摸事件中表示;当在图5D中检测到触摸的移动 时,触摸在具有触摸移动阶段的触摸事件中表示;然后在图5D中,当触摸 被识别为拖动手势时,触摸在具有触摸取消阶段的触摸事件中表示。具有 与触摸的阶段或状态对应的触摸阶段值的触摸事件的实例被递送到应用程 序A以进行处理,例如以更新应用程序A的用户界面。在一些实施方案 中,具有等于“移动”的触摸阶段的触摸事件的多个实例可在触摸输入移 动时生成。
[0270] 当触摸输入被识别为拖动手势时,触摸事件被取消并且生成拖动事 件。取消用于应用程序A的触摸输入使得应用程序A能够反转响应于检测 到触摸而执行的任何操作(例如,当在图5D中取消触摸1时(由于将触摸 1识别为拖动手势的一部分),响应于在阈值量的时间内检测到对象4上的 触摸而显示的图5C中的菜单停止显示)并且忽略该触摸以识别由附接触摸 执行的手势为目的。在一些实施方案中,拖动事件是被标记或处理为分离 触摸的拖动事件。在一些实施方案中,递送到诸如应用程序A的应用程序 的触摸事件包括与应用程序A或应用程序A的视图相关联的触摸列表,并 且触摸列表指示针对每个列出的触摸所列出的触摸是附接的触摸(有时称 为视图附接的触摸)或是分离触摸。
[0271] 递送给应用程序A的附接触摸由与应用程序A或应用程序A的视图相 关联的标准手势识别器以及与应用程序A或应用程序A的视图相关联的任 何补充手势识别器(例如,由于与应用程序A的相应视图相关联的交互标 识符而添加到应用程序A的相应视图的手势识别器)处理。另一方面,递 送到应用程序A的分离触摸仅由与应用程序A或应用程序A的视图相关联 的补充手势识别器处理,并且不由与应用程序A或应用程序A的视图相关 联的标准手势识别器处理,并且因此被其忽略。
[0272] 与拖动事件相关联的触摸还具有一系列阶段,诸如“进入”、“在其 中”和“退出”。随着触摸移动,随着时间的推移生成拖动事件的实例, 其中拖动事件的第一实例中的触摸具有等于“进入”的阶段(有时称为触 摸阶段),并且拖动事件的后续实例中的触摸具有等于“在其中”的阶段 (例如,对应于视图或应用程序视图内的移动,有时称为用户界面区 域),并且拖动事件的最终实例中的触摸具有等于“退出”的阶段,其响 应于抬离触摸或触摸离开相应视图而生成。
[0273] 还如图6A中所示,当触摸被分离时,触摸事件将触摸标识为被取消 并且触摸被包括在对应的拖动事件中,该触摸事件将触摸识别为具有“进 入”阶段,所有这些都响应于将相应的触摸识别为拖动手势而发生。注 意,将触摸初始识别为拖动手势有时被称为拖动开始手势的识别。
[0274] 图6B类似于图6A,但是对应于附接触摸从应用程序A的用户界面区 域中的起始位置到应用程序B的用户界面区域中的结束位置的移动。由于 触摸未分离,例如因为它不被识别为拖动手势,所以仅生成触摸事件实 例,并且所有触摸事件实例被递送到应用程序A,因为附接触摸被递送到 与附接触摸的初始触摸位置相关联的应用程序或应用程序视图,即使根据 一些实施方案,触摸移动到与初始触摸位置相关联的应用程序或应用程序 视图之外。在该示例中生成的触摸事件中的触摸的阶段在最初检测到触摸 时是“开始”,在检测到触摸的移动时是“移动”,然后在检测到抬离触 摸时是“结束”。
[0275] 图6C示意性地示出了由一组过程检测到的触摸的处理:源过程(过程 A),其对应于第一应用程序诸如应用程序A;系统拖动管理过程,其在一 些实施方案中执行接触/运动模块130(图1和图3A)或接触/运动模块的一 部分;系统触摸管理过程,其对应于命中视图确定模块314(图3B);以 及目标过程,其对应于第二应用程序诸如应用程序B。如图6C所示,当检 测到一个或多个触摸并确定其执行拖动手势时,系统拖动管理过程程将开 始一个或多个触摸的会话,并且将分配给一个或多个触摸的会话ID发送到 源过程。系统拖动管理过程还将关于一个或多个触摸的信息传送给系统触 摸管理,其分离一个或多个触摸,并向源过程发送触摸取消事件或指令。 触摸取消事件或指令使得源过程的标准手势识别器转变到终端状态并停止 处理一个或多个分离触摸。另外,当一个或多个触摸移动到用于第二应用 程序的用户界面区域时,系统触摸管理将关于分离的一个或多个触摸的信 息传送到目标过程。
[0276] 图6D示出了在将任何补充手势识别器添加到用于应用程序或应用程 序的一个或多个视图的一组手势识别器之前的手势识别分级结构600-A的 示例,并且图6E示出了在已经将一个或多个补充手势识别器添加到用于应 用程序或应用程序的一个或多个视图的一组手势识别器之后的对应的手势 识别分级结构600-B的示例。在这些示例中,在添加任何补充手势识别器 之前,用于应用程序或应用程序视图的标准手势识别器(即用于应用程序 或应用程序视图的手势识别器)(例如,由应用程序本身添加到视图以支 持与应用程序的各种交互的手势识别器)包括长按手势识别器(LongPress GR),用于基于触摸的持续时间识别触摸手势(例如,用于在对象4上检 测到长按手势时触发显示菜单诸如图5C中所示的菜单),而没有实质的横 向移动,以及基于强度的手势识别器(Intensity-Based GR),用于基于满 足预定义强度阈值的触摸手势的强度来识别触摸手势(例如,用于在对象4 上检测到满足预定义强度阈值的深按手势时触发显示与对象4对应的内容 的展开视图)。在图6E所示的示例中,添加到用于应用程序的一组手势识 别器的补充手势识别器包括用于识别拖动开始手势(例如,用于检测如图 5D中所示的拖动手势,其中对象4响应于触摸1的移动而被拖动)的拖动 开始手势识别器(DragStart GR)。
[0277] 如图6D所示,手势识别分级结构600-A指示在将任何补充手势识别 器添加到用于应用程序或应用程序视图的一组手势识别器之前,长按手势 识别器是取决于基于强度的手势识别器的故障。在一些实施方案中,长按 手势识别器是取决于基于强度的手势识别器的故障的事实意味着,除非基 于强度的手势识别器未能识别基于强度的触摸输入(例如,深按),长按 手势识别器无法识别触摸输入。在一些实施方案中,长按手势识别器是取 决于基于强度的手势识别器的故障的事实意味着,当基于强度的手势识别 器识别基于强度的触摸输入(例如,深按)时,长按手势识别器无法识别 触摸输入。在基于强度的手势识别器未能识别触摸输入时,使得长按手势 识别器能够尝试识别触摸输入。在一些实施方案中,通过在长按手势识别 器的等待列表127(图3C)中列出基于强度的手势识别器来实现该依赖 性。
[0278] 如图6E所示,手势识别分级结构600-B指示在将补充手势识别器添加 到用于应用程序的一组手势识别器之后,长按手势识别器是取决于基于强 度的手势识别器和拖动开始手势识别器的故障,其中拖动开始手势识别器 是添加到用于应用程序或应用程序视图的一组手势识别器的补充手势识别 器。另外,拖动开始手势识别器是取决于基于强度的手势识别器的故障。 因此,长按手势识别器不能将触摸输入识别为长按手势,直到基于强度的 手势识别器未能识别触摸输入(例如,作为深按)并且拖动开始手势识别 器未能识别触摸输入(例如,作为拖动手势)。另外,拖动开始手势识别 器不能将触摸输入识别为拖动开始手势,直到基于强度的手势识别器未能 识别触摸输入(例如,作为深按)。在一些实施方案中,通过在长按手势 识别器的等待列表127(图3C)中列出基于强度的手势识别器和拖动开始 手势识别器,以及通过在拖动开始手势识别器的等待列表127(图3C)中 列出基于强度的手势识别器实现这些故障依赖性。
[0279] 拖放手势识别
[0280] 图7A至图7F是示出根据一些实施方案的处理由电子设备检测到的触 摸的方法700的流程图,包括确定触摸是否对应于拖动手势(有时称为拖 放手势),以及根据该确定来处理触摸。方法700是在具有显示器、触敏 表面和任选的用于检测与触敏表面的接触强度的一个或多个传感器的电子 设备(例如,图3的设备300或图1的便携式多功能设备100)处执行的。 在一些实施方案中,显示器是触摸屏显示器,并且触敏表面在显示器上或 与显示器集成。在一些实施方案中,显示器与触敏表面是分开的。方法700 中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0281] 如下所述,方法700提供了一种处理由设备检测到的触摸的直观方 式,该触摸可以是或可不是拖动手势。当用户想要将一个或多个对象从第 一应用程序视图或区域拖动到另一个应用程序视图或区域时,该方法减少 了来自用户的输入的数量、范围和/或性质,从而创建了更有效的人机界 面。对于电池供电的电子设备,使用户能够更快更有效地执行拖放操作节 省了电力并且增加了电池充电期间的时间。
[0282] 设备在其显示器上显示包括多个用户界面对象的用于第一应用程序的 用户界面(702)。在显示用于第一应用程序的用户界面时,设备在第一应 用程序处接收描述第一触摸的信息(例如,一个或多个触摸事件),在触 敏表面上的对应于第一应用程序中的多个用户界面对象中的相应用户界面 对象的位置处检测到该第一触摸(704)。例如,第一触摸可以是图5B中 所示的触摸1。
[0283] 响应于接收描述第一触摸的信息,并且根据确定(例如,通过第一应 用程序)第一触摸满足与发起相应类型的界面操作(例如,拖放操作,有 时也称为拖动操作)相关联的预定义标准(706):设备发起涉及相应用户 界面对象的相应类型的用户界面操作(例如,第一用户界面操作) (708)。
[0284] 在一些实施方案中,与发起相应类型的界面操作相关联的预定义标准 是与发起拖动操作相关联的标准,有时称为拖动标准。在一些实施方案 中,拖动标准包括当用户输入在触敏表面上保持至少预定义时间段并且检 测到的用户输入的强度在预定义时间段(例如,长按标准)期间保持在强 度阈值以下时满足的定时标准(例如,第一标准)。在一些实施方案中, 拖动标准包括当检测到的用户输入的横向位移满足(例如,符合或超过) 横向位移阈值时满足的横向位移标准(例如,第二标准)。在一些实施方 案中,拖动标准要求在满足横向位移标准之前满足定时标准(例如,对于 满足拖动标准的输入,输入必须首先满足定时标准,然后满足横向位移标 准)。
[0285] 方法700还包括,在继续在触敏表面上检测到第一触摸时并且在涉及 相应用户界面对象的用户界面操作继续时(710),在第一应用程序处接收 关于除了相应类型的界面操作(例如,拖动、放下或弹簧加载操作)之外 的用户界面操作忽略第一触摸的指令(712);并且由第一应用程序关于除 了相应类型的界面操作之外的用户界面操作忽略第一触摸(714)。例如, 由第一应用程序忽略第一触摸是通过停止第一触摸的处理来实现的,任选 地响应于触摸取消事件。因此,即使涉及用户界面对象的用户界面操作继 续,第一触摸也被视为取消的触摸。在一些实施方案中,第一应用程序停 止处理关于除了相应类型的界面操作之外的用户界面操作的第一触摸(例 如,停止接收关于其的信息)。
[0286] 在一些实施方案中,在检测第一触摸时并且在确定第一触摸满足与发 起相应类型的界面操作相关联的预定义标准之前,该方法包括使用与除了 相应类型的界面操作之外的用户界面操作相关联的一个或多个手势识别器 来处理触摸。在一些实施方案中,发起涉及相应用户界面对象的相应类型 的用户界面操作包括使用与相应类型的界面操作相关联的手势识别器来处 理触摸(例如,用于处理触敏表面上的拖动输入的拖动手势识别器)。在 一些实施方案中,存在手势识别器的多个实例。例如,使用拖动手势识别 器的实例来处理第一触摸。
[0287] 在一些实施方案中,方法700包括,在确定(例如,通过系统拖动管 理过程)第一触摸满足与发起相应类型的界面操作相关联的预定义标准之 前,将第一触摸处理为视图附接的触摸事件(720),并且根据确定第一触 摸满足与发起相应类型的界面操作相关联的预定义标准,将第一触摸处理 为分离的触摸事件(例如,通过发起相应类型的用户界面操作)(722)。 将触摸输入最初处理为视图附接的触摸事件提供触摸输入的处理的一致 性,并且使用户能够控制触摸输入所指向的视图提供用于控制用户界面的 更直观的界面。在确定触摸输入满足与特定操作相关联的预定义标准之后 将触摸输入处理为分离的触摸事件提供了处理用于执行特定操作的触摸输 入的灵活性,同时使得设备能够继续接收和处理附加触摸输入作为正常触 摸以执行附加操作。提供更一致和更直观的控制选项,同时提供一次接收 和处理多个触摸输入的灵活性,减少了执行操作所需的输入数量,增强了 设备的可操作性,并使用户设备界面更加高效(例如,通过帮助用户提供 更快地获得预期结果的输入并减少与设备进行操作/交互时的用户错误), 这另外通过使用户能够更快速和更有效地使用设备来减少电力使用并提高 设备的电池寿命。
[0288] 在一些实施方案中,方法700还包括:在确定(例如,通过系统拖动 管理过程)第一触摸满足与发起相应类型的界面操作相关联的预定义标准 之前,使用与第一应用程序相关联的一个或多个手势识别器(例如,上面 参考图5D、图5I、图5O和图6D至图6E讨论的“标准手势识别器”)将 第一触摸处理为视图附接的触摸事件(724);并且,根据确定第一用户输 入满足与发起相应类型的界面操作相关联的预定义标准(726):停止使用 与第一应用程序相关联的一个或多个手势识别器将第一触摸处理为视图附 接的触摸事件(728);并且将第一触摸处理为分离的触摸事件(730)。 例如,在一些实施方案中,使用拖动手势识别器处理分离的触摸。使用与 应用程序相关联的手势识别器处理视图附接的触摸输入,并且在确定触摸 输入满足与特定操作相关联的预定义标准之后使用那些手势识别器停止处 理触摸输入使得手势识别器可用于处理附加的触摸输入。提供处理触摸输 入的附加能力增强了设备的可操作性,并且使得用户设备界面更有效(例 如,通过帮助用户提供更快地获得预期结果的输入并减少与设备进行操作/ 交互时的用户错误),这又通过使用户能够更快速且高效地使用设备而减 少了电力使用并且延长了设备的电池寿命。
[0289] 在一些实施方案中,方法700包括检测第一触摸在与用于第一应用程 序的用户界面对应的区域之外的移动(732)。例如,如图5D和图5E所 示,第一触摸从应用程序A的用户界面区域移动到应用程序B的用户界面 区域。在此类实施方案中,方法700还包括响应于接收描述第一触摸的信 息(734),根据确定(例如,通过第一应用程序)第一触摸不满足与发起 相应类型的界面操作相关联的预定义标准(例如,第一触摸在手势的初始 部分期间未被识别为拖动操作的一部分),即使在第一触摸移动到对应于 用于第一应用程序的用户界面的区域之外并且进入对应于用于第二应用程 序的用户界面的区域之后,仍然继续向第一应用程序提供(例如,通过与 第一应用程序不同的系统过程)描述第一触摸的信息(736)。例如,在图 5I、图5J和图5K所示的示例中,即使在触摸2移动到对应于用于应用程序 A的用户界面的区域之外并且进入对应于用于应用程序B的用户界面的区 域之后,仍将继续向应用程序A提供关于触摸2的信息。
[0290] 在一些实施方案中,使用基于第一触摸的初始接触位置确定的命中视 图来处理第一触摸,而与第一触摸的移动无关(例如,即使第一触摸移动 到触敏表面上的位置,该位置与用户界面中命中视图之外的位置对应)。
[0291] 在此类实施方案中,方法700还包括,响应于接收描述第一触摸的信 息(734),根据确定第一触摸满足与发起相应类型的界面操作相关联的预 定义标准(例如,第一触摸在手势的初始部分期间被识别为拖动操作的一 部分)(738):当第一触摸在与用于第一应用程序的用户界面对应的区域 内时,向第一应用程序提供描述第一触摸的信息(例如,通过不同于第一 应用程序的系统过程)(740);并且当第一触摸移动到对应于用于第一应 用程序的用户界面的区域之外并进入对应于用于第二应用程序(例如,代 替第一应用程序)的用户界面的区域时,切换到向第二应用程序提供描述 第一触摸的信息(742)。因此,操作740和742对应于分离触摸的处理。
[0292] 在执行操作734-742的一些实施方案中,方法700包括,在检测到第 一触摸的移动时,并且根据确定第一触摸满足与发起相应类型的界面操作 相关联的预定义标准(738):确定对应于第一触摸的相应位置的一个或多 个相应区域,其中一个或多个相应区域与一个或多个相应的应用程序相关 联(744),并且在第一触摸在相应区域内时,向用于相应区域的相应的应 用程序提供描述第一触摸的信息(746)。例如,当触摸输入沿触敏表面移 动时,设备执行重复的命中区域测试以确定用于触摸输入的相应位置的相 应命中视图。在一些实施方案中,以预定义的时间间隔(触摸输入的采样 间隔)确定相应的命中视图。在一些实施方案中,预定义时间间隔以每秒 10个或更多个时间间隔的速率顺序发生。在一些实施方案中,相应的命中 视图对应于多个应用程序中的不同的应用程序,诸如图5A至图5R中的应 用程序A和应用程序B。例如,对应于第一用户输入的第一位置的第一命 中视图在第一应用程序(例如,应用程序A,图5A至图5R)中,并且对 应于第一用户输入的第二位置的第二命中视图在不同于第一应用程序的第 二应用程序(例如,应用程序B,图5A至图5R)中。
[0293] 在执行操作734-742的一些实施方案中,方法700包括,根据确定第 一触摸满足与发起相应类型的界面操作相关联的预定义标准(738),向用 于相应区域的相应的应用程序提供描述第一触摸的信息,同时提供描述不 满足与发起相应类型的界面操作相关联的预定义标准的一个或多个附加触 摸的信息(748)。例如,在一些实施方案中,关于分离的触摸(例如,第 一触摸)的信息和关于正常的、视图附接的触摸(例如,一个或多个附加 的触摸)的信息以相同的数据结构(例如,具有一个或多个触摸列表的数 据结构,其在同一处理中被接收和处理(例如,通过第一应用程序)提 供给相应的应用程序。
[0294] 在一些实施方案中,方法700还包括,当涉及相应用户界面对象的用 户界面操作继续时(例如,当拖动操作继续时,例如如图5I和图5J所 示),接收描述与第一应用程序对应的位置处的触敏表面上的第二触摸 (例如,图5I和图5J中的触摸2)的变化的信息(例如,关于一个或多个 触摸事件的信息)(750);并且响应于检测到第二触摸的变化,在不考虑 第一触摸的情况下使用与第一应用程序相关联的一个或多个手势识别器处 理描述第二触摸的变化的信息(752)。注意,可在检测到第一触摸之前、 同时或之后检测第二触摸。在此类实施方案中,第二触摸不受第一触摸的 影响,只要它不满足特殊情况标准,诸如拖动添加标准。
[0295] 在一些实施方案中,当涉及相应用户界面对象的用户界面操作继续 时,第一应用程序接收描述在对应于第一应用程序的位置处触敏表面上的 第二触摸(例如,在检测到第一触摸之前、同时或之后检测到的第二触 摸)的信息(例如,一个或多个触摸事件);并且响应于检测到第二触 摸,处理描述第二触摸的信息,而不管第一触摸是否满足与发起相应类型 的界面操作相关联的预定义标准。例如,第一应用程序处理当前和/或将来 的触摸,同时继续将第一触摸检测为拖动操作。
[0296] 在一些实施方案中,当继续在触敏表面上检测到第一触摸并且当涉及 相应用户界面对象的用户界面操作继续时(例如,当拖动操作继续时), 方法700包括在第一应用程序处接收描述与第一触摸不同的第二触摸的信 息(例如,如图5I和图5J所示,在触敏表面上与第一应用程序中的多个用 户界面对象中的第二相应用户界面对象对应的位置处检测到第二触摸;此 外,在继续检测到第一触摸的同时检测到第二触摸)(754)。在方法700的 这些实施方案中,响应于接收描述第二触摸的信息,并且根据确定(例 如,通过第一应用程序)第二触摸满足与用户界面操作相关联的预定义的 添加标准(有时在本文中称为拖动添加标准)(例如,用于将用户界面对 象添加到拖动操作的标准)(756),方法700包括在第一应用程序处接收 关于除了相应类型的界面操作(例如,拖动、放下或弹簧加载操作)之外 的用户界面操作忽略(例如,停止处理)第二触摸的指令(758);并且由 第一应用程序关于除了相应类型的界面操作之外的用户界面操作忽略第二 触摸(例如,即使涉及用户界面对象的用户界面操作诸如拖动操作继续, 也将第二触摸视为关于除了拖放操作以外的用户界面操作的取消的触摸) (760)。在一些实施方案中,方法700包括根据涉及相应用户界面对象的 用户界面操作来处理第二触摸。
[0297] 在方法700包括操作760的一些实施方案中,预定义的添加标准包括 当第一触摸(例如,对应于拖动操作)与第二触摸(例如,用于将对象添 加到拖动操作)之间的距离小于预定义的接近阈值时满足的标准(762)。 任选地,当检测到抬离第二触摸时,预定义的添加标准要求第一触摸和第 二触摸之间的距离小于预定义的接近阈值。
[0298] 如上面参考图5O和图5P简要解释的,可同时执行两个单独的拖动操 作。在一些实施方案中,方法700包括在显示用于第一应用程序的用户界 面的同时,在第一应用程序处接收描述第三触摸(例如,与第一触摸不 同)的信息(例如,一个或多个触摸事件),在触敏表面上的对应于第一 应用程序中的多个用户界面对象的第三相应用户界面对象的位置处检测到 该第三触摸(764)。在此类实施方案中,方法700还包括,响应于接收到 描述第三触摸的信息,并且根据确定(例如,通过第一应用程序)第三触 摸满足与发起相应类型的界面操作(例如,拖动、放下或弹簧加载)相关 联的预定义标准:发起涉及第三相应用户界面对象的相应类型的第二用户 界面操作(例如,与(第一)用户界面操作不同)(768)。
[0299] 此外,方法700的此类方案包括,当在触敏表面上继续检测到第三触 摸并且当涉及第三相应用户界面对象的第二用户界面操作继续时(770): 在第一应用程序处接收关于除了相应类型的界面操作(例如,拖动、放下 或弹簧加载)之外的用户界面操作忽略(例如,停止处理触摸取消事件, 任选地响应于触摸取消事件)第三触摸的指令(772);并且由第一应用程 序关于除了相应类型的界面操作之外的用户界面操作忽略第三触摸 (774)。例如,即使涉及第三用户界面对象的用户界面操作继续,第三触 摸也被视为取消的触摸。在一些实施方案中,在检测到第一触摸时检测到 第三触摸。在一些实施方案中,第二用户界面操作(例如,第二拖动操 作)与第一用户界面操作(例如,第一拖动操作)不同,如图5O和图5P 所示,其中同时执行两个单独的拖动操作。
[0300] 在一些实施方案中,方法700包括,响应于接收到描述第一触摸的信 息,由第一应用程序确定第一触摸是否满足与发起相应类型的界面操作相 关联的预定义标准(776)。例如,方法700任选地包括确定是否满足与相 应的手势识别器相关联的手势识别标准。在一些实施方案中,系统过程或 第一应用程序确定是否应该分离触摸。例如,参考图5B、图5C和图5D, 可确定触摸(例如,最初在图5B中接收的触摸1)满足拖动开始标准,在 这种情况下触摸被分离,如图5D所示,或者不满足拖动开始标准,在这种 情况下,触摸被处理为附接触摸,如图5C所示。如图6C所示,在一些实 施方案中,通过系统过程诸如系统触摸管理过程确定是否分离触摸,该系 统过程对应于命中视图确定模块314(图3B)。另选地,通过具有与触摸 的初始位置对应的用户界面区域的应用程序来确定是否分离触摸。
[0301] 在一些实施方案中,在第一应用程序处接收的关于除了相应类型的界 面操作之外的用户界面操作忽略第一触摸的指令包括触摸取消事件 (778)。例如,请参见图6A中所示的触摸取消事件以及上面的相关讨 论。在一些实施方案中,方法700包括向多个应用程序发送关于除了相应 类型的用户界面操作之外的用户界面操作忽略第一触摸的指令,该多个应 用程序包括第一应用程序(例如,当前正在监视(“收听”)第一触摸的 任何应用程序),其正在接收或已经接收到描述第一触摸的信息。在一些 实施方案中,多个应用程序包括主屏幕应用程序(有时称为 “SpringBoard”),其甚至在主屏幕应用程序未被主动显示时监视触摸。
[0302] 在一些实施方案中,方法700包括响应于接收到触摸取消事件,放弃 除相应类型的界面操作之外的用户界面操作(例如,涉及相应用户界面对 象的用户界面操作)的执行,以及未能将第一触摸识别(例如,停止尝试 识别或取消尝试识别)为除了与相应类型的界面操作相关联的预定义手势 集合中的一个手势之外的手势(780)。例如,方法700任选地取消或反转 用户界面行为,诸如与除了拖放操作之外的操作相关联的对象变换和/或动 画,并且任选地将用于除与拖放相关的手势之外的手势的手势识别器设置 为取消状态(或其他终端状态),而不是“手势可能”状态。
[0303] 在方法700的一些实施方案中,发起涉及相应用户界面对象的相应类 型的用户界面操作(例如,用于拖动相应用户界面对象的拖动操作) (708)包括向第一应用程序提供标识相应类型的用户界面操作和相应用户 界面对象的唯一会话标识符(782)。例如,在图5D中,会话标识符已分 配给触摸(触摸1),这将发起涉及对象4的拖动操作,对象4是用于应用 程序A的用户界面502中的用户界面对象。在一些实施方案中,会话标识 符(有时称为“会话ID”)识别拖动操作以及拖动操作中涉及的内容(被 拖动)。在一些实施方案中,每个拖动操作具有唯一的会话标识符(例 如,可基于它们相应的会话标识符来区分并发但不同的拖动操作)。例 如,如图5O和图5P所示,正在执行两个单独的拖动操作,并且每个拖动 操作都被分配不同的会话ID。
[0304] 在方法700的一些实施方案中,唯一会话标识符与关于拖动操作的附 加信息相关联,该附加信息包括以下中的一者或多者:在相应类型的用户 界面操作中涉及的包括相应的用户界面对象的用户界面对象的总数,以及 相应类型的用户界面操作中涉及的用户界面对象的一个或多个内容类型 (784)。例如,在一些实施方案中,唯一会话标识符包括附加信息,或者 唯一会话标识符可用于从系统拖动管理过程或拖动操作所源自的应用程序 检索信息。在一些实施方案中,如果多个拖动操作同时进行,则不同的拖 动操作具有不同的标识符,使得可独立地跟踪拖动操作。
[0305] 在方法700的一些实施方案中,相应类型的用户界面操作具有相关联 的操作阶段值,其描述用户界面操作的当前阶段,并且阶段值选自由以下 各项组成的组:退出、进入和在其中(786)。上面参考图6A讨论了拖动 事件中的触摸的阶段值。
[0306] 应当理解,对图7A至图7F中已进行描述的操作的具体次序仅仅是示 例性的,并非旨在表明所述次序是可以执行这些操作的唯一次序。本领域 的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另 外,应当注意,本文关于本文所述的其他方法(例如,方法800和方法 900)描述的其他过程的细节同样以类似的方式适用于上文参考图7A至图 7F描述的方法700。例如,下面参考方法800描述的交互标识符与不同视 图相关联以确定哪些补充手势识别器添加到相应视图以及下面参考方法900 描述的手势识别故障依赖性的使用也可以类似于方法700的方式适用。为 了简明起见,此处不再重复这些细节。
[0307] 上述信息处理方法中的操作任选地通过运行信息处理装置中的一个或 多个功能模块来实现,该信息处理装置诸如为通用处理器(例如,如以上 参考图1和图3A所描述的)或专用芯片。
[0308] 以上参考图7A至图7F描述的操作任选地由图1或图3A中描绘的部 件实现。例如,发起用户界面操作诸如拖动操作或弹簧加载操作,以及方 法700的许多其他操作任选地由接触/运动模块130或其事件识别器模块 312实现。
[0309] 添加补充手势识别器
[0310] 图8A至图8E是示出处理由电子设备检测到的触摸的方法800的流程 图,包括将补充手势识别器添加到应用程序的视图,以便为操作诸如拖动 操作提供专门的处理。方法800在具有显示器、触敏表面和任选的一个或 多个传感器的电子设备(例如,图3中的设备
300或图1中的便携式多功 能设备100)处执行以检测与触敏表面接触的强度。在一些实施方案中,显 示器是触摸屏显示器,并且触敏表面在显示器上或与显示器集成。在一些 实施方案中,显示器与触敏表面是分开的。方法800中的一些操作任选地 被组合,并且/或者一些操作的顺序任选地被改变。
[0311] 如下所述,方法800提供了一种处理由设备检测到的触摸的直观方 式,该触摸可以是或可不是拖动手势。该方法通过触摸手势和其他用户输 入减少了施加在电子设备上的计算负荷,提高了设备响应性,从而减少了 延迟。减少响应于触摸输入的延迟还减少了用户的错误输入,诸如用户在 等待设备响应用户的早期输入时所做的重复或修改的触摸输入。例如,当 用户想要将一个或多个对象从第一应用程序视图或区域拖动到另一个应用 程序视图或区域时,这种改进减少了来自用户的输入的数量、范围和/或性 质,从而创建了更有效的人机界面。对于电池供电的电子设备,使用户能 够更快更有效地执行拖放操作节省了电力并且增加了电池充电期间的时 间。
[0312] 设备在其显示器上显示包括多个视图的用户界面,该多个视图包括第 一视图和第二视图,该第一视图与用于处理指向第一视图的触摸输入的第 一组一个或多个标准手势识别器相关联,第二视图与用于处理指向第二视 图的触摸输入的第二组一个或多个标准手势识别器相关联。多个视图中的 一个或多个视图(例如,第一视图和/或第二视图)与指示第一组一个或多 个补充手势识别器可添加到对应的视图(例如,通过应用程序独立模块) 的第一交互标识符(例如,拖动、放下或弹簧加载交互标识符)相关联 (802)。
[0313] 如图5A至图5R所示,多个视图可包括用于应用程序A的用户界面区 域502和用于应用程序B的用户界面区域504。图5A至图5R中的许多指 示与应用程序A的视图(例如,界面区域502)或应用程序B的视图(例 如,界面区域504)相关联的交互标识符集合的示例。虽然这些示例示出了 两个视图与拖动、放下和弹簧加载交互标识符相关联,但是在一些实施方 案或情况下,与图5A至图5R中显示的示例相比,一些视图可与较少的交 互标识符(例如,仅拖放交互标识符或这些交互标识符中没有一个)相关 联,此外,一些视图可与附加的交互标识符(例如,用于与特定多点触摸 手势相关联的附加类型的操作的交互标识符)相关联。
[0314] 图3B示出了用于相应的应用程序视图317-2的视图元数据341包括交 互标识符347。此外,多个视图317的每个视图的视图元数据341具有其自 己的交互标识符集合。在一些实施方案中,与特定视图相关联的交互标识 符是指示预定义的交互标识符集合的哪些交互标识符与该特定视图相关联 (例如,分配给该特定视图)的标记值。在一些其他实施方案中,与特定 视图相关联的交互标识符是标识符值(例如,字母数字或多位值),并且 为该特定视图存储的交互标识符集合指示哪些交互标识符与该特定视图相 关联(例如,分配给该特定视图)。当应用程序具有多个视图时,通常情 况下,每个视图可与对应的交互标识符集合相关联,并且一些视图可具有 与视图中的其他视图不同的相关联的交互标识符集合。
[0315] 在一些实施方案中,可能的交互(例如,交互的类型)包括拖动交互 (例如,可在用户界面上拾取和拖动来自视图的对象)、放下交互(例 如,跨用户界面拖动的对象可放到视图上)和弹簧加载交互(例如,在跨 过用户界面拖动对象时,悬停在视图的图标上可使得该视图打开;在另一 个示例中,如果应用程序图标视图支持弹簧加载交互,则悬停在主屏幕上 的应用程序图标上可使得应用程序自身打开;在另一个示例中,悬停在文 件夹图标上可使得文件夹打开;并且在又一个示例中,悬停在对象上可使 得对象的控件或与对象相关联的控件被激活或去激活(例如,通过在已经 满足预定义的弹簧加载标准时切换控件的状态)。
[0316] 继续方法800的说明,方法800还包括经由触敏表面检测触敏表面上 与多个视图的相应视图对应的位置处的触摸输入(804);并且响应于经由 触敏表面检测到触摸输入(806):并且(在继续检测到触摸输入时)根据 确定触摸输入满足补充手势识别器添加标准,其中补充手势识别器添加标 准包括当相应视图具有第一交互标识时满足的标准(808):将与第一交互 标识相关联的第一组一个或多个补充手势识别器添加到相应视图(810); 利用一个或多个补充手势识别器和与相应视图相关联的一个或多个标准手 势识别器来处理触摸输入(812)。在一些实施方案中,基于确定视图中的 对象是否支持特定交互(由用于相应视图的拖动、放下或弹簧加载交互标 识符确定),通过系统将一个或多个补充手势识别器附接到正在运行的相 应视图或与其相关联。
[0317] 方法800还包括,响应于检测到触摸输入(806),根据确定触摸输入 不满足补充手势识别器添加标准,处理在相应视图处的触摸输入(例如, 利用与相应视图相关联的一个或多个标准手势识别器或利用与其他交互标 识符相关联的一个或多个补充手势识别器),而不将与第一交互标识符相 关联的第一组一个或多个补充手势识别器添加到相应视图(814)。
[0318] 在一些实施方案中,方法800包括检测触摸输入序列,其包括满足补 充手势识别器添加标准的第一触摸输入,并且包括不满足补充手势识别器 添加标准的在第一触摸输入之后接收到的第二触摸输入。根据前述添加 (第一组一个或多个补充手势识别器)(810)和处理(利用第一组一个或 多个补充手势识别器)(812)操作来处理第一触摸输入,而根据前述处理 (814)来处理第二触摸输入(不添加第一组一个或多个补充手势识别 器)。在一些实施方案中,视图接收触摸事件,并且确定视图是否支持与 触摸事件相关联的交互(例如,拖动交互、放下交互或弹簧加载交互)。 在一些实施方案中,视图的相应交互标识符指定视图是否支持相应的交 互。例如,视图接收触摸事件。如果视图具有拖动交互标识符,指示视图 允许添加拖动手势识别器(例如,通过独立于应用程序的模块,诸如系统 拖动管理过程)并且视图支持拖动交互,则拖动手势识别器被启动并添加 到视图(例如,结合接收触摸事件的视图)。在另一个示例中,视图接收 拖动输入事件。如果视图具有放下交互标识符,则启动放下手势识别器并 将其添加到视图。在一些实施方案中,如果视图具有弹簧加载交互标识 符,则启动弹簧加载手势识别器并将其添加到视图。在一些实施方案中, 单个交互标识符可用于指定视图支持的多个交互(例如,单个交互标识符 可指定视图支持放下交互和弹簧加载交互)。
[0319] 在方法800的一些实施方案中,补充手势识别器添加标准包括当触摸 输入是预定类型的触摸输入时满足的标准(例如,触摸开始进行拖动交 互,或者分离的触摸输入以进行弹簧加载交互或放下交互)(820)。
[0320] 在方法800的一些实施方案中,预定类型的触摸输入是进入相应视图 的分离的触摸(822)。例如,图5D和图5E示出了进入应用程序B的视 图,界面区域504的触摸输入(触摸1);图6A示出了对应的事件是具有 阶段值“进入”的拖动事件中的触摸(或触摸输入)的拖动事件;图6C示 出了进入应用程序B的视图的触摸输入导致系统触摸管理过程分离触摸, 因此当触摸输入(触摸1)进入应用程序B的视图时,视图接收分离的触 摸。
[0321] 在一些实施方案中,方法800还包括检测触摸输入在相应视图之外的 移动(824),并且响应于检测触摸输入在相应视图之外的移动,并且根据 确定触摸输入是退出相应视图的分离的触摸(826):从相应视图移除与第 一交互标识符相关联的第一组一个或多个补充手势识别器(828)。例如, 当触摸输入满足补充手势识别器移除标准时,执行移除一个或多个补充手 势识别器,其中补充手势识别器移除标准包括当触摸输入是退出相应视图 的预定类型的触摸输入诸如分离的触摸时满足的标准。通过避免使用不再 需要处理此类输入的手势识别器来处理触摸输入,当满足补充手势识别器 移除标准时移除一个或多个补充手势识别器使得电子设备更有效,从而响 应于触摸输入减少延迟。此外,减少响应于触摸输入的延迟减少了用户的 错误输入,诸如用户在等待设备响应用户的早期输入时所做的重复或修改 的触摸输入。
[0322] 在方法800的一些实施方案中,或者在一些情况下,触摸输入对应于 拖动交互(830)。例如,拖动交互是一种交互,其中来自视图的对象被拾 取并且在一个或多个应用程序的用户界面上拖动。
[0323] 在方法800的一些实施方案中,第一交互标识符是拖动交互标识符 (832)。此外,第一组一个或多个补充手势识别器包括拖动开始手势识别 器,其包括,为了识别拖动开始手势:要求触摸输入的位置对应于相应视 图持续至少预定义的时间段;并且要求在触摸输入的位置对应于相应视图 的位置持续至少预定义的时间段之后,触摸输入的位置变化满足横向位移 阈值(例如,在继续检测触摸输入的同时)(834)。
[0324] 在一些此类实施方案中(如上面关于832和834所述),方法800还 包括,响应于拖动开始手势的识别,设备(例如,系统拖动管理过程或应 用程序)在用户界面中执行指示拖动操作已经开始的拖动开始动作 (836)。例如,拖动开始动作(836)的执行可包括根据接触的移动而移 动用户界面对象,和/或动画化用户界面对象的外观的变化,例如,给出用 户界面对象已从显示的用户界面在z方向上提升的外观。
[0325] 在一些实施方案中,拖动开始手势识别器包括以下要求中的一者或多 者,以便触摸输入满足预定义的拖动开始标准:
[0326] 1)当触摸输入在触敏表面上保持至少预定义时间段时满足的定时标 准;
[0327] 2)当检测到的用户输入强度在预定义时间段期间保持低于强度阈值 时满足的强度要求(有时称为长按标准);
[0328] 3)当检测到的用户输入的横向位移满足(例如,满足或超过)横向 位移阈值时满足的横向位移标准;
[0329] 4)要求在横向位移标准之前满足定时标准(例如,对于满足拖动标 准的输入,输入必须首先满足定时标准,然后满足位移标准); 并且/或者
[0330] 5)要求触摸输入包括单个接触,或者要求触摸输入包括在触敏表面 上的两个并发接触(例如,同时检测到的两个不同接触)。
[0331] 本领域普通技术人员将容易理解,拖动手势识别器可包括前述要求的 其他组合(例如,具有定时要求和横向位移要求的单个接触,或具有横向 位移要求但没有定时要求的两个接触,或各种其他此类组合)。
[0332] 在方法800的一些实施方案中,第一交互标识符是拖动交互标识符 (832)。此外,第一组一个或多个补充手势识别器包括拖动添加手势识别 器,其包括要求触摸输入包括一个或多个接触(例如,单个接触或同时检 测到的两个不同接触),它们的位置对应于相应的视图,以便识别拖动添 加手势(838);并且响应于拖动添加手势的识别,设备在用户界面中执行 拖动添加开始动作,该拖动添加开始动作指示拖动添加操作已经开始 (840)。
[0333] 在一些实施方案中,拖动添加手势识别器包括要求触摸输入包括两个 并发接触以及要求在预定义的时间段内停止检测到两个并发接触(例如, 两指轻击手势)。在一些实施方案中,拖动添加手势识别器包括要求触摸 输入的位置对应于相应视图持续至少预定义时间段。在一些其他实施方案 中,拖动添加手势识别器包括要求触摸输入包括一个或两个并发接触,在 预定义的时间段内停止检测(例如,一个或两个手指轻击手势),以及要 求一个或两个并发接触发生在已被识别为拖动手势的先前触摸输入的预定 义距离内,或者在拖动操作中被先前触摸输入拖动的对象的预定义距离 内。在一些实施方案中,拖动开始动作包括使用户界面对象动画化(例 如,对应于触摸输入),就好像用户界面对象已经从显示的用户界面在z 方向上被提升一样。
[0334] 在方法800的一些实施方案中,触摸输入对应于放下交互(850)。在 一些实施方案中,当已经使用被识别为拖动手势的触摸输入在一个或多个 应用程序的用户界面上拖动的对象被放到视图上时,发生放下交互。以上 参考图5Q和图5R讨论了放下交互的示例。
[0335] 在方法800的一些实施方案中,其中触摸输入对应于放下交互 (850),第一交互标识符是放下交互标识符(852),并且第一组一个或 多个补充手势识别器包括放下手势识别器,其包括要求当停止检测到触摸 输入时触摸输入的位置对应于相应视图(854)。在此类实施方案中,如关 于852和854所描述的,方法800包括,响应于放下手势的识别,设备在 用户界面中执行指示放下操作已经开始的放下动作(856)。任选地,放下 动作包括动画化用户界面对象(例如,被触摸输入拖动的对象),就好像 用户界面对象已经从显示的用户界面上方在z方向上降低到显示的用户界 面中(858)。
[0336] 在方法800的一些实施方案中,触摸输入对应于弹簧加载交互 (860)。在一些实施方案中,在将对象在用户界面上拖动之后,发生弹簧 加载交互,将拖动的对象悬停在视图的图标上,这使得该视图打开。在弹 簧加载交互的另一个示例中,如果应用程序图标视图支持弹簧加载交互, 则将拖动的对象悬停在主屏幕上的应用程序图标上导致应用程序自身打 开。在弹簧加载交互的另一个示例中,将拖动的对象悬停在文件夹图标上 导致文件夹打开并且显示打开的文件夹的新视图。并且在又一个示例中, 将拖动的对象悬停在对象上导致对象的控件或与对象相关联的控件被激活 或去激活(例如,通过在已经满足预定义的弹簧加载标准时切换控件的状 态)。
[0337] 在方法800的一些实施方案中,其中触摸输入对应于弹簧加载交互 (860),第一交互标识符是弹簧加载交互标识符(862),并且第一组一 个或多个补充手势识别器包括弹簧加载手势识别器,其包括要求触摸输入 的位置对应于相应视图持续至少预定义时间段,以便识别弹簧加载手势 (864)。在此类实施方案中,方法800还包括,响应于弹簧加载手势的识 别(866),应用程序执行弹簧加载动作,其包括以下中的一者或多者:激 活控件(例如,对应于视图的控件),好像已经选择了控件(例如,轻击 或点击),以及打开可存储内容的容器(例如,文件夹或相册)(868)。 例如,图5Q和图5R示出了弹簧加载动作(有时称为弹簧加载操作)的示 例,其中通过拖动第一对象的触摸输入(触摸1),第一对象(对象4)在 容器对象(也称为文件夹)(对象5)上移动。一旦识别出弹簧加载手势, 就打开容器对象(对象5),并显示其内容(图5R)。
[0338] 在方法800的一些实施方案中,弹簧加载手势识别器还包括要求在触 敏表面上的触摸输入的速度低于预定义速度阈值(870)。例如,在图5Q 所示的示例中,拖动对象(对象4)的触摸输入(触摸1)具有等于或接近 零的速度,基本上悬停在对象5上,同时用户等待对象5响应于弹簧加载 手势而打开。
[0339] 在方法800的一些实施方案中,其中输入对应于弹簧加载交互(例 如,其中860-870可操作),方法800包括,根据确定在触敏表面上的触摸 输入的速度满足预定义的速度阈值,改变相应视图的外观(872)。例如, 改变相应视图的外观包括在识别弹簧加载手势之前或在执行弹簧加载操作 之前显示相应视图支持弹簧加载交互的指示(例如,触摸输入悬停在其上 的对象的动画,或者对象的外边界或周边的颜色或厚度的变化,或对象的 背景颜色或模糊或其他显示特性的变化)。在一些实施方案中,作为外观 变化的结果,相应视图以其紧接先前的视觉外观的第一变换显示。
[0340] 在方法800的一些实施方案中,与相应视图相关联的一组一个或多个 标准手势识别器通过包括相应视图的应用程序与相应视图相关联,并且第 一组一个或多个补充手势识别器通过系统过程(例如,系统拖动管理过 程)添加到相应视图(872)。例如,应用程序指定与相应视图相关联的标 准手势识别器,而系统过程根据与相应视图相关联的活动标识符和与那些 活动标识符相关联的相应的触发条件的满足或另选的与一组补充手势识别 器相关联的触发条件的满足指定将补充手势识别器添加到相应视图,该一 组补充手势识别器对应于用于相应视图的活动标识符中的每个活动标识 符。
[0341] 在方法800的一些实施方案中,方法800包括经由触敏表面检测在触 敏表面上对应于相应视图的第二位置处的第二触摸输入(884);响应于经 由触敏表面检测到第二触摸输入(886):根据确定第二触摸输入满足补充 手势识别器添加标准,其中补充手势识别器添加标准包括当相应视图具有 第一交互标识符时满足的标准(888):将与第一交互标识符相关联的第一 组一个或多个补充手势识别器的实例添加到相应视图(890);以及利用一 个或多个补充手势识别器的实例和与相应视图相关联的一个或多个标准手 势识别器来处理第二触摸输入(892)。例如,当其满足补充手势识别器添 加标准时在第一触摸输入上执行的相同组的操作关于其满足补充手势识别 器添加标准时的第二触摸输入执行。如上所述,在一些实施方案中,单独 的会话标识符与两个触摸输入中的每个触摸输入相关联或分配给两个触摸 输入中的每个触摸输入,例如如上面参考图5O和图5P所讨论的。
[0342] 应当理解,对图8A至图8E中已进行描述的操作的具体次序仅仅是示 例性的,并非旨在表明所述次序是可以执行这些操作的唯一次序。本领域 的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另 外,应当指出的是,本文参考本文所述的其他方法(例如,方法700和 900)所述的其他过程的细节同样以类似的方式适用于上文参考图8A至图 8E所述的方法800。例如,将满足预定义标准的触摸输入处理为分离触 摸,使用自动添加的补充手势识别器来识别上面参考方法700描述的拖 动、放下和弹簧加载手势,以及使用下面参考方法900描述的手势识别故 障依赖性也可以类似于方法800的方式适用。
为了简明起见,此处不再重 复这些细节。
[0343] 上述信息处理方法中的操作任选地通过运行信息处理装置中的一个或 多个功能模块来实现,该信息处理装置诸如为通用处理器(例如,如以上 参考图1和图3A所描述的)或专用芯片。
[0344] 以上参考图8A至图8E描述的操作任选地由图1或图3A中描绘的部 件实现。例如,发起用户界面操作诸如拖动操作或弹簧加载操作,以及方 法800的许多其他操作任选地由接触/运动模块130或其事件识别器模块 312实现。
[0345] 自动建立手势识别器之间的故障依赖性
[0346] 图9A至图9D是示出处理由电子设备检测到的触摸的方法900的流程 图,包括在一个或多个补充手势识别器和一个或多个标准手势识别器之间 建立故障要求,该一个或多个补充手势识别器为操作诸如拖动操作提供专 门处理,该一个或多个标准手势识别器由应用程序建立,用于处理应用程 序的一个或多个视图中的触摸输入。方法900在具有显示器、触敏表面和 任选的一个或多个传感器的电子设备(例如,图3中的设备300或图1中 的便携式多功能设备100)处执行以检测与触敏表面的接触强度。在一些实 施方案中,显示器是触摸屏显示器,并且触敏表面在显示器上或与显示器 集成。在一些实施方案中,显示器与触敏表面是分开的。方法900中的一 些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0347] 如下所述,方法900提供了一种处理由设备检测到的触摸的直观方 式,该触摸可以是或可不是拖动手势。该方法通过触摸手势和其他用户输 入减少了施加在电子设备上的计算负荷,提高了设备响应性,从而减少了 用户的延迟和错误输入。例如,当用户想要将一个或多个对象从第一应用 程序视图或区域拖动到另一个应用程序视图或区域时,这种改进减少了来 自用户的输入的数量、范围和/或性质,从而创建了更有效的人机界面。对 于电池供电的电子设备,使用户能够更快更有效地执行拖放操作节省了电 力并且增加了电池充电期间的时间。
[0348] 设备在其显示器上显示应用程序的用户界面(902),并且在显示应用 程序的用户界面时,检测对应于与多个手势识别器相关联的应用程序的用 户界面的一部分的用户输入(例如,触摸输入),其中:多个手势识别器 中的第一组一个或多个第一标准手势识别器通过应用程序与用户界面的部 分相关联(例如,分配给用户界面的部分);多个手势识别器中的第二组 一个或多个补充手势识别器通过系统过程(例如,独立于应用程序的过 程)与用户界面的该部分相关联(例如,分配给该部分);并且涉及第一 标准手势识别器(例如,在第一组一个或多个标准手势识别器中)和第一 补充手势识别器(例如,在第二组一个或多个补充手势识别器中)的第一 故障要求通过系统过程(例如,应用程序独立过程)与用户界面的部分相 关联(例如,分配给用户界面的部分)(904)。方法900还包括,响应于 检测到用户输入,根据第一标准手势识别器、第一补充手势识别器和第一 故障要求处理用户输入(906)。如上面参考图6D和图6E所讨论的,手势 识别器之间的故障要求可由手势识别分级结构诸如分级结构600-A或600-B 表示。
[0349] 在方法900的一些实施方案中,第一组一个或多个(例如,应用程序 指定的)标准手势识别器和第二组一个或多个(例如,系统过程指定的) 手势识别器被布置成手势识别分级结构,并且第一故障要求包括要求第一 相应手势识别器出故障,以便第二相应手势识别器成功识别手势,其中第 一相应手势识别器在手势识别分级结构中处于比第二相应手势识别器更高 的级别(908)。例如,参考图6E中所示的示例,第一相应手势识别器 (例如,基于强度的手势识别器)是手势识别分级结构600-B中的第二相 应手势识别器(例如,长按手势识别器)的父级,或者换言之,第二相应 手势识别器(例如,长按手势识别器)是手势识别分级结构600-B中的第 一相应手势识别器(基于强度的手势识别器)的子级。
[0350] 在一些实施方案中,可将一个或多个手势识别器(例如,系统过程指 定的手势识别器)插入到现有的一组手势识别器(例如,应用程序指定的 手势识别器)的手势识别分级结构中。例如,从图6D的手势识别分级结构 600-A到图6E的手势识别分级结构60-B的转变是由拖动开始手势识别器插 入到图6D的手势识别分级结构600-A中引起的。在一些实施方案中,手势 识别器可以高于分级结构中的现有手势识别器的级别添加到手势识别分级 结构(例如,拖动开始手势识别器以高于长按手势识别器的级别被插 入),使得使用现有手势识别器处理相应的用户输入要求添加的手势识别 器无法识别相应的用户输入(例如,在图6E所示的场景中,拖动开始手势 识别器必须出故障,以便长按手势识别器识别相应的用户输入)。
[0351] 在一些实施方案中,可以两个现有手势识别器之间的级别将手势识别 器添加到(例如,插入到)手势识别分级结构中。例如,关于不包括拖动 开始手势识别器的手势识别分级结构(例如,在将拖动开始手势识别器添 加到手势识别分级结构之前),处理长按手势需要确定基于强度的手势识 别器无法识别手势。在一些实施方案中,如图6E所示,拖动开始手势识别 器被添加到基于强度的手势识别器和长按手势识别器之间的分级结构(例 如,长按手势识别器低于拖动开始手势识别器,拖动开始手势识别器反过 来低于基于强度的手势识别器)。在一些此类实施方案中(例如,在将拖 动开始手势识别器添加到手势识别分级结构之后),处理长按手势需要确 定基于强度的手势识别器,然后拖动开始手势识别器,都未能识别用户输 入(例如,用户输入既不对应于基于强度的手势也不对应于拖动开始手 势)。在一些实施方案中,可以低于分级结构中的现有手势识别器的级别 将手势识别器添加到手势识别分级结构,使得使用添加的手势识别器处理 相应的用户输入要求现有的手势识别器不能识别相应的用户输入(例如, 处理拖动开始手势要求基于强度的手势识别器未能识别用户输入)。
[0352] 在方法900的一些实施方案中,第一故障要求包括要求第一补充手势 识别器未能识别用户输入(例如,触摸输入),以便使第一标准手势识别 器成功识别手势(910)。例如,在图6E所示的示例中,拖动开始手势识 别器必须出故障才能使长按手势识别器成功。在图6E中未示出的另一个示 例中,拖动添加手势识别器必须出故障以便使轻击手势识别器成功。
[0353] 在方法900的一些实施方案中,第一补充手势识别器是拖动添加手势 识别器,并且第一标准手势识别器是轻击手势识别器。例如,参见图6E。
[0354] 在方法900的一些实施方案中,为了识别拖动添加手势,拖动添加手 势识别器包括要求用户输入包括在与用户界面中的相应用户界面元素对应 的位置处的接触,以及在预定义的时间段内抬离接触(例如,图5L中的 T4)(914)。例如,在此类实施方案中,被识别为拖动添加手势的用户输 入包括与轻击手势相同的元素。在一些实施方案中,拖动添加手势识别器 还包括要求用户输入包括第二接触(例如,与拖动操作对应的接触)。在 一些实施方案中,拖动添加手势识别器还包括要求接触和第二接触之间的 距离小于预定义的接近阈值。例如,使用“轻击”(例如,具有抬离的接 触)将相应的用户界面元素添加到正在进行的拖动操作(例如,第二接 触)。任选地,将相应的用户界面元素添加到“附近的”正在进行的拖动 操作(例如,在接近阈值内)。例如,图5I、图5L的序列示出了由对象2 上的第二触摸(触摸2)执行的拖动添加手势,这导致将对象2添加到对应 于第一触摸(触摸1)的拖动操作。在图5I和图5L中,时间t2对应于第一 次检测到第二触摸的时间,并且T4对应于前述预定义时间段,其是(或对 应于)拖动添加手势的最大持续时间。
[0355] 在方法900的一些实施方案中,根据第一标准手势识别器、第一补充 手势识别器和第一故障要求处理用户输入包括(916):根据确定(例如, 通过系统过程)与相应用户界面元素相关联的内容(例如,相应用户界面 元素的内容或由相应用户界面元素表示的内容)不能被添加到拖动操作, 未能使用拖动添加手势识别器识别用户输入,以及使用轻击手势识别器处 理用户输入(918);并且根据确定能够将与相应用户界面元素相关联的内 容添加到拖动操作,识别拖动添加手势并将内容添加到拖动操作(920)。 在一些实施方案中,为了做出该确定,系统过程查询应用程序以确定应用 程序是否支持将内容(例如,与相应用户界面元素相关联的内容)添加到 拖动操作(例如,包括相应的用户界面元素的应用程序或应用程序视图是 否支持拖动交互)。
[0356] 在方法900的一些实施方案中,第一补充手势识别器是拖动开始手势 识别器,并且第一标准手势识别器是长按手势识别器(922)。此类实施方 案由以上参考图6E讨论的手势识别器分级结构表示,或至少与其一致。
[0357] 在方法900的一些实施方案中,根据确定设备满足紧凑显示标准来执 行根据第一标准手势识别器、第一补充手势识别器和第一故障要求处理用 户输入。例如,如果设备(例如,智能电话)具有低于预定义阈值的显示 尺寸,则拖动开始手势识别器必须在长按手势识别器可识别手势之前出故 障。
[0358] 在方法900的一些实施方案中,根据确定设备(例如,平板计算机) 不满足紧凑显示标准(926),第一故障要求包括要求根据通过第一补充手 势识别器将用户输入成功识别为第二手势(例如,拖动开始),取消(例 如,随后忽略)通过第一标准手势识别器将用户输入成功识别为第一手势 (例如,长按)(928)。在此类实施方案中,根据第一标准手势识别器、 第一补充手势识别器和第一故障要求处理(参见906)用户输入包括:使用 标准手势识别器将用户输入识别为第一手势(例如,长按手势)(932), 并且在使用标准手势识别器将用户输入识别为第一手势之后(934):使用 补充手势识别器将用户输入识别为第二手势(例如,拖动开始手势) (936),并且停止使用标准手势识别器将用户输入识别为第一手势(例 如,取消第一(长按)手势)(938)。
[0359] 在一些实施方案中,使用标准手势识别器将用户输入识别为第一手势 (例如,长按手势)(932)包括,如图5C所示,在与第一手势相关联的 用户界面中执行操作,诸如响应于识别长按手势而显示选项的菜单。在一 些实施方案中,使用标准手势识别器停止将用户输入识别为第一手势(938)任选地但是通常包括停止执行与第一手势相关联的操作。例如,在 图5C所示的示例中,停止执行与第一手势相关联的操作包括响应于识别长 按手势而停止显示所显示的选项菜单(参见图5C)(例如,停止显示在从 图5C到图5D的转变)。此外,在一些实施方案中,使用补充手势识别器 将用户输入识别为第二手势(例如,拖动开始手势)(936)包括在与第二 手势相关联的用户界面中执行操作,诸如响应于识别拖动开始手势,显示 从用户界面在z方向上提升的用户界面对象的动画,以指示拖动会话的开 始。
[0360] 在方法900的一些实施方案中,第一故障要求包括要求第一标准手势 识别器出故障以便第一补充手势识别器成功识别手势(例如,基于强度的 手势识别器必须出故障以使拖动开始手势识别器成功,如图6E的手势识别 器分级结构600-B所示)(940)。
[0361] 在方法900的一些实施方案中,诸如与要求940一致的实施方案,第 一标准手势识别器是基于强度的手势识别器(例如,要求触摸输入来满足 强度标准的手势识别器,诸如要求接触的特征强度增加到强度阈值以上, 以便手势识别器成功识别手势),并且第一补充手势识别器是拖动开始手 势识别器(942)。参见上面对图6E的讨论,其以图形方式描绘了对应的 手势识别器分级结构600-B。
[0362] 在方法900的一些实施方案中,第一补充手势识别器是拖动开始手势 识别器,并且为了识别拖动开始手势,拖动开始手势识别器包括:要求用 户输入包括持续至少预定义时间段的对应于用户界面中相应的用户界面元 素的位置处的接触;并且要求在接触的位置对应于相应用户界面元素持续 至少预定义时间段之后,接触位置的变化满足横向位移阈值(例如,在继 续检测接触时)(944)。在此类实施方案中,在移动和满足横向位移阈值 之前(例如,通过横向移动至少一定数量的像素),被识别为拖动开始手 势的触摸输入最初保持在一个位置处,通常在对象上或上方(例如,对象4 上的触摸1,图5D)持续至少预定义的时间段。
[0363] 在方法900的一些实施方案中,第一补充手势识别器是拖动开始手势 识别器,并且为了识别拖动开始手势,拖动开始手势识别器包括:要求用 户输入包括在对应于用户界面中的相应用户界面元素(例如,用户界面区 域502中的对象4,图5F)的位置处的触敏表面上的两个并发接触(例 如,同时检测到的两个不同接触,如图5F所示);并且要求两个并发接触的 位置变化满足横向位移阈值(946)。在一些实施方案中,对于包括用户界 面元素上的两个并发接触的用户输入,拖动开始手势识别器不包括要求在 至少预定义时间段内检测到用户输入。在此类实施方案中,一旦两指输入 与触敏表面接触,使用两指输入使得用户能够开始拖动手势的横向位移阶 段。在一些实施方案中,拖动开始手势识别器包括要求两个并发接触彼此 保持在第二预定义接近阈值内(例如,两个并发接触基本上一起移动而不 是彼此远离)。
[0364] 在方法900的一些实施方案中,第一补充手势识别器是拖动添加手势 识别器,并且为了识别拖动添加手势,拖动添加手势识别器包括要求用户 输入包括在对应于用户界面中的相应用户界面元素的位置处的两个并发接 触,以及在预定义时间段内两个并发接触的抬离(例如,用户输入是两指 轻击手势,而不是上面参考图5I和图5L讨论的单指轻击手势)(948)。 在一些实施方案中,拖动添加手势识别器还包括要求用户输入包括第三接 触(例如,对应于在拖动添加手势之前开始的拖动操作)。在一些实施方 案中,拖动添加手势识别器还包括要求距第三接触到最接近的两个接触的 距离小于预定义的接近阈值。当满足这些要求时,使用两指拖动添加手势 (例如,两个并发的接触)将相应的用户界面元素添加到正在进行的拖动 操作(例如,第三接触)。因此,相应的用户界面元素被添加到“附近 的”正在进行的拖动操作(例如,在接近阈值内)。
[0365] 应当理解,对图9A至图9D中已进行描述的操作的具体次序仅仅是示 例性的,并非旨在表明所述次序是可以执行这些操作的唯一次序。本领域 的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另 外,应当指出的是,本文结合本文所述的其他方法(例如,方法800和 900)所述的其他过程的细节同样以类似的方式适用于上文结合图9A至图 9D所述的方法900。例如,上面参考方法800描述的交互标识符与不同视 图相关联以确定哪些补充手势识别器添加到相应视图,以及上面参考方法 700描述的使用自动添加的补充手势识别器以识别拖动、放下和弹簧加载手 势将满足预定义标准的触摸输入处理为分离触摸也可以类似于方法900的 方式适用。为了简明起见,此处不再重复这些细节。
[0366] 上述信息处理方法中的操作任选地通过运行信息处理装置中的一个或 多个功能模块来实现,该信息处理装置诸如为通用处理器(例如,如以上 参考图1和图3A所描述的)或专用芯片。
[0367] 以上参考图7A至图7F描述的操作任选地由图1或图3A中描绘的部 件实现。例如,发起用户界面操作诸如拖动操作或弹簧加载操作,以及方 法700的许多其他操作任选地由接触/运动模块130或其事件识别器模块 312实现。
[0368] 出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然 而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确 形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择和 描述实施方案是为了最佳地阐明本发明的原理及其实际应用,以便由此使 得本领域的其他技术人员能够最佳地使用具有适合于所构想的特定用途的 各种修改的本发明以及各种所描述的实施方案。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈