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

文档序号:1590862 发布日期:2020-01-03 浏览:30次 >En<

阅读说明:本技术 用于触摸输入处理的设备、方法和图形用户界面 (Apparatus, method and graphical user interface for touch input processing ) 是由 B·D·尼罗 C·K·托马斯 D·瓦格纳 M·T·特尼尔 于 2018-05-16 设计创作,主要内容包括:一种电子设备,在显示用于第一应用程序的用户界面时,在第一应用程序处接收描述在触敏表面上对应于相应用户界面对象的位置处检测到的第一触摸的信息。根据确定第一触摸满足与发起相应类型的界面操作相关联的预定义标准,设备发起涉及相应用户界面对象的相应类型的用户界面操作。第一应用程序接收关于除了相应类型的界面操作之外的用户界面操作忽略第一触摸的指令,并且关于除了相应类型的界面操作之外的用户界面操作忽略第一触摸。在一些实施方案中,相应类型的界面操作是拖动操作,用于在第一应用程序的视图中或从第一应用程序的视图拖动对象。(An electronic device, while displaying a user interface for a first application, receives, at the first application, information describing a first touch detected at a location on a touch-sensitive surface that corresponds to a respective user interface object. In accordance with a determination that the first touch satisfies predefined criteria associated with initiating a respective type of interface operation, the device initiates a respective type of user interface operation involving a respective user interface object. The first application receives an instruction to ignore the first touch with respect to a user interface operation other than the corresponding type of interface operation, and to ignore the first touch with respect to a user interface operation other than the corresponding type of interface operation. In some embodiments, the respective type of interface operation is a drag operation for dragging an object in or from a view of the first application.)

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

技术领域

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

背景技术

触敏表面作为计算机和其他电子计算设备的输入设备的使用在近年来显著增长。示例性触敏表面包括触控板和触摸屏显示器。此类表面广泛地用于操纵显示器上的用户界面对象。

示例性操纵包括拖放对象或用户界面元素,诸如将信息从一个应用程序移动到另一个应用程序,或者从应用程序或数据结构的一部分移动到另一部分。其他操纵包括通过以预定义方式触摸它们来选择用户界面对象,通过轻击或以其他方式与对应的应用程序启动图标或其他用户界面元素交互来启动应用程序,通过在应用程序的用户界面的相应用户界面元素上执行轻扫、拖动、轻击、捏合、长按、深按(例如,具有高于阈值的强度)和其他触摸输入来访问应用程序特征。

在各种基于触摸的手势诸如拖放手势、弹簧加载手势(例如,打开对象以便看到对象的元素)之间消除歧义,并且轻扫手势和长按手势是非常重要的,使得设备或系统执行与用户意图对应的动作。鉴于基于触摸的手势之间有时存在细微差别,这种消除歧义可具有挑战性。

虽然已经使用具有不同事件或手势定义的手势识别器来帮助这种消除歧义。一方面消除基于触摸的拖放手势和弹簧加载(有时写为“弹簧加载”)手势(例如,打开对象以便看到对象的元素)之间的歧义,另一方面消除轻扫手势和长按手势之间的歧义,继续具有挑战性,并且有时是麻烦且低效的。此类低效率可涉及用于消除歧义的机制,并且一旦消除歧义或消除歧义的至少一部分,就已经实现了将触摸输入信息递送到各种软件机制。此外,由于具有基于触摸的输入机制的设备提供越来越多的特征,用于至少一些应用程序或应用程序视图的活动手势识别器的数量已经增长到在仅需要那些手势识别器的一部分来处理用户输入的情况下使这种机制变得麻烦且低效的点。

发明内容

因此,需要具有用于处理拖放手势的更快、更有效的方法和界面的电子设备,以及对应的拖放操作(以及任选的弹簧加载操作)。此类方法和界面任选地补充或替换用于触摸输入处理和手势识别和处理的常规方法。此类方法和界面减少了来自用户的输入的数量、程度、和/或性质,并且产生更有效的人机界面。对于电池驱动设备,此类方法和界面可节省用电并且增加两次电池充电之间的时间。

借助所公开的设备可减少或消除与具有触敏表面的电子设备的用户界面相关联的上述缺陷和其他问题。在一些实施方案中,该设备是台式计算机。在一些实施方案中,该设备是便携式的(例如,笔记本电脑、平板电脑或手持设备)。在一些实施方案中,该设备是个人电子设备(例如,可穿戴电子设备,诸如手表)。在一些实施方案中,该设备具有触控板。在一些实施方案中,该设备具有触敏显示器(也称为“触摸屏”或“触摸屏显示器”)。在一些实施方案中,该设备具有图形用户界面(GUI)、一个或多个处理器、存储器和一个或多个模块、被存储在存储器中以用于执行多个功能的程序或指令集。在一些实施方案中,用户主要通过触笔和/或手指接触以及触敏表面上的手势来与GUI进行交互。在一些实施方案中,这些功能任选地包括图像编辑、绘图、演示、文字处理、电子表格制作、玩游戏、接打电话、视频会议、收发电子邮件、即时消息通信、健身支持、数字摄影、数字视频录制、网页浏览、数字音乐播放、记笔记和/或数字视频播放。用于执行这些功能的可执行指令任选地被包括在被配置用于由一个或多个处理器执行的非暂态计算机可读存储介质或其他计算机程序产品中。

根据一些实施方案,在具有显示器、触敏表面以及任选的用于检测与触敏表面接触的强度的一个或多个传感器的电子设备处执行方法。该方法包括:在显示器上显示包括多个用户界面对象的用于第一应用程序的用户界面,并且在显示用于第一应用程序的用户界面时,在第一应用程序处接收描述在触敏表面上的位置处检测到的第一触摸的信息(例如,一个或多个触摸事件),该位置对应于第一应用程序中的多个用户界面对象的相应用户界面对象。该方法包括,响应于接收到描述第一触摸的信息,并且根据确定第一触摸满足与发起相应类型的界面操作相关联的预定义标准:发起涉及相应用户界面对象的相应类型的用户界面操作;当在触敏表面上继续检测到第一触摸并且当涉及相应用户界面对象的用户界面操作继续时,在第一应用程序处接收关于除了相应类型的界面操作之外的用户界面操作忽略第一触摸的指令,并且由第一应用程序关于除了相应类型的界面操作之外的用户界面操作忽略第一触摸。在一些实施方案中,相应类型的界面操作是拖动操作,用于从第一应用程序或第一应用程序的视图拖动对象;或拖放操作,其中拖动的对象被放入与被拖动的对象从其被拖动的不同的应用程序或应用程序视图中;或者弹簧加载操作,其中打开其中可存储内容的视图或容器,或者激活视图或对象的控件。

根据一些实施方案,在具有显示器和触敏表面的电子设备处执行一种方法。该方法包括在显示器上显示包括多个用户界面对象的用于第一应用程序的用户界面;并且,在显示用于第一应用程序的用户界面时,在第一应用程序处接收描述第一触摸的信息。在触敏表面上的对应于用于第一应用程序的用户界面中的多个用户界面对象的相应用户界面对象的位置处检测到第一触摸,并且移动到对应于用于第一应用程序的用户界面的区域之外,进入对应于用于第二应用程序的用户界面的区域。该方法还包括,响应于接收到描述第一触摸的信息:根据确定第一触摸未满足与发起相应类型的界面操作相关联的预定义标准,即使在第一触摸移动到对应于用于第一应用程序的用户界面的区域之外并且进入对应于用于第二应用程序的用户界面的区域之后,继续向第一应用程序提供描述第一触摸的信息。该方法还包括,根据确定第一触摸满足与发起相应类型的界面操作相关联的预定义标准:发起涉及相应用户界面对象的相应类型的用户界面操作;并且,当在触敏表面上继续检测到第一触摸并且当涉及相应用户界面对象的用户界面操作继续时:在第一应用程序处接收关于除了相应类型的界面操作之外的用户界面操作忽略第一触摸的指令;由第一应用程序关于除了相应类型的界面操作之外的用户界面操作忽略第一触摸;当第一触摸在对应于用于第一应用程序的用户界面的区域内时,向第一应用程序提供描述第一触摸的信息;并且当第一触摸移动到对应于用于第一应用程序的用户界面的区域之外并进入对应于用于第二应用程序的用户界面的区域时,切换到向第二应用程序提供描述第一触摸的信息。

根据一些实施方案,在具有显示器、触敏表面以及任选的用于检测与触敏表面接触的强度的一个或多个传感器的电子设备处执行方法。该方法包括:在显示器上显示包括多个视图的用户界面,所述多个视图包括第一视图和第二视图,该第一视图与用于处理指向第一视图的触摸输入的第一组一个或多个标准手势识别器相关联,该第二视图与用于处理指向第二视图的触摸输入的第二组一个或多个标准手势识别器相关联,其中多个视图中的一个或多个视图与第一交互标识符(例如,拖动、放下或弹簧加载交互标识符)相关联,其指示可将第一组一个或多个补充手势识别器添加到对应视图。该方法还包括经由触敏表面检测触敏表面上与多个视图的相应视图对应的位置处的触摸输入;并且响应于经由触敏表面检测到触摸输入:根据确定触摸输入满足补充手势识别器添加标准,其中补充手势识别器添加标准包括当相应视图具有第一交互标识时满足的标准,将与第一交互标识关联的第一组一个或多个补充手势识别器添加到相应视图;并且利用一个或多个补充手势识别器和与相应视图相关联的一个或多个标准手势识别器来处理触摸输入。该方法还包括根据确定触摸输入不满足补充手势识别器添加标准,处理相应视图处的触摸输入,而不将与第一交互标识符相关联的第一组一个或多个补充手势识别器添加到相应视图。

根据一些实施方案,在具有显示器、触敏表面以及任选的用于检测与触敏表面接触的强度的一个或多个传感器的电子设备处执行方法。该方法包括在显示器上显示应用程序的用户界面;并且在显示应用程序的用户界面时,检测对应于与多个手势识别器相关联的应用程序的用户界面的一部分的用户输入,其中:多个手势识别器中的第一组一个或多个标准手势识别器通过应用程序与用户界面的部分相关联(例如,分配给该部分);多个手势识别器中的第二组一个或多个补充手势识别器通过系统过程(例如,独立于应用程序的过程)与用户界面的该部分相关联(例如,分配给该部分);并且涉及第一标准手势识别器和第一补充手势识别器的第一故障要求通过系统过程与用户界面的该部分相关联(例如,分配给该部分)。该方法还包括响应于检测到用户输入,根据第一标准手势识别器、第一补充手势识别器和第一故障要求处理用户输入。例如,在一些实施方案中,第一组一个或多个标准手势识别器和第二组一个或多个手势识别器布置成手势识别分级结构,其中第一故障要求包括要求第一相应手势识别器出故障,以便第二相应手势识别器成功识别手势,其中第一相应手势识别器在手势识别分级结构中处于比第二相应手势识别器更高的级别。

根据一些实施方案,电子设备包括显示器、触敏表面、存储器、一个或多个处理器、一个或多个程序以及用于检测与触敏表面接触的强度的任选地一个或多个传感器;一个或多个程序被存储在存储器中并且被配置为由一个或多个处理器执行,并且一个或多个程序包括用于执行或导致执行任何本文所述的方法的操作的指令。

根据一些实施方案,计算机可读存储介质在其中存储有指令,所述指令当由具有显示器、触敏表面和用于检测与触敏表面的接触强度的任选地一个或多个传感器的电子设备执行时,使得该设备执行本文所述的任何方法的操作或使得本文所述任何方法的操作被执行。

根据一些实施方案,具有显示器、触敏表面、用于检测与触敏表面的接触强度的任选地一个或多个传感器、存储器以及执行存储于存储器中的一个或多个程序的一个或多个处理器的电子设备上的图形用户界面包括在本文所述任何方法中所显示的一个或多个元件,该一个或多个元件响应于输入进行更新,如本文所述的任何方法中所描述的。

根据一些实施方案,一种电子设备包括:显示器、触敏表面以及用于检测与触敏表面接触的强度的任选的一个或多个传感器;以及用于执行或导致执行本文所述方法中的任一种方法的操作的装置。

根据一些实施方案,用于具有显示器和触敏表面以及用于检测与触敏表面的接触强度的任选地一个或多个传感器的电子设备中的信息处理设备包括用于执行本文所述的任何方法的操作或使得本文所述的任何方法的操作被执行的装置。

因此,具有显示器、触敏表面以及用于检测与触敏表面接触的强度的任选一个或多个传感器的电子设备被提供有更快、更有效的方法和界面以用于处理基于触摸的输入,包括拖放手势、长按手势以及可能被有效识别以用于相同应用程序或应用程序视图的其他手势,从而提高此类设备的有效性、效率和用户满意度。此类方法和界面可补充或替换用于处理此类电子设备中的触摸输入的常规方法。

附图说明

为了更好地理解各种所述实施方案,应结合以下附图参考下面的

具体实施方式

,其中类似的附图标号在所有附图中指示对应的部分。

图1是示出根据一些实施方案的具有触敏显示器的便携式多功能设备的框图。

图2示出了根据一些实施方案的具有触摸屏的便携式多功能设备。

图3A是根据一些实施方案的具有显示器和触敏表面的示例性多功能设备的框图。

图3B是示出根据一些实施方案的用于事件处理的示例性部件的框图。

图3C是示出根据一些实施方案的手势识别器的示例性类和实例的框图。

图3D是示出根据一些实施方案的事件信息流的框图。

图4A示出了根据一些实施方案的便携式多功能设备上的应用程序菜单的示例性用户界面。

图4B示出了根据一些实施方案的用于具有与显示器分开的触敏表面的多功能设备的示例性用户界面。

图4C至图4E示出了根据一些实施方案的动态强度阈值的示例。

图5A至图5R示出了根据一些实施方案的用于拖放手势和操作以及弹簧加载手势和操作的示例性用户界面。

图6A示出了根据一些实施方案的在执行从第一应用程序或应用程序视图的用户界面区域跨越到第二应用程序或应用程序视图的用户界面区域的拖动手势期间的触摸事件生成、阶段和取消以及拖动事件生成和阶段。

图6B示出了根据一些实施方案的触摸事件生成和阶段,同时触摸跨越第一应用程序或应用程序视图的用户界面区域移动到第二应用程序或应用程序视图的用户界面区域,而不分离触摸。

图6C示出了根据一些实施方案的用于检测触摸,检测源处理中的拖动手势的开始,分离触摸,将会话ID与触摸相关联并且将触摸提供给目标过程的机制。

图6D和图6E示出了根据一些实施方案的在将一个或多个补充手势识别器添加到应用程序视图之前和之后的手势识别分级结构。

图7A至图7F是示出根据一些实施方案的处理被识别为拖动手势的触摸输入的方法的流程图。

图8A至图8E是示出根据一些实施方案的响应于在满足指定标准时检测到触摸输入而动态地将补充手势识别器添加到应用程序或应用程序视图的方法的流程图。

图9A至图9D是示出根据一些实施方案的在与应用程序的用户界面的一部分相关联的第一组标准手势识别器和与应用程序的用户界面的相同部分相关联的第二组补充手势识别器之间建立故障依赖性的方法的流程图。

具体实施方式

许多电子设备具有图形用户界面和触敏表面,无论是与显示器集成还是以其他方式用于接收用户的触摸输入。随着基于触摸输入的手势的数量增加,各种可能的手势之间的消除歧义变得更加困难,并且对于成功和有效地使用此类电子设备更加重要。实际上,可在相同用户界面区域中使用的多个手势可以相同的初始触摸特性开始,诸如保持静止(例如,移动小于预定义距离或量)至少预定义的初始时间量的静止触摸。帮助消除此类手势之间消除歧义的一种机制是使用手势识别器,每个手势识别器用于识别相应的手势或手势类型,并且建立某些手势识别器在允许其他手势识别器成功地将用户输入识别为特定手势之前未能识别用户输入的故障要求。例如,当用户界面区域接受用于发起第一操作的长按输入和用于开始拖放操作的拖动输入时,用于识别长按手势的手势识别器可取决于拖动开始手势识别器出故障,用于识别拖放操作的开始。

在另一方面,某些类型的手势识别器可由应用程序添加到用于应用程序的用户界面区域,而补充手势识别器可在满足某些标准时由系统过程添加到相同的用户界面区域。以这种方式,为特定用户界面区域建立的手势识别器的数量可保持相对较低,直到需要或可能需要补充手势识别器,如满足上述标准所示。例如,用于处理拖放操作的手势识别器可在需要或可能需要它们时添加到用户界面区域,作为补充手势识别器。

在另一方面,交互标识符与应用程序或应用程序视图相关联,以指示哪些补充手势识别器(如果有的话)能够添加到那些应用程序或应用程序视图。例如,只有能够参与拖放操作的应用程序或应用程序视图与拖动操作的交互标识符相关联。第二不同的交互标识符可用于放下交互,因为一些应用程序区域可以是拖放操作的来源,但不是目标,反之亦然。第三交互标识符可用于弹簧加载交互,因为一些但不是所有应用程序区域可包括能够打开的容器,或者具有能够使用弹簧加载手势激活的控件。以这种方式,仅允许某些类型的手势或操作的应用程序和视图诸如拖放手势和操作或弹簧加载手势和操作与对应的交互标识符相关联。此类交互标识符的使用以及对具有添加到它们的补充手势识别器的应用程序区域的所得到的控制改善了电子设备的操作效率,并且通过减少处理此类用户输入的手势识别器的数量,还改善了此类设备对用户输入的响应性。

图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中的过程。

示例性设备

现在将详细地参考实施方案,这些实施方案的示例在附图中示出。下面的详细描述中示出许多具体细节,以便提供对各种所描述的实施方案的充分理解。但是,对本领域的普通技术人员将显而易见的是,各种所描述的实施方案可以在没有这些具体细节的情况下被实践。在其他情况下,没有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必要地使实施方案的各个方面晦涩难懂。

还将理解的是,虽然在一些情况下,术语“第一”、“第二”等在本文中用于描述各种元件,但是这些元件不应受到这些术语限制。这些术语只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二接触,并且类似地,第二接触可被命名为第一接触,而不脱离各种所描述的实施方案的范围。第一接触和第二接触均为接触,但它们不是同一个接触,除非上下文另外明确指示。

在本文中对各种所述实施方案的描述中所使用的术语只是为了描述特定实施方案的目的,而并非旨在进行限制。如在对各种所述实施方案中的描述和所附权利要求书中所使用的那样,单数形式“一个”和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”、“including”、“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。

如本文中所使用,根据上下文,术语“如果”任选地被解释为意思是“当……时”后“在……时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定……”或“如果检测到[所陈述的条件或事件]”任选地被解释为是指“在确定……时”或“响应于确定……”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。

本文描述了电子设备、此类设备的用户界面和使用此类设备的相关过程的实施方案。在一些实施方案中,该设备为还包含其他功能诸如PDA和/或音乐播放器功能的便携式通信设备,诸如移动电话。便携式多功能设备的示例性实施方案包括但不限于来自AppleInc.(Cupertino,California)的

Figure BDA0002268768140000091

iPod

Figure BDA0002268768140000092

Figure BDA0002268768140000093

设备。任选地使用其他便携式电子设备,诸如具有触敏表面(例如,触摸屏显示器和/或触控板)的膝上型电脑或平板电脑。还应当理解的是,在一些实施方案中,该设备并非便携式通信设备,而是具有触敏表面(例如,触摸屏显示器和/或触控板)的台式计算机。

在下面的讨论中,描述了一种包括显示器和触敏表面的电子设备。然而,应当理解,该电子设备任选地包括一个或多个其他物理用户界面设备,诸如物理键盘、鼠标和/或操纵杆。

该设备通常支持各种应用,诸如以下应用中的一个或多个应用:记笔记应用、绘图应用、演示应用、文字处理应用、网站创建应用、盘编辑应用、电子表格应用、游戏应用、电话应用、视频会议应用、电子邮件应用、即时消息应用、健身支持应用、照片管理应用、数字相机应用、数字摄像机应用、Web浏览应用、数字音乐播放器应用序、和/或数字视频播放器应用。

在设备上执行的各种应用程序任选地使用至少一个通用的物理用户界面设备,诸如触敏表面。触敏表面的一种或多种功能以及被显示在设备上的对应信息任选地对于不同应用程序被调整和/或变化,和/或在相应应用程序内被调整和/或变化。这样,设备的共用物理架构(诸如触敏表面)任选地利用对于用户而言直观且清楚的用户界面来支持各种应用程序。

现在将注意力转到具有触敏显示器的便携式设备的实施方案。图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进行通信。

如本说明书和权利要求书中所使用的,术语“触觉输出”是将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感对应于设备或设备的部件的物理特征的所感知的变化。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又如,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典型(或普通)用户的所述感官知觉。

应当理解,设备100仅仅是便携式多功能设备的一个示例,并且设备100任选地具有比所示出的部件更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图1中所示的各种部件在硬件、软件、固件或它们的任何组合(包括一个或多个信号处理电路和/或专用集成电路)中实现。

存储器102任选地包括高速随机存取存储器,并且还任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备。设备100的其他部件(诸如一个或多个CPU 120和***设备接口118)对存储器102的访问任选地由存储器控制器122来控制。

***设备接口118可被用于将设备的输入***设备和输出***设备耦接到存储器102和一个或多个CPU 120。该一个或多个处理器120运行或执行存储器102中所存储的各种软件程序和/或指令集以执行设备100的各种功能并处理数据。

在一些实施方案中,***设备接口118、一个或多个CPU 120、和存储器控制器122任选地在单个芯片诸如芯片104上实现。在一些其他实施方案中,它们任选地在独立的芯片上实现。

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)(例如,IEEE802.11a、IEEE 802.11ac、IEEE 802.11ax、IEEE 802.11b、IEEE 802.11g和/或IEEE802.11n)、互联网协议语音技术(VoIP)、Wi-MAX、电子邮件协议(例如,互联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息(例如,可扩展消息处理和存在协议(XMPP)、用于即时消息和存在利用扩展的会话发起协议(SIMPLE)、即时消息和存在服务(IMPS)、和/或短消息服务(SMS))、或者包括在本文档提交日期还未开发出的通信协议的其他任何适当的通信协议。

音频电路110、扬声器111和麦克风113提供用户和设备100之间的音频界面。音频电路110从***设备接口118接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器111。扬声器111将电信号转换为人类可听到的声波。音频电路110还接收由麦克风113从声波转换的电信号。音频电路110将电信号转换为音频数据,并且将音频数据传输到***设备接口118以用于处理。音频数据任选地由***设备接口118检索自和/或传输至存储器102和/或RF电路108。在一些实施方案中,音频电路110还包括耳麦插孔(例如,图2中的212)。耳麦插孔提供音频电路110与可移除音频输入/输出***设备之间的界面,该***设备为诸如仅输出的耳机或者具有输出(例如,单耳耳机或双耳耳机)和输入(例如,麦克风)两者的耳麦。

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)。

触敏显示器系统112提供设备与用户之间的输入接口和输出接口。显示控制器156从触敏显示器系统112接收电信号和/或将电信号发送至触敏显示器系统112。触敏显示器系统112向用户显示视觉输出。视觉输出任选地包括图形、文本、图标、视频以及它们的任何组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部的视觉输出对应于用户界面对象。如本文所使用,术语“示能表示”是用户交互式图形用户界面对象(例如,被配置为对指向图形用户界面对象的输入做出响应的图形用户界面对象)。用户交互式图形用户界面对象的示例包括但不限于按钮、滑块、图标、可选择菜单项、开关、超链接、或其他用户界面控件。

触敏显示器系统112具有基于触觉和/或触感接触来接受来自用户的输入的触敏表面、传感器、或传感器组。触敏显示器系统112和显示控制器156(与存储器102中的任何相关联的模块和/或指令集一起)检测触敏显示器系统112上的接触(和该接触的任何移动或中断),并且将检测到的接触转换为与被显示在触敏显示器系统112上的用户界面对象(例如,一个或多个软按键、图标、网页或图像)的交互。在一个示例性实施方案中,触敏显示器系统112和用户之间的接触点对应于用户的手指或触笔。

触敏显示器系统112任选地使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术、或LED(发光二极管)技术,但是在其他实施方案中使用其他显示技术。触敏显示系统112和显示控制器156任选地使用现在已知的或以后将开发出的多种触摸感测技术中的任何技术以及其他接近传感器阵列或用于确定与触敏显示系统112接触的一个或多个点的其他元件来检测接触及其任何移动或中断,该多种触摸感测技术包括但不限于电容性的、电阻性的、红外线的、和表面声波技术。在一个示例性实施方案中,使用投射式互电容感测技术,诸如从Apple Inc.(Cupertino,California)的

Figure BDA0002268768140000141

iPod

Figure BDA0002268768140000142

Figure BDA0002268768140000143

中发现的技术。

触敏显示器系统112任选地具有超过100dpi的视频分辨率。在一些实施方案中,触摸屏视频分辨率超过400dpi(例如,500dpi、800dpi或更大)。用户任选地使用任何合适的物体或附加物诸如触笔、手指等来与触敏显示系统112接触。在一些实施方案中,将用户界面设计成与基于手指的接触和手势一起工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施方案中,设备将基于手指的粗略输入转化为精确的指针/光标位置或命令以用于执行用户所期望的动作。

在一些实施方案中,除了触摸屏之外,设备100任选地包括用于激活或去激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设备的触敏区域,与触摸屏不同,该触敏区域不显示视觉输出。触控板任选地是与触敏显示器系统112分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部分。

设备100还包括用于为各种部件供电的电力系统162。电力系统162任选地包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率转换器或逆变器、电源状态指示符(例如,发光二极管(LED))以及与便携式设备中的电力的生成、管理和分配相关联的任何其他部件。

设备100任选地还包括一个或多个光学传感器164。图1示出了与I/O子系统106中的光学传感器控制器158耦接的光学传感器。一个或多个光学传感器164任选地包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。一个或多个光学传感器164从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块143(也被叫做相机模块),一个或多个光学传感器164任选地捕获静态图像和/或视频。在一些实施方案中,光学传感器位于设备100的与设备前部上的触敏显示系统112相背对的后部上,使得触摸屏能够用作用于静态图像和/或视频图像采集的取景器。在一些实施方案中,另一光学传感器位于设备的前部上,从而获取该用户的图像(例如,用于自拍、用于在用户在触摸屏上观看其他视频会议参与者时进行视频会议等等)。

设备100任选地还包括一个或多个接触强度传感器165。图1示出了与I/O子系统106中的强度传感器控制器159耦接的接触强度传感器。一个或多个接触强度传感器165任选地包括一个或多个压阻应变仪、电容式力传感器、电气式力传感器、压电力传感器、光学力传感器、电容式触敏表面、或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。一个或多个接触强度传感器165从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统112)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备100的与位于设备100的前部上的触敏显示系统112相背对的后部上。

设备100任选地还包括一个或多个接近传感器166。图1示出了与***设备接口118耦接的接近传感器166。另选地,接近传感器166与I/O子系统106中的输入控制器160耦接。在一些实施方案中,当多功能设备被置于用户耳朵附近时(例如,用户正在打电话时),接近传感器关闭并禁用触敏显示器系统112。

设备100任选地还包括一个或多个触觉输出发生器167。图1示出了与I/O子系统106中的触觉反馈控制器161耦接的触觉输出发生器。触觉输出发生器167任选地包括一个或多个电声设备,诸如扬声器或其他音频部件,和/或将能量转换成线性运动的机电设备,诸如马达、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,将电信号转换成设备上的触觉输出的部件)。触觉输出发生器167从触觉反馈模块133接收触觉反馈生成指令,并且在设备100上生成能够由设备100的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统112)并置排列或邻近,并且任选地通过竖直地(例如,向设备100的表面内/外)或横向地(例如,在与设备100的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备100的与位于设备100的前部上的触敏显示系统112相背对的后部上。

设备100任选地还包括一个或多个加速度计168。图1示出与***设备接口118耦接的加速度计168。另选地,加速度计168任选地与I/O子系统106中的输入控制器160耦接。在一些实施方案中,基于对从该一个或多个加速度计所接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图来显示信息。设备100任选地除了一个或多个加速度计168之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),以用于获取关于设备100的位置和取向(例如,纵向或横向)的信息。

在一些实施方案中,存储于存储器102中的软件部件包括操作系统126、通信模块(或指令集)128、接触/运动模块(或指令集)130、图形模块(或指令集)132、触觉反馈模块(或指令集)133、文本输入模块(或指令集)134、全球定位系统(GPS)模块(或指令集)135、以及应用程序(或指令集)136。此外,在一些实施方案中,存储器102存储设备/全局内部状态157,如图1和图3A中所示。设备/全局内部状态157包括以下中的一者或多者:活动应用程序状态,其指示哪些应用程序(如果有的话)当前是活动的;显示状态,其指示什么应用程序、应用程序视图或其他信息占据触敏显示器系统112的各个区域;传感器状态,包括从设备的各个传感器和其他输入或控制设备116获得的信息;以及关于设备的位置和/或姿态的位置和/或方位信息;以及任选的其他状态信息。

操作系统126(例如,iOS、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理通用系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动器,并且有利于各种硬件和软件部件之间的通信。

通信模块128促进通过一个或多个外部端口124来与其他设备进行通信,并且还包括用于处理由RF电路108和/或外部端口124所接收的数据的各种软件部件。外部端口124(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备或间接地经由网络(例如,互联网、无线LAN等)耦接。在一些实施方案中,外部端口是与Apple Inc.(Cupertino,California)的一些

Figure BDA0002268768140000171

iPod

Figure BDA0002268768140000172

和iPod设备中所使用的30针连接器相同或类似和/或兼容的多针(例如,30针)连接器。在一些实施方案中,外部端口是与Apple Inc.(Cupertino,California)的一些

Figure BDA0002268768140000173

iPod

Figure BDA0002268768140000174

和iPod设备中所使用的Lightning连接器相同或类似和/或兼容的Lightning连接器。

接触/运动模块130任选地检测与触敏显示器系统112(结合显示控制器156)和其他触敏设备(例如,触控板或物理点击轮)的接触。接触/运动模块130包括各种软件部件以用于执行与(例如通过手指或触笔)接触检测相关的各种操作,诸如确定是否已发生接触(例如,检测手指按下事件)、确定接触的强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪跨触敏表面的移动(例如,检测一个或多个手指拖动事件),以及确定接触是否已停止(例如,检测手指抬离事件或者接触断开)。接触/运动模块130从触敏表面接收接触数据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变),所述接触点的移动由一系列接触数据表示。这些操作任选地被应用于单点接触(例如,单指接触或触笔接触)或者多点同时接触(例如,“多点触摸”/多指接触)。在一些实施方案中,接触/运动模块130和显示控制器156检测触控板上的接触。

接触/运动模块130任选地检测用户的手势输入。触敏表面上的不同手势具有不同的接触模式(例如,所检测到的接触的不同运动、计时和/或强度)。因此,任选地通过检测特定接触模式来检测手势。例如,检测单指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标位置处)检测手指抬起(抬离)事件。又如,检测触敏表面上的手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起(抬离)事件。类似地,通过检测触笔的特定接触图案来任选地检测触笔的轻击、轻扫、拖动和其他手势。

在一些实施方案中,检测手指轻击手势取决于检测手指按下事件与手指抬起事件之间的时间长度,但是与检测手指按下事件与手指抬起事件之间的手指接触强度无关。在一些实施方案中,根据确定手指按下事件与手指抬起事件之间的时间长度小于预先确定的值(例如,小于0.1、0.2、0.3、0.4或0.5秒),检测轻击手势,而不管轻击期间手指接触的强度是否达到给定的强度阈值(大于标称接触检测强度阈值),例如轻按或深按强度阈值。因此,手指轻击手势可以满足特定输入标准,该特定输入标准不要求接触的特征强度满足给定强度阈值以满足特定输入标准。为清楚起见,轻击手势中的手指接触通常需要满足标称接触检测强度阈值以检测到手指按下事件,低于该标称接触检测强度阈值时,不会检测到接触。类似的分析适用于通过触笔或其他接触检测轻击手势。在设备能够检测在触敏表面上方悬停的手指或触笔接触的情况下,标称接触检测强度阈值任选地不与手指或触笔与触敏表面之间的物理接触对应。

同样的概念以类似方式适用于其他类型的手势。例如,可基于满足与手势中包括的接触的强度无关或者不要求执行手势的一个或多个接触达到强度阈值以便被识别的标准来任选地检测轻扫手势、捏合手势、展开手势和/或长按手势。例如,基于一个或多个接触的移动的量来检测轻扫手势;缩放手势基于两个或更多个接触朝彼此的移动来检测;扩放手势基于两个或更多个接触背离彼此的移动来检测;长按手势基于触敏表面上具有少于阈值移动量的接触的持续时间来检测。因此,关于特定手势识别标准不要求接触强度满足相应的强度阈值以满足特定手势识别标准的陈述意味着特定手势识别标准能够在手势中的接触未达到相应的强度阈值时被满足,并且还能够在手势中的一个或多个接触达到或超过相应的强度阈值的情况下被满足。在一些实施方案中,基于确定在预定义时间段内检测到手指按下事件和手指抬起事件来检测轻击手势,而不考虑在预定义时间段期间接触是高于还是低于相应的强度阈值,并且基于确定接触移动大于预定义量值来检测轻扫手势,即使在接触移动结束时接触高于相应的强度阈值也是如此。即使在对手势的检测受到执行手势的接触的强度的影响的具体实施中(例如,当接触的强度高于强度阈值时,设备更快地检测到长按,或者当接触的强度更高时,设备会延迟对轻击输入的检测),只要在接触未达到特定强度阈值的情况下可以满足识别手势的标准,则对这些手势的检测也不会要求接触达到特定强度阈值(例如,即使识别手势所需的时间量发生变化)。

在某些情况下,接触强度阈值、持续时间阈值和移动阈值以各种不同组合进行组合,以便创建启发式算法来区分针对相同输入元素或区域的两个或更多个不同手势,使得与相同输入元素的多个不同交互能够提供更丰富的用户交互和响应的集合。关于一组特定手势识别标准不要求接触的强度满足相应的强度阈值以满足特定手势识别标准的陈述不排除对其他强度相关手势识别标准进行同时评估,以识别具有当手势包括具有高于相应强度阈值的强度的接触时满足的标准的其他手势。例如,在某些情况下,第一手势的第一手势识别标准(其不要求接触的强度满足相应的强度阈值以满足第一手势识别标准)与第二手势的第二手势识别标准(其取决于达到相应强度阈值的接触)竞争。在此类竞争中,如果第二手势的第二手势识别标准首先得到满足,则手势任选地不被识别为满足第一手势的第一手势识别标准。例如,如果在接触移动预定义的移动量之前接触达到相应的强度阈值,则检测到深按手势而不是轻扫手势。相反,如果在接触达到相应的强度阈值之前接触移动预定义的移动量,则检测到轻扫手势而不是深按手势。即使在此类情况下,第一手势的第一手势识别标准仍然不要求接触的强度满足相应的强度阈值以满足第一手势识别标准,因为如果接触保持低于相应的强度阈值直到手势结束(例如,具有不会增大到高于相应强度阈值的强度的接触的轻扫手势),手势将被第一手势识别标准识别为轻扫手势。因此,不要求接触的强度满足相应的强度阈值以满足特定手势识别标准的特定手势识别标准将会(A)在某些情况下,忽略关于强度阈值的接触强度(例如,对于轻击手势而言)和/或(B)在某些情况下,如果在特定手势识别标准识别与输入对应的手势之前,一组竞争的强度相关手势识别标准(例如,对于深按手势而言)将输入识别为与强度相关手势对应,则不能满足特定手势识别标准(例如,对于长按手势而言),从这个意义上来讲,仍然取决于相对于强度阈值的接触强度(例如,对于与深按手势竞争识别的长按手势而言)。

图形模块132包括用于在触敏显示器系统112或其他显示器上渲染和显示图形的各种已知软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度、对比度或其他视觉属性)的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,非限制性地包括文本、网页、图标(诸如包括软键的用户界面对象)、数字图像、视频、动画等。

在一些实施方案中,图形模块132存储表示待使用的图形的数据。每个图形任选地被分配有对应的代码。图形模块132从应用程序等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器156。

触觉反馈模块133包括用于生成指令的各种软件部件,该指令由触觉输出发生器167使用,以便响应于用户与设备100的交互而在设备100上的一个或多个位置处产生触觉输出。

任选地为图形模块132的部件的文本输入模块134提供用于在各种应用程序(例如,联系人137、电子邮件140、IM 141、浏览器147和需要文本输入的任何其他应用程序)中输入文本的软键盘。

GPS模块135确定设备的位置并提供这种信息以在各种应用程序中使用(例如,提供至用于基于位置的拨号的电话138;提供至相机143作为图片/视频元数据;以及提供至提供基于位置的服务诸如天气桌面小程序、当地黄页桌面小程序和地图/导航桌面小程序的应用程序)。

应用程序136任选地包括以下模块(或指令集)或者其子集或超集:

·联系人模块137(有时称作通讯录或联系人列表);

·电话模块138;

·视频会议模块139;

·电子邮件客户端模块140;

·即时消息(IM)模块141;

·健身支持模块142;

·用于静态图像和/或视频图像的相机模块143;

·图像管理模块144;

·浏览器模块147;

·日历模块148;

·桌面小程序模块149,其任选地包括以下各项中的一者或多者:天气桌面小程序149-1、股市桌面小程序149-2、计算器桌面小程序149-3、闹钟桌面小程序149-4、词典桌面小程序149-5和由用户获得的其他桌面小程序,以及用户创建的桌面小程序149-6;

·用于形成用户创建的桌面小程序149-6的桌面小程序创建器模块150;

·搜索模块151;

·视频和音乐播放器模块152,任选地由视频播放器模块和音乐播放器模块构成;

·记事本模块153;

·地图模块154;和/或

·在线视频模块155。

任选地存储在存储器102中的其他应用程序136的示例包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持JAVA的应用程序、加密、数字权益管理、语音识别和语音复制。

相应的软件应用程序通常至少在执行期间具有应用程序状态,指示相应软件应用程序及其部件(例如,手势识别器)的状态;参见下面描述的应用程序内部状态321(图3B)。

结合触敏显示器系统112、显示控制器156、接触模块130、图形模块132、和文本输入模块134,联系人模块137包括可执行指令用于管理通讯录或联系人列表(例如,存储在存储器102或存储器370中的联系人模块137的应用程序内部状态192中),包括:添加姓名到通讯录;从地址簿删除姓名;将电话号码、电子邮件地址、物理地址或其他信息与姓名关联;将图像与姓名关联;对姓名进行归类和分类;提供电话号码和/或电子邮件地址来发起和/或促进通过电话138、视频会议139、电子邮件140或即时消息141的通信;等等。

结合RF电路108、音频电路110、扬声器111、麦克风113、触敏显示器系统112、显示控制器156、接触模块130、图形模块132、和文本输入模块134,电话模块138包括用于进行以下操作的可执行指令:输入与电话号码对应的字符序列、访问通讯录137中的一个或多个电话号码、修改已输入的电话号码、拨打相应的电话号码、进行会话、以及当会话完成时断开或挂断。如上所述,无线通信任选地使用多种通信标准、协议和技术中的任一种。

结合RF电路108、音频电路110、扬声器111、麦克风113、触敏显示系统112、显示控制器156、一个或多个光学传感器164、光学传感器控制器158、接触模块130、图形模块132、文本输入模块134、联系人列表137和电话模块138,视频会议模块139包括根据用户指令来发起、进行和终止用户与一个或多个其他参与方之间的视频会议的可执行指令。

结合RF电路108、触敏显示器系统112、显示控制器156、接触模块130、图形模块132和文本输入模块134,电子邮件客户端模块140包括用于响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块144,电子邮件客户端模块140使得非常容易创建和发送具有由相机模块143拍摄的静态图像或视频图像的电子邮件。

结合RF电路108、触敏显示器系统112、显示控制器156、接触模块130、图形模块132和文本输入模块134,即时消息模块141包括用于进行以下操作的可执行指令:输入与即时消息对应的字符序列、修改先前输入的字符、发送相应即时消息(例如,使用针对基于电话的即时消息的短消息服务(SMS)或多媒体消息服务(MMS)协议或者使用针对基于互联网的即时消息的XMPP、SIMPLE、Apple推送通知服务(APNs)或IMPS)、接收即时消息、以及查看所接收的即时消息。在一些实施方案中,所传输和/或接收的即时消息任选地包括图形、相片、音频文件、视频文件、和/或MMS和/或增强消息服务(EMS)中所支持的其他附接件。如本文所用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE、APNs或IMPS发送的消息)两者。

结合RF电路108、触敏显示器系统112、显示控制器156、接触模块130、图形模块132、文本输入模块134、GPS模块135、地图模块154和音乐播放器模块146,健身支持模块142包括可执行指令用于创建健身(例如,具有时间、距离和/或卡路里燃烧目标);与(体育设备和智能手表中的)健身传感器通信;接收健身传感器数据;校准用于监视健身的传感器;为健身选择和播放音乐;以及显示、存储和传输健身数据。

结合触敏显示器系统112、显示控制器156、一个或多个光学传感器164、光学传感器控制器158、接触模块130、图形模块132和图像管理模块144,相机模块143包括用于进行以下操作的可执行指令:捕获静态图像或视频(包括视频流)并且将它们存储到存储器102中、修改静态图像或视频的特征、和/或从存储器102删除静态图像或视频。

结合触敏显示器系统112、显示控制器156、接触模块130、图形模块132、文本输入模块134、和相机模块143,图像管理模块144包括用于排列、修改(例如,编辑)、或以其他方式操控、加标签、删除、展示(例如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行指令。

结合RF电路108、触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132和文本输入模块134,浏览器模块147包括根据用户指令来浏览互联网(包括搜索、链接到、接收、和显示网页或其部分、以及链接到网页的附件和其他文件)的可执行指令。

结合RF电路108、触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134、电子邮件客户端模块140和浏览器模块147,日历模块148包括用于根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。

结合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!桌面小程序)。

结合RF电路108、触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134、和浏览器模块147,桌面小程序创建器模块150包括用于创建桌面小程序(例如,将网页的用户指定部分转到桌面小程序中)的可执行指令。

结合触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132和文本输入模块134,搜索模块151包括用于根据用户指令来搜索存储器102中的与一个或多个搜索条件(例如,一个或多个用户指定的搜索词)匹配的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。

结合触敏显示系统112、显示系统控制器156、接触模块130、图形模块132、音频电路110、扬声器111、RF电路108和浏览器模块147,视频和音乐播放器模块152包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及用于显示、呈现或以其他方式回放视频(例如,在触敏显示系统112上或在经由外部端口124无线连接的外部显示器上)的可执行指令。在一些实施方案中,设备100任选地包括MP3播放器诸如iPod(Apple Inc.的商标)的功能。

结合触敏显示器系统112、显示控制器156、接触模块130、图形模块132和文本输入模块134,记事本模块153包括用于根据用户指令来创建和管理记事本、待办事项等的可执行指令。

结合RF电路108、触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134、GPS模块135和浏览器模块147,地图模块154包括用于根据用户指令来接收、显示、修改和存储地图以及与地图相关联的数据(例如,驾车路线;特定位置处或附近的商店和其他兴趣点的数据;和其他基于位置的数据)的可执行指令。

结合触敏显示系统112、显示系统控制器156、接触模块130、图形模块132、音频电路110、扬声器111、RF电路108、文本输入模块134、电子邮件客户端模块140和浏览器模块147,在线视频模块155包括允许用户访问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如在触摸屏112上或在无线连接的或经由外部端口124连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件、以及以其他方式管理一种或多种文件格式诸如H.264的在线视频的可执行指令。在一些实施方案中,使用即时消息模块141而不是电子邮件客户端模块140来发送特定在线视频的链接。

上述所识别的每个模块和应用对应于用于执行上述一种或多种功能以及在本申请中所描述的方法(例如,本文中所描述的计算机实现的方法和其他信息处理方法)的一组可执行指令。这些模块(即,指令集)不必以独立的软件程序、过程或模块实现,因此这些模块的各种子集任选地在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器102任选地存储上述识别的模块和数据结构的子集。此外,存储器102任选地存储上文未描述的另外的模块和数据结构。

在一些实施方案中,设备100是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触控板来执行的设备。通过使用触摸屏和/或触控板作为用于操作设备100的主要输入控制设备,任选地减少设备100上的物理输入控制设备(例如,下压按钮、拨盘等等)的数量。

唯一地通过触摸屏和/或触控板来执行的预定义的一组功能任选地包括在用户界面之间的导航。在一些实施方案中,触控板在被用户触摸时将设备100从设备100上显示的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施方案中,使用触控板来实现“菜单按钮”。在一些其他实施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触控板。

图2示出了根据一些实施方案的具有触摸屏(例如,图1的触敏显示器系统112)的便携式多功能设备100。触摸屏任选地在用户界面(UI)200内显示一个或多个图形。在本实施方案以及下文所述的其他实施方案中,用户能够通过例如利用一根或多根手指202(在图中未按比例绘制)或一支或多支触笔203(在图中未按比例绘制)在图形上作出手势来选择这些图形中的一个或多个图形。在一些实施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备100发生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地不会选择对应的应用程序。

设备100任选地还包括一个或多个物理按钮,诸如“home”按钮、或菜单按钮204。如前所述,菜单按钮204任选地用于导航到任选地在设备100上被执行的一组应用程序中的任何应用程序136。作为另外一种选择,在一些实施方案中,菜单按钮被实现为被显示在触摸屏显示器上的GUI中的软键。

在一些实施方案中,设备100包括触摸屏显示器、菜单按钮204、用于使设备通电/断电和用于锁定设备的下压按钮206、一个或多个音量调节按钮208、用户身份模块(SIM)卡槽210、耳麦插孔212、和对接/充电外部端口124。下压按钮206任选地用于通过压下该按钮并且将该按钮保持在压下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在一些实施方案中,设备100还通过麦克风113来接受用于激活或停用某些功能的语音输入。设备100还任选地包括用于检测触敏显示器系统112上的接触的强度的一个或多个接触强度传感器165、和/或用于为设备100的用户生成触觉输出的一个或多个触觉输出发生器167。

图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)任选地不存储这些模块。

图3A中上述所识别的元件中的每个元件任选地存储在先前提到的存储器设备中的一个或多个存储器设备中。上述所识别的模块中的每个模块对应于用于执行上述功能的一组指令。上述所识别的模块或程序(即,指令集)不必被实现为单独的软件程序、过程或模块,因此这些模块的各种子集任选地在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器370任选地存储上述识别的模块和数据结构的子集。此外,存储器370任选地存储上文未描述的另外的模块和数据结构。

图3B是示出根据一些实施方案的用于事件处理(例如,事件处理部件391)的示例性部件的框图。在一些实施方案中,存储器102(图1)包括事件识别器全局方法312和一个或多个应用程序(例如,133-1到133-3)。

在一些实施方案中,事件识别器全局方法312包括事件监视器311、命中视图确定模块314、活动事件识别器确定模块316和事件分配器模块315。在一些实施方案中,事件识别器全局方法312位于操作系统126(图1)中的事件递送系统内。另选地,事件识别器全局方法312在相应的应用程序133-1中实现。在其他实施方案中,事件识别器全局方法312被实现为独立模块,或存储在存储器102中的另一个模块(例如,接触/运动模块(未示出))的一部分。

事件监视器311从一个或多个传感器359、触敏显示器340和/或一个或多个输入设备350、355接收事件信息。事件信息包括关于事件的信息(例如,触敏显示器156上的用户触摸,作为多点触摸手势或设备102的运动的一部分)和/或子事件(例如,触摸跨过触敏显示器156的移动)。例如,用于触摸事件的事件信息包括以下中的一者或多者:触摸的位置和时间戳。类似地,用于轻扫事件的事件信息包括以下中的两者或更多者:轻扫的位置、时间戳、方向和速度。传感器359、触敏显示器156和输入设备128直接或通过***设备接口将信息事件和子事件信息发送到事件监视器311,该***设备接口检索和存储事件信息。在一些实施方案中,传感器359包括以下中的一者或多者:接近传感器、加速度计、陀螺仪、麦克风和摄像机。在一些实施方案中,传感器359还包括输入设备128和/或触敏显示器156。

在一些实施方案中,事件监视器311以预定间隔向传感器116和/或***设备接口发送请求。作为响应,传感器116和/或***设备接口发送事件信息。在其他实施方案中,传感器116和***设备接口仅在存在重大事件(例如,接收超过预定噪声阈值的输入和/或超过预定持续时间)时发送事件信息。

事件监视器311接收事件信息并将事件信息中继到事件分配器模块315。在一些实施方案中,事件监视器311确定向其递送事件信息的一个或多个相应应用程序(例如,133-1)。在一些实施方案中,事件监视器311还确定要向其递送事件信息的一个或多个相应应用程序的一个或多个相应视图317。

虽然视图通常被认为是用户界面的窗口或其他部分,但从技术上讲,视图是管理应用程序的用户界面的特定范围或区域的应用程序的一部分。视图通常实现为特定类的实例或其子类中的一个,并管理应用程序窗口中的矩形区域。因此,视图是具有相关联的显示区域或用户界面部分的对象,并且还具有与该视图是实例的类相关联的一个或多个计算机程序(有时称为“方法”)。视图负责绘制内容,处理多点触摸事件并且管理任何子视图的布局。绘图内容涉及使用各种图形技术在视图的矩形区域内绘制形状、图像和文本。视图通过使用手势识别器或直接处理触摸事件来响应其矩形区域中的触摸事件。在视图分级结构中,父视图负责定位和调整其子视图的大小,并且可动态地执行此操作。这种动态修改子视图的能力使视图能够适应不断变化的条件,诸如界面旋转和动画。

可将视图视为程序员或应用程序开发人员用于构造应用程序的用户界面的构建块。不是使用一个视图来呈现应用程序的所有内容,而是通常使用几个视图来构建视图分级结构。分级结构中的每个视图都呈现应用程序的用户界面的特定部分,并且通常针对特定类型的内容进行优化。例如,应用程序可具有专门用于呈现图像、文本和其他类型的内容的不同视图。

在一些实施方案中,事件识别器全局方法312还包括命中视图确定模块314和/或活动事件识别器确定模块316。

命中视图确定模块314(如果存在的话)提供用于在触敏显示器156显示多于一个视图时确定在一个或多个视图内发生事件或子事件的位置的软件程序。视图由用户能够在显示器上看到的控件和其他元素构成。

与相应的应用程序(例如,133-1)相关联的用户界面的另一方面是一组视图317,本文中有时也称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。其中检测到触摸的(相应应用程序的)应用程序视图可对应于应用程序的视图分级结构内的特定视图。例如,在其中检测到触摸的最低层级视图可被叫做命中视图,并且被识别为正确输入的那组事件可至少部分地基于开始基于触摸的手势的初始触摸的命中视图来确定。下面参考图3D提供对视图分级结构的进一步讨论。

命中视图确定模块314接收与事件和/或子事件相关的信息。当应用程序具有以分级结构组织的多个视图时,命中视图确定模块314将命中视图识别为应当对事件或子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起事件或子事件发生的最低级视图(即,事件序列中的第一事件或子事件和/或形成手势的子事件)。一旦命中视图被命中视图确定模块所识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有事件和/或子事件。然而,命中视图并不总是唯一的视图,其接收与被识别为命中视图的相同触摸或输入源相关的所有事件和/或子事件。换句话说,在一些实施方案中,另一应用程序(例如,133-2)或同一应用程序的另一视图也接收与相同触摸或输入源相关的事件和/或子事件的至少一个子集,即使(或者无论是否)已经确定触摸或输入源的命中视图。

活动事件识别器确定模块316确定视图分级结构内的哪个或哪些视图应接收特定序列的事件和/或子事件。在一些应用程序上下文中,活动事件识别器确定模块316确定仅命中视图应该接收特定序列的事件和/或子事件。在其他应用程序上下文中,活动事件识别器确定模块316确定包括事件或子事件的物理位置的所有视图是主动参与的视图,并因此确定所有活动参与的视图应该接收特定序列的事件和/或子事件。在其他应用程序上下文中,即使触摸事件和/或子事件完全局限于与一个特定视图关联的区域,分级结构中较高的视图仍然保持为主动参与的视图,因此分级结构中较高的视图应该接收特定序列的事件和/或子事件。除此之外或另选地,活动事件识别器确定模块316确定程序化分级结构中的哪个(哪些)应用程序应该接收特定序列的事件和/或子事件。因此,在一些实施方案中,活动事件识别器确定模块316确定只有编程分级结构中的相应应用程序应该接收特定序列的事件和/或子事件。在一些实施方案中,活动事件识别器确定模块316确定编程分级结构中的多个应用程序应该接收特定序列的事件和/或子事件。

如下面进一步讨论的,在一些实施方案中,触摸最初被视为附接到(attached to)特定视图或视图集,但是当检测到拖动手势时,一个触摸或多个触摸“分离”,并且在一个触摸或多个触摸遍历与那些其他视图相关联的用户界面区域时,与一个触摸或多个触摸相关的事件可递送到其他视图。

事件分配器模块315将事件信息调度到事件识别器(在本文也称为“手势识别器”)(例如,事件识别器325-1)。在包括活动事件识别器确定模块316的实施方案中,事件分配器模块315将事件信息递送到由活动事件识别器确定模块316确定的事件识别器。在一些实施方案中,事件分配器模块315在事件队列中存储事件信息,该事件信息由相应事件识别器325中的相应事件识别器325(或事件接收器331)检索。

在一些实施方案中,相应的应用程序(例如,133-1)包括应用程序内部状态321,该应用程序内部状态指示当应用程序是活动的或正在执行时被显示在触敏显示器156上的一个或多个当前应用程序视图。在一些实施方案中,事件识别器全局方法312使用设备/全局内部状态134(图1C)来确定哪个(哪些)应用程序当前是活动的,并且事件识别器全局方法312使用应用程序内部状态321来确定向其递送事件信息的应用程序视图317。

在一些实施方案中,应用程序内部状态321包括附加信息,诸如以下中的一者或多者:当应用程序133-1恢复执行时恢复待使用的信息、指示信息正被显示或准备好用于被应用程序133-1显示的用户界面状态信息、用于使得用户能够返回到应用程序133-1的前一状态或视图的状态队列,以及用户采取的先前动作的重复/撤销队列。在一些实施方案中,应用程序内部状态321还包括上下文信息/文本和元数据323。

在一些实施方案中,应用程序133-1包括一个或多个应用程序视图317,每个应用程序视图具有用于处理在应用程序的用户界面的相应视图内发生的触摸事件的对应指令(例如,对应的事件处理程序319,有时称为手势处理程序)。应用程序133-1的至少一个应用程序视图317包括一个或多个事件识别器325。通常,相应应用程序视图317包括多个事件识别器325。在其他实施方案中,事件识别器325中的一个或多个事件识别器是独立模块的一部分,该独立模块为诸如用户界面工具包(未示出)或应用程序133-1继承方法和其他属性的较高级别的对象。在一些实施方案中,相应的应用程序视图317还包括以下中的一者或多者:数据更新器、对象更新器、GUI更新器和/或接收的事件数据。

相应的应用程序(例如,133-1)还包括一个或多个事件处理程序319。通常,相应的应用程序(例如,133-1)包括多个事件处理程序319。

相应的事件识别器325-1从事件分配器模块315(直接或间接地通过应用程序133-1)接收事件信息,并从事件信息中识别事件。事件识别器325-1包括事件接收器331和事件比较器333。

事件信息包括关于事件(例如,触摸)或子事件(例如,触摸移动)的信息。根据事件或子事件,事件信息还包括附加信息诸如事件或子事件的位置。当事件或子事件涉及触摸的运动时,事件信息还可包括子事件的速度和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。

事件比较器333将事件信息与一个或多个预定义的手势定义(本文也称为“事件定义”)进行比较,并且基于该比较,确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器333包括一个或多个手势定义335(如上所述,本文也称为“事件定义”)。手势定义335包含手势的定义(例如,事件和/或子事件的预定义序列),例如,手势1(337-1)、手势2(337-2)等。在一些实施方案中,手势定义335中的子事件包括例如触摸开始、触摸结束、触摸移动、触摸取消和多个触摸。在一个示例中,手势1(337-1)的定义是对所显示的对象的双击。例如,双击包括在手势的预定阶段在显示的对象上的第一触摸(触摸开始),在手势的下一个预定阶段的第一抬离(触摸结束),在手势的后续的预定阶段在显示的对象上的第二触摸(触摸开始),以及在手势的最后预定阶段的第二抬离(触摸结束)。在另一示例中,手势2的定义(337-2)包括在显示的对象上拖动。例如,拖动包括在显示的对象上的触摸(或接触),触摸在触敏显示器156上的移动,以及触摸的抬离(触摸结束)。

在一些实施方案中,事件识别器325-1还包括用于事件递送339的信息。用于事件递送339的信息包括对对应事件处理程序319的引用。任选地,用于事件递送339的信息包括动作目标对354。在一些实施方案中,响应于识别手势(或手势的一部分),将事件信息(例如,动作消息)发送到由动作目标对354标识的一个或多个目标383(参见图3D)。在其他实施方案中,响应于识别手势(或手势的一部分),激活动作目标对。

在一些实施方案中,手势定义335包括用于相应用户界面对象的手势的定义。在一些实施方案中,事件比较器333执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在触敏显示器156上显示三个用户界面对象的应用程序视图中,当在触敏显示器156上检测到触摸时,事件比较器333执行命中测试以确定这三个用户界面对象(如果有的话)中的哪一个用户界面对象与该触摸(事件)相关联。如果每个显示的对象与相应的事件处理程序319相关联,则事件比较器333使用命中测试的结果来确定应该激活哪个事件处理程序319。例如,事件比较器333选择与触发命中测试的事件和对象相关联的事件处理程序319。

在一些实施方案中,用于相应手势的相应手势定义337还包括延迟动作,该延迟动作延迟事件信息的递送,直到已经确定事件和/或子事件的序列是否对应于事件识别器的事件类型为止。

当相应事件识别器325-1确定一系列事件和/或子事件与手势定义335中的任何事件不匹配时,相应事件识别器325-1进入事件故障状态,之后相应事件识别器325-1忽略基于触摸的手势的后续事件和/或子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪并处理持续进行的基于触摸的手势的事件和/或子事件。

在一些实施方案中,当没有用于命中视图的事件识别器保持时,事件信息被发送到视图分级结构中的较高视图中的一个或多个事件识别器。另选地,当没有用于命中视图的事件识别器保持时,忽略事件信息。在一些实施方案中,当没有用于视图分级结构中的视图的事件识别器保持时,事件信息被发送到程序分级结构中的更高编程级别中的一个或多个事件识别器。另选地,当没有用于视图分级结构中的视图的事件识别器保持时,则忽略事件信息。

在一些实施方案中,相应的事件识别器325-1包括事件识别器状态334。事件识别器状态334包括相应事件识别器325-1的状态。

在一些实施方案中,事件识别器状态334包括识别器元数据和属性349。在一些实施方案中,识别器元数据和属性349包括以下中的一者或多者:A)可配置属性、标记和/或列表,其指示事件递送系统应如何执行事件和/或子事件递送到主动参与的事件识别器;B)可配置的属性、标记和/或列表,其指示事件识别器如何彼此交互;C)可配置的属性、标记和/或列表,其指示事件识别器如何接收事件信息;D)可配置的属性、标记和/或列表,其指示事件识别器如何识别手势;E)可配置的属性、标记和/或列表,其指示事件和/或子事件是否被递送到视图分级结构中不同的级别;以及F)对对应事件处理程序319的引用。

在一些实施方案中,事件识别器状态334包括事件/触摸元数据351。事件/触摸元数据351包括关于已经检测到的相应事件/触摸的事件/触摸信息,并且对应于手势定义335的相应手势定义337。事件/触摸信息包括以下中的一者或多者:相应事件/触摸的位置、时间戳、速度、方向、距离、比例(或比例变化)和角度(或角度变化)。

在一些实施方案中,当识别出手势的一个或多个特定事件和/或子事件时,相应事件识别器325激活与相应事件识别器325相关联的事件处理程序319。在一些实施方案中,相应事件识别器325将与事件相关联的事件信息递送到事件处理程序319。

事件处理程序319在被激活时执行以下中的一者或多者:创建和/或更新数据,创建和更新对象,以及准备显示信息并将其发送以在显示器126或触敏显示器156上显示。

在一些实施方案中,相应的应用程序视图317-2包括视图元数据341。如上面参考图3B所述,视图元数据341包括关于视图的数据。任选地,视图元数据341包括以下中的一者或多者:停止属性342、跳过属性343、未命中跳过属性344、交互标识符347(下面关于动态添加的拖动、放下和弹簧加载手势识别器进行讨论)和其他视图元数据329。

在一些实施方案中,视图分级结构内的第一主动参与视图可被配置为防止将相应子事件递送到与第一主动参与视图相关联的事件识别器。该行为可实现跳过属性343。当为应用程序视图设置跳过属性时,仍然为与视图分级结构中的其他主动参与的视图相关联的事件识别器执行相应子事件的递送。

另选地,视图分级结构内的第一主动参与视图可被配置为防止将相应子事件递送到与该第一主动参与视图相关联的事件识别器,除非第一主动参与视图是命中视图。该行为可实现条件未命中跳过属性344。

在一些实施方案中,视图分级结构内的第二主动参与视图被配置为防止将相应子事件递送到与第二主动参与视图相关联的事件识别器以及与第二主动参与视图的原型相关联的事件识别器。该行为可实现停止属性342。

图3C是示出根据一些实施方案的手势识别器(例如,事件处理部件390)的示例性类和实例的框图。

软件应用程序(例如,应用程序133-1)具有一个或多个事件识别器345。在一些实施方案中,相应的事件识别器(例如,345-2)是事件识别器类。相应的事件识别器(例如,345-2)包括事件识别器特定代码338(例如,定义事件识别器的操作的指令集)和状态机340。

在一些实施方案中,软件应用程序(例如,应用程序133-1)的应用程序状态321包括事件识别器的实例。事件识别器的每个实例是具有状态(例如,事件识别器状态334)的对象。通过执行对应的事件识别器特定代码(例如,338)并更新或维护事件识别器实例365的状态334来实现相应事件识别器实例的“执行”。事件识别器实例365的状态334包括事件识别器实例的状态机340的状态351。

在一些实施方案中,应用程序状态321包括多个事件识别器实例365。相应的事件识别器实例365通常对应于已被绑定(也称为“附接”)到应用程序的视图的事件识别器。在一些实施方案中,一个或多个事件识别器实例365被绑定到程序分级结构中的相应应用程序,而不参考相应应用程序的任何特定视图。在一些实施方案中,应用程序状态321包括相应事件识别器(例如,345-2)的多个实例(例如,365-1至365-L)。在一些实施方案中,应用程序状态321包括多个事件识别器(例如,345-1至345-R)的实例365。

在一些实施方案中,手势识别器345的相应实例(例如,365-2)包括事件识别器状态334。如上所述,在一些实施方案中,事件识别器状态334包括识别器元数据和属性349和事件/触摸元数据351。在一些实施方案中,事件识别器状态334还包括视图分级结构参考336,其指示手势识别器345-2的相应实例365-2附接到哪个视图。

在一些实施方案中,识别器元数据和属性349包括以下内容或它们的子集或超集:

·排他性标记324;

·排他性例外列表326;

·等待列表327;当包括在用于相应事件识别器(或手势识别器)的事件识别器状态334中时,该列表327指示在相应事件识别器可识别相应事件之前必须进入事件不可能或事件取消状态的事件识别器(或手势识别器)组(如果有的话)。换句话说,所列出的事件或手势识别器必须在具有等待列表327的事件识别器被允许识别输入或事件之前不能识别输入或事件。实际上,列出的事件识别器具有比具有等待列表327的事件识别器更高的识别事件的优先级。

·延迟触摸开始标记328;

·延迟触摸结束标记330;和

·触摸取消标记332。

在一些实施方案中,一个或多个事件识别器可适于延迟递送子事件序列的一个或多个子事件,直到事件识别器识别出事件之后。该行为反映了延迟事件。例如,考虑视图中的单个轻击手势,其中多个轻击手势是可能的。在这种情况下,轻击事件变为“轻击+延迟”识别器。实质上,当事件识别器实现该行为时,事件识别器将延迟事件识别,直到确定子事件序列确实对应于其事件定义。当收件人视图无法正确响应已取消的事件时,该行为可以是适当的。在一些实施方案中,事件识别器将延迟将其事件识别状态更新为其相应的主动参与视图,直到事件识别器确定子事件序列不对应于其事件定义。延迟触摸开始标记328、延迟触摸结束标记330和触摸取消标记332被提供以定制子事件递送技术,以及事件识别器和视图状态信息更新至特定需要。

在一些实施方案中,识别器元数据和属性349包括以下内容或它们的子集或超集:

·状态机状态/阶段351,其指示相应事件识别器实例(例如,365-2)的状态机(例如,340)的状态;状态机状态/阶段351可具有各种状态值,诸如“事件可能”、“事件识别”、“事件失败”等,如下所述;另选地或另外地,状态机状态/阶段351可具有各种阶段值,诸如“触摸阶段开始”,其可指示触摸数据结构定义了未被先前触摸数据结构参考的新触摸;“触摸阶段移动”值可指示被定义的触摸已经从先前位置移动;“触摸阶段静止”值可指示触摸保持在相同位置;“触摸阶段结束”值可指示触摸已经结束(例如,用户已经将他/她的手指从多点触摸显示器的表面抬起);“触摸阶段取消”值可指示触摸已被设备取消;取消的触摸可以是不一定由用户结束但是设备已经确定忽略的触摸;例如,设备可确定无意中生成了触摸(即,由于将便携式多点触摸启用设备放置在一个口袋中)并且由于该原因忽略触摸;状态机状态/阶段351的每个值可以是整数(本文称为“手势识别器状态值”);

·动作-目标对354,其中每对识别相应的事件识别器实例响应于将事件或触摸识别为手势或手势的一部分而将所识别的动作消息发送到的目标;

·委托353,当委托被分配给相应的事件识别器实例时,委托353是对对应委托的引用;当委托未分配给相应的事件识别器实例时,委托346包含空值;以及

·启用属性356,其指示相应的事件识别器实例是否被启用;在一些实施方案中,当相应的事件识别器实例未被启用(例如,禁用)时,相应的事件识别器实例不处理事件或触摸。

包括手势识别器状态和属性的关于手势识别器的附加信息可见于2014年5月29日提交的美国专利申请14/290,931,该专利申请全文以引用方式并入本文。

每个触摸数据结构361可包括各种条目。在一些实施方案中,触摸数据结构可包括与事件/触摸元数据351中的至少触摸特定条目对应的数据,诸如以下内容或它们的子集或超集:

·“视图的第一触摸”条目362;

·“每个触摸信息”条目363,包括“时间戳”信息,其指示触摸数据结构所涉及的特定时间(例如,触摸时间);任选地,“每个触摸信息”条目362包括其他信息,诸如对应触摸的位置;以及

·任选的“轻击计数”条目364。

因此,每个触摸数据结构可定义在特定时间(例如,触摸是否是静止的、正在移动的等)与相应的触摸(或其他输入源)发生的事情以及与触摸相关联的其他信息(诸如位置)。因此,每个触摸数据结构可定义特定时刻的特定触摸的状态。可在触摸事件数据结构中添加引用相同时间的一个或多个触摸数据结构,该触摸事件数据结构可定义特定视图在某一时刻正在接收的所有触摸的状态(如上所述,一些触摸数据结构还可引用已经结束且不再被接收的触摸)。随着时间的推移,可将多个触摸事件数据结构发送到实现视图的软件,以便向软件提供描述视图中发生的触摸的连续信息。

处理复杂的基于触摸的手势(任选地包括多点触摸手势)的能力可增加各种软件应用程序的复杂性。在某些情况下,这种附加的复杂性对于实现高级且理想的界面功能可以是必需的。例如,游戏可需要能够处理在不同视图中发生的多个同时触摸,因为游戏通常需要同时按下多个按钮,或者将加速度计数据与触敏表面上的触摸组合。但是,一些更简单的应用程序和/或视图不需要高级界面功能。例如,简单的软按钮(即,在触敏显示器上显示的按钮)可通过单个触摸而不是多点触摸功能令人满意地操作。在这些情况下,底层OS可将不必要或过多的触摸数据(例如,多点触摸数据)发送到与旨在仅可通过单个触摸操作的视图相关联的软件部件(例如,单个触摸或轻击软按钮)。由于软件部件可需要处理该数据,因此它可需要以处理多个触摸的软件应用程序的所有复杂性为特征,即使它与仅与单个触摸相关的视图相关联。这可增加用于设备的软件开发的成本,因为传统上易于在鼠标界面环境中编程的软件部件(即,各种按钮等)在多点触摸环境中可复杂得多。

为了降低识别复杂的基于触摸的手势的复杂性,可使用委托来控制根据一些实施方案的事件识别器的行为。如下所述,委托可确定例如对应的事件识别器(或手势识别器)是否可接收事件(例如,触摸)信息;对应的事件识别器(或手势识别器)是否可从状态机的初始状态(例如,事件可能状态)转变到另一个状态;和/或对应的事件识别器(或手势识别器)是否可同时将事件(例如,触摸)识别为对应的手势,而不阻止其他事件识别器(或手势识别器)识别事件或被识别事件的其他事件识别器(或手势识别器)阻止。

然而,应该理解,前面关于评估和处理触敏表面上的用户触摸的复杂性的讨论也适用于用输入设备128操作电子设备102的所有形式的用户输入,并非所有用户输入都在触摸屏上启动,例如,在有或没有以下项的情况下协调鼠标移动和鼠标按钮按压:单次或多次键盘按压或保持、设备旋转或其他移动,触控板上的用户移动(诸如轻击、拖动、滚动等)、触笔输入、口头指示、检测到的眼睛移动、生物特征输入、检测到的用户生理变化和/或其任何组合,其可用作与定义要识别的事件的事件和/或子事件对应的输入。

转到事件信息流,图3D是示出根据一些实施方案的事件信息流的框图。

在图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)中的任一个手势识别器。

在一些实施方案中,接收事件信息的应用程序中的一个应用程序是默认应用程序(例如,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的一个或多个手势识别器。

现在将注意力转到任选地在便携式多功能设备100上实现的用户界面(“UI”)的实施方案。

图4A示出根据一些实施方案的便携式多功能设备100上的应用程序菜单的示例性用户界面。类似的用户界面任选地在设备300上实现。在一些实施方案中,用户界面400包括以下元件或者其子集或超集:

·无线通信(诸如蜂窝信号和Wi-Fi信号)的信号强度指示符402;

·时间404;

·蓝牙指示符405;

·电池状态指示符406;

·具有常用应用程序图标的托盘408,诸如:

о电话模块138的被标记为“电话”的图标416,该图标416任选地包括未接来电或语音留言的数量的指示符414;

о电子邮件客户端模块140的被标记为“邮件”的图标418,该图标418任选地包括未读电子邮件的数量的指示符410;

о浏览器模块147的标记为“浏览器”的图标420;以及

о视频和音乐播放器模块152(也称为iPod(苹果公司(Apple Inc.)的商标)模块152)的被标记为“iPod”的图标422;以及

·其他应用程序的图标,诸如:

оIM模块141的被标记为“消息”的图标424;

о日历模块148的被标记为“日历”的图标426;

о图像管理模块144的被标记为“照片”的图标428;

о相机模块143的被标记为“相机”的图标430;

о在线视频模块155的被标记为“在线视频”的图标432;

о股市桌面小程序149-2的被标记为“股市”的图标434;

о地图模块154的被标记为“地图”的图标436;

о天气桌面小程序149-1的被标记为“天气”的图标438;

о闹钟桌面小程序149-4的被标记为“时钟”的图标440;

о健身支持模块142的被标记为“健身支持”的图标442;

о记事本模块153的标记为“记事本”的图标444;以及

о用于设置应用程序或模块的图标446,该图标提供对设备100及其各种应用程序136的设置的访问。

应当注意,图4A中示出的图标标签仅仅是示例性的。例如,在一些实施方案中,视频和音乐播放器模块152的图标422被标记为“音乐”或“音乐播放器”。对于各种应用程序图标任选地使用其他标签。在一些实施方案中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施方案中,特定应用程序图标的标签不同于与该特定应用程序图标对应的应用程序的名称。

图4B示出了具有与显示器450分开的触敏表面451(例如,图3A中的平板或触控板355)的设备(例如,图3中的设备300)上的示例性用户界面。设备300还任选地包括用于检测触敏表面451上的接触的强度的一个或多个接触强度传感器(例如,传感器357中的一个或多个传感器)和/或用于为设备300的用户生成触觉输出的一个或多个触觉输出发生器359。

图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以及它们的移动)被该设备用于操纵显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。

另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势等)来给出下面的示例,但是应当理解的是,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替换。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动)替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,代替对接触的检测,之后是停止检测接触)替代。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。

如本文所用,术语“焦点选择器”是指指示用户正与之进行交互的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图3中的触控板355或图4B中的触敏表面451)上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调整。在包括使得能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显示器(例如,图1中的触敏显示器系统112或图4A中的触摸屏)的一些具体实施中,在触摸屏上检测到的接触充当“焦点选择器”,使得当在触摸屏显示器上在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)的位置处检测到输入(例如,通过接触的按压输入)时,根据所检测到的输入来调整特定用户界面元素。在一些具体实施中,焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键将焦点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择器根据焦点在用户界面的不同区域之间的移动而移动。不考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制以便传送与用户界面的用户期望的交互(例如,通过向设备指示用户界面的用户期望与其进行交互的元素)的用户界面元素(或触摸屏显示器上的接触)。例如,在触敏表面(例如,触控板或触摸屏)上检测到按压输入时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元素)。

如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的“强度”是触敏表面上的接触(例如,手指接触或触笔接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的代替物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包括上百个不同的值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些具体实施中,来自多个力传感器的力测量被合并(例如,加权平均或者加和),以确定估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触区域的大小和/或其变化、接触附近的触敏表面的电容和/或其变化以及/或者接触附近的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或压力的替代物测量直接用于确定是否已经超过强度阈值(例如,强度阈值以对应于替代物测量的单位来描述)。在一些具体实施中,将接触力或压力的替代测量值转换为预估力或压力,并且使用预估力或压力确定是否已超过强度阈值(例如,强度阈值是以压力单位测量的压力阈值)。使用接触的强度作为用户输入的属性,从而允许用户访问用户在用于(例如,在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示器、触敏表面或物理控件/机械控件诸如旋钮或按钮)的实地面积有限的尺寸更小的设备上本来不能容易地访问的附加设备功能。

在一些实施方案中,接触/运动模块130使用一组一个或多个强度阈值来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例如,强度阈值不由特定物理致动器的激活阈值来确定,并且可在不改变设备100的物理硬件的情况下进行调整)。例如,在不改变触控板或触摸屏显示器硬件的情况下,触控板或触摸屏显示器的鼠标“点击”阈值可被设置为预定义阈值的大范围中的任一个阈值。另外,在一些具体实施中,设备的用户提供有用于调节一组强度阈值中的一个或多个强度阈值(例如,通过调节各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次调节多个强度阈值)的软件设置。

如说明书和权利要求书中所使用的,接触的“特征强度”这一术语是指基于接触的一个或多个强度的接触的特征。在一些实施方案中,特征强度基于多个强度样本。特征强度任选地基于相对于预定义事件(例如,在检测到接触之后,在检测到接触抬离之前,在检测到接触开始移动之前或之后,在检测到接触结束之前,在检测到接触的强度增大之前或之后和/或在检测到接触的强度减小之前或之后)而言在预先确定的时间段(例如,0.05秒、0.1秒、0.2秒、0.5秒、1秒、2秒、5秒、10秒)期间采集的预定义数量的强度样本或一组强度样本。接触的特征强度任选地基于以下各项中的一者或多者:接触强度的最大值、接触强度的均值、接触强度的平均值、接触强度的前10%处的值、接触强度的半最大值、接触强度的90%最大值等。在一些实施方案中,在确定特征强度时使用接触的持续时间(例如,在特征强度是接触的强度在时间上的平均值时)。在一些实施方案中,将特征强度与一组一个或多个强度阈值进行比较,以确定用户是否已执行操作。例如,该组一个或多个强度阈值可包括第一强度阈值和第二强度阈值。在本示例中,特征强度未超过第一阈值的接触导致第一操作,特征强度超过第一强度阈值但未超过第二强度阈值的接触导致第二操作,并且特征强度超过第二阈值的接触导致第三操作。在一些实施方案中,使用特征强度和一个或多个强度阈值之间的比较来确定是否要执行一个或多个操作(例如,是否执行相应选项或放弃执行相应操作),而不是用于确定执行第一操作还是第二操作。

在一些实施方案中,识别手势的一部分以用于确定特征强度。例如,触敏表面可接收连续轻扫接触,该连续轻扫接触从起始位置过渡并达到结束位置(例如拖动手势),在该结束位置处,接触的强度增大。在该示例中,接触在结束位置处的特征强度可仅基于连续轻扫接触的一部分,而不是整个轻扫接触(例如,仅结束位置处的轻扫接触的一部分)。在一些实施方案中,可在确定接触的特征强度之前向轻扫手势的强度应用平滑化算法。例如,平滑化算法任选地包括以下各项中的一种或多种:不加权滑动平均平滑化算法、三角平滑化算法、中值滤波器平滑化算法和/或指数平滑化算法。在一些情况下,这些平滑化算法消除了轻扫接触的强度中的窄的尖峰或凹陷,以实现确定特征强度的目的。

本文所述的用户界面图任选地包括各种强度图,这些强度图示出了触敏表面上的接触相对于一个或多个强度阈值(例如,接触检测强度阈值IT0、轻按压强度阈值ITL、深按强度阈值ITD(例如,其最初至少高于IL)和/或一个或多个其他强度阈值(例如,比IL更低的强度阈值IH))的当前强度。该强度图通常不是所显示的用户界面的一部分,但是被提供以帮助解释所述图。在一些实施方案中,轻按压强度阈值对应于这样的强度:在该强度下设备将执行通常与点击物理鼠标或触控板的按钮相关联的操作。在一些实施方案中,深按强度阈值对应于这样的强度:在该强度下设备将执行与通常与点击物理鼠标或触控板的按钮相关联的操作不同的操作。在一些实施方案中,当检测到特征强度低于轻按压强度阈值(例如,并且高于标称接触检测强度阈值IT0,比标称接触检测强度阈值低的接触不再被检测到)的接触时,设备将根据接触在触敏表面上的移动来移动焦点选择器,而不执行与轻按压强度阈值或深按强度阈值相关联的操作。一般来讲,除非另有陈述,否则这些强度阈值在不同组的用户界面附图之间是一致的。

在一些实施方案中,设备对设备所检测到的输入的响应取决于基于输入期间的接触强度的标准。例如,对于一些“轻按压”输入,在输入期间超过第一强度阈值的接触的强度触发第一响应。在一些实施方案中,设备对由设备所检测到的输入的响应取决于包括输入期间的接触强度和基于时间的标准两者的标准。例如,对于一些“深按”输入,只要在满足第一强度阈值与满足第二强度阈值之间经过延迟时间,在输入期间超过大于轻按压的第一强度阈值的第二强度阈值的接触的强度便触发第二响应。该延迟时间的持续时间通常小于200ms(例如,40ms、100ms、或120ms,这取决于第二强度阈值的量值,其中该延迟时间随着第二强度阈值增大而增大)。该延迟时间帮助避免意外的深按输入。又如,对于一些“深按”输入,在达到第一强度阈值之后将出现敏感度降低的时间段。在该敏感度降低的时间段期间,第二强度阈值增大。第二强度阈值的这种暂时增大还有助于避免意外深按输入。对于其他深按输入,对检测到深按输入的响应不取决于基于时间的标准。

在一些实施方案中,输入强度阈值和/或对应输出中的一者或多者基于一个或多个因素(诸如用户设置、接触运动、输入定时、应用运行、施加强度时的速率、同时输入的数量、用户历史、环境因素(例如,环境噪声)、焦点选择器位置等)而变化。示例因素在美国专利申请14/399,606和14/624,296中有所描述,这些美国专利申请全文以引用方式并入本文。

例如,图4C示出了部分地基于触摸输入476随时间的强度而随时间改变的动态强度阈值480。动态强度阈值480是两个分量的总和:在从触摸输入476初始被检测到开始的预定义的延迟时间p1之后随时间衰减的第一分量474和随时间而跟踪触摸输入476的强度的第二分量478。第一分量474的初始高强度阈值减少意外触发“深按”响应,同时仍然允许在触摸输入476提供足够强度的情况下进行即时“深按”响应。第二分量478减少通过触摸输入的逐渐的强度波动而无意触发“深按”响应。在一些实施方案中,在触摸输入476满足动态强度阈值480时(例如,在图4C中的点481处),触发“深按”响应。

图4D示出了另一个动态强度阈值486(例如,强度阈值ID)。图4D还示出了两个其他强度阈值:第一强度阈值IH和第二强度阈值IL。在图4D中,尽管触摸输入484在时间p2之前满足第一强度阈值IH和第二强度阈值IL,但是直到在时间482处经过延迟时间p2才提供响应。同样在图4D中,动态强度阈值486随时间衰减,其中衰减在从时间482(触发了与第二强度阈值IL相关联的响应的时候)已经过预定义的延迟时间p1之后的时间488开始。这种类型的动态强度阈值减少紧接在触发与较低阈值强度(诸如第一强度阈值IH或第二强度阈值IL)相关联的响应之后或与其同时意外触发与动态强度阈值ID相关联的响应。

图4E示出了另一个动态强度阈值492(例如,强度阈值ID)。在图4E中,在从触摸输入490被初始检测到的时候已经过延迟时间p2之后,触发与强度阈值IL相关联的响应。同时,动态强度阈值492在从触摸输入490被初始检测到的时候已经过预定义的延迟时间p1之后衰减。因此,在触发与强度阈值IL相关联的响应之后降低触摸输入490的强度,接着在不释放触摸输入490的情况下增大触摸输入490的强度可触发与强度阈值ID相关联的响应(例如,在时间494处),即使当触摸输入490的强度低于另一强度阈值(例如,强度阈值IL)时也是如此。

接触特征强度从低于轻按强度阈值ITL的强度增大到介于轻按强度阈值ITL与深按强度阈值ITD之间的强度有时被称为“轻按”输入。接触的特征强度从低于深按强度阈值ITD的强度增大到高于深按强度阈值ITD的强度有时称为“深按”输入。接触特征强度从低于接触检测强度阈值IT0的强度增大到介于接触检测强度阈值IT0与轻按强度阈值ITL之间的强度有时被称为检测到触摸表面上的接触。接触的特征强度从高于接触检测强度阈值IT0的强度减小到低于接触检测强度阈值IT0的强度有时被称为检测到接触从触摸表面抬离。在一些实施方案中,IT0为零。在一些实施方案中,IT0大于零。在一些例示中,阴影圆或椭圆用于表示触敏表面上的接触的强度。在一些例示中,没有阴影的圆或椭圆用于表示触敏表面上的相应接触而不指定相应接触的强度。

在本文中所述的一些实施方案中,响应于检测到包括相应按压输入的手势或响应于检测到利用相应接触(或多个接触)所执行的相应按压输入来执行一个或多个操作,其中至少部分地基于检测到该接触(或多个接触)的强度增大到高于按压输入强度阈值而检测到该相应按压输入。在一些实施方案中,响应于检测到相应接触的强度增大到高于按压输入强度阈值来执行相应操作(例如,在相应按压输入的“向下冲程”上执行相应操作)。在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于按压输入强度阈值,并且响应于检测到相应接触的强度随后减小到低于按压输入阈值来执行相应操作(例如,在相应按压输入的“向上冲程”上执行相应操作)。

在一些实施方案中,设备采用强度滞后以避免有时被称为“抖动”的意外输入,其中设备限定或选择与按压输入强度阈值具有预定义关系的滞后强度阈值(例如,滞后强度阈值比按压输入强度阈值低X个强度单位,或滞后强度阈值是按压输入强度阈值的75%、90%或某个合理比例)。因此,在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于对应于按压输入强度阈值的滞后强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后强度阈值来执行相应操作(例如,在相应按压输入的“向上冲程”上执行相应操作)。类似地,在一些实施方案中,仅在设备检测到接触强度从等于或低于滞后强度阈值的强度增大到等于或高于按压输入强度阈值的强度并且任选地接触强度随后减小到等于或低于滞后强度的强度时才检测到按压输入,并且响应于检测到按压输入(例如,根据环境,接触强度增大或接触强度减小)来执行相应操作。

为了容易解释,任选地响应于检测到以下情况而触发对响应于与按压输入强度阈值相关联的按压输入或响应于包括按压输入的手势而执行的操作的描述:接触的强度增大到高于按压输入强度阈值、接触的强度从低于滞后强度阈值的强度增大到高于按压输入强度阈值的强度、接触的强度减小到低于按压输入强度阈值、或接触的强度减小到低于与按压输入强度阈值对应的滞后强度阈值。另外,在将操作描述为响应于检测到接触的强度减小到低于按压输入强度阈值而执行的示例中,任选地响应于检测到接触的强度减小到低于对应于并且小于按压输入强度阈值的滞后强度阈值来执行操作。如上所述,在一些实施方案中,对这些操作的触发还取决于满足基于时间的标准(例如,在满足第一强度阈值和满足第二强度阈值之间已经过延迟时间)。

用户界面和相关联的过程

现在将注意力转向可在具有显示器、触敏表面和(任选地)用于检测与触敏表面的接触的强度的一个或多个传感器的电子设备诸如便携式多功能设备100或设备300上实现的用户界面(“UI”)和相关联的过程的实施方案。

图5A至图5R示出了根据一些实施方案的用于拖放操作的示例性用户界面。这些附图中的用户界面用于说明下面描述的过程,包括下面参考图7A至图7F、图8A至图8E和图9A至图9D描述的过程。为了便于解释,将参考在具有触敏显示器系统112的设备上执行的操作来论述实施方案中的一些实施方案。在此类实施方案中,焦点选择器为任选地:相应手指或触笔接触、对应于手指或触笔接触的表示点(例如,相应接触的重心或与相应接触相关联的点)、或在触敏显示器系统112上所检测到的两个或更多个接触的重心。然而,响应于当在显示器450上显示附图中示出的用户界面连同焦点选择器时检测到触敏表面451上的接触,任选地在具有显示器450和独立的触敏表面451的设备上执行类似的操作。

在图5A至图5R中以及下面的方法700、800和900的描述中,触摸或触摸输入以及触摸或触摸输入的移动在相应用户的控制下通过在A)电子设备用户的一个或多个手指或B)类似工具的触笔的触摸屏(例如,触摸屏112)或触控板(例如,触控板355,有时也称为触控板)或其他触敏表面上或其附近的放置和/或移动来进行。

图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的视图。

如图5A的右侧所示,应用程序A或应用程序A的视图中的一个或多个视图具有用于拖动操作、放下操作和弹簧加载操作的交互标识符,指示用于拖动手势、放下手势和弹簧加载手势的补充手势识别器可(或将要)在满足适用的补充手势识别器添加标准时添加到应用程序A的视图中的一个或多个视图。在一些实施方案中,交互标识符被存储或包括在具有此类交互标识符的每个应用程序视图的视图元数据341(图3B)中。而且,在图5A所示的示例中,没有向应用程序A的视图中的任一个视图添加补充手势识别器,也没有建立任何手势识别器故障依赖性。

图5B示出了图5A中所示的用户界面中的对象4上的第一触摸(触摸1)。因此,更新了应用程序A的用户界面区域502中的对象4的外观。另外,焦点选择器506现在与对象4重叠,指示第一触摸输入的位置。

如果第一触摸横向移动(例如,到用户界面区域502中的位置505)而不满足预定义的拖动开始识别标准(下面更详细地讨论),则与第一触摸相关联的焦点选择器移动(例如,到位置505)而不拖动它最初放置在其上的对象(对象4)。如下面参考图5D所讨论的,当第一触摸在保持在初始触摸位置之前横向移动达至少触摸输入必须保持与电子设备的触敏表面接触的最小时间量时,可发生该结果,在开始横向移动之前没有实质的横向移动,以便满足预定义的拖动开始识别标准。

如图5B的右侧所示,检测到对象4上的第一触摸(触摸1)的时间是时间=t1。应用程序A或其视图继续具有用于拖动操作、放下操作和弹簧加载操作的交互标识符。此外,在图5B所示的示例中,用于识别拖动开始、拖动手势的开始和拖动添加的补充手势识别器(其是用于将对象添加到现有拖动操作的手势)已被添加到对应于对象4的应用程序视图,或对应于用户界面区域504的视图。此外,建立了手势识别器故障依赖性,使得对应于对象4或用于用户界面区域504的视图的应用程序视图的长按(LP)手势识别器取决于拖动开始(DS)手势识别器出故障。在一些实施方案中,通过在长按手势识别器的等待列表327(图3B)中列出拖动手势识别器来指示该故障依赖性。

关于交互标识符、补充手势识别器以及向应用程序或应用程序视图自动或动态添加补充手势识别器以及在标准手势识别器和补充手势识别器之间自动建立故障依赖性的进一步讨论在下面参考图6D、图6E、图7A至图7F、图8A至图8E和图9A至图9D提供。

图5C示出了当通过深按(例如,基于强度)或长按(例如,基于时间)手势识别器识别第一触摸(触摸1)时生成的用户界面。在该示例中,响应于将第一触摸识别为长按手势,显示与对象4相关联的一组菜单选项。

如图5C的右侧所示,对象4上的第一触摸(触摸1)被识别为长按手势的时间是时间=t1+T2,其中t1是第一次检测到第一触摸的时间。在一些实施方案中,T2是触摸输入必须保持与电子设备的触敏表面接触而没有实质的横向移动的阈值时间量,以便满足预定义的长按识别标准。

图5D示出了通过第一触摸(触摸1)的拖动手势的开始。因此,对象4随着第一触摸而移动或拖动。此时,第一触摸和对象4保持在应用程序A的用户界面区域502中。

如图5D的右侧所示,对象4上的第一触摸(触摸1)被识别为拖动开始手势的时间是时间=t1+T3,其中t1是第一次检测到第一触摸的时间。在一些实施方案中,T3至少是触摸输入在开始横向移动之前必须保持与电子设备的触敏表面接触而没有实质横向移动的最小时间量,以便满足预定义的拖动开始识别标准。相反,如果在经过时间阈值(T3)之前要检测到触摸1的移动,则触摸1将在显示器上移动(例如,移动到位置505,如图5B所示),而不启动拖动手势,并因此不拖动对象4。

在一些实施方案中,在使用标准手势识别器初始识别触摸输入(例如作为长触摸)之后,如图5C所示,电子设备随后使用补充手势识别器将触摸输入识别为第二手势诸如拖动开始手势,如图5D所示。在此类实施方案中,T3(图5D)是比T2更大或更长的时间间隔(图5C)。

还如图5D的右侧所示,会话ID(在该示例中等于1)已被分配给第一触摸,或者分配给被第一触摸拖动的对象。如下面更详细描述的,当触摸被识别为拖动手势时,会话ID被分配给触摸,变为分离的触摸。会话ID对应于添加到应用程序A或其视图中的一个或多个视图的一组补充手势识别器,其一旦被识别为拖动手势就控制第一触摸的处理。其他拖动手势(例如,并发或后续拖动手势)将获得与包括第一触摸的拖动的会话ID不同的它们自己的会话ID。

在这些附图(例如,图5A至图5R)中,使用来自常规触摸(也称为附接触摸或视图附接的触摸)的不同图形(具有条纹填充图案的椭圆形)描绘分离的触摸(具有交叉阴影线的填充图案并且周长比分离的触摸暗的椭圆形)。在一些实施方案中,分离的触摸与其遍历的应用程序视图或用户界面区域的标准手势识别器分离,并且因此,与分离的触摸的放置和/或移动相关联的触摸事件(在本文中有时称为拖动事件)由与那些视图或用户界面区域相关联的补充手势识别器处理,而不由与那些视图或用户界面区域相关联的标准手势识别器处理。当满足预定义的标准时,将补充手势识别器动态地添加(例如,通过系统过程)到应用程序或视图。与常规触摸的放置和/或移动相关联的触摸事件(有时在本文中称为附接触摸或视图附接的触摸)由与那些视图或用户界面区域相关联的标准手势识别器处理。标准手势识别器是手势识别器,通常通过应用程序与应用程序视图或应用程序的用户界面区域相关联或分配给应用程序视图或应用程序的用户界面区域。

在图5E中,第一触摸移动到应用程序B的用户界面区域504,利用其拖动对象4。图5E的右侧示出了应用程序B或应用程序B的视图中的一个或多个视图具有用于放下操作和弹簧加载操作的交互标识符,指示用于放下手势和弹簧加载手势的补充手势识别器可(或将要)在满足适用的补充手势识别器添加标准时添加到应用程序B的视图中的一个或多个视图。而且,在图5E所示的示例中,用于放下手势的一个或多个补充手势识别器已被添加到应用程序B的一个或多个视图,手势识别器故障依赖性还没有建立,并且会话ID已经分配给(或继续分配给)包括第一触摸的拖动操作。添加到视图的补充手势识别器的其他示例以及手势识别器故障依赖性的其他示例在下面关于该序列中的后续附图(诸如图5M)进行讨论。

在图5F中,在对象4上检测到两指触摸输入(例如,在应用程序中的同一对象或视图上的两个同时检测到的触摸)。在一些实施方案中,两指触摸用于启动拖动操作,而不必在开始触摸输入的横向移动(例如,拖动)之前等待超时时间段。

在图5G中,两指触摸开始移动,利用其拖动对象4。该图中的时间是时间=t1+ΔT,其中t1是第一次检测到第一触摸的时间,并且ΔT是比上述T2和T3时间段短的时间段。在一些实施方案或情况下,ΔT接近但大于零。两指触摸的移动导致触摸被分离,并且会话ID被分配给两个触摸输入(例如,触摸1和触摸2)。如下面更详细描述的,在确定触摸满足预定义的拖动开始标准时,两个触摸都分离。交互标识符、添加的手势识别器和故障依赖性与图5D中的相同。在图5G中通过拖动的对象的外观变化来指示拖动手势的识别(例如,周边以较厚的周长绘制),并且在图5G中通过两个触摸的变化的外观指示两个触摸的分离。

在图5H中,两指触摸从应用程序A的用户界面区域502移动到应用程序B的用户界面区域504中。在两指触摸进入应用程序B的用户界面区域504时,放下手势识别器添加到用户界面区域504。还如图5H所示,用户界面区域504具有用于拖动、放下弹簧加载交互的交互标识符。

图5I表示当检测到第二触摸(触摸2)时从图5D中所示的用户界面发生的转变。在该示例中,第二触摸在用于应用程序A的用户界面区域502中的对象(对象2)上。由于第一触摸已经分离,所以第二触摸独立于第一触摸被处理,除非第二输入被识别为拖动添加手势。因此,如果第二触摸未被识别为拖动添加手势,则使用用于应用程序A的用户界面区域502的标准手势识别器来处理第二触摸。在该示例中,对象1、对象2和对象3是应用程序A中的竖直可滚动列表的元素。当第二触摸(触摸2)竖直向下移动时,如图5J所示,可滚动列表向下滚动与第二触摸的竖直移动量对应的量。如图所示,第二触摸的移动不需要完全竖直以引起滚动。滚动列表的滚动导致附加元素(对象Z)滚动到显示的可滚动列表的顶部处的视图中。

在图5K中,第二触摸(触摸2)继续被移动(例如,由设备100的用户移动)。在该示例中,第二触摸的移动向下和水平地移动到应用程序B的用户界面区域504中。由于第二触摸尚未被识别为拖动开始手势,因此即使当第二触摸移动到用户界面区域504中时,第二触摸仍然附接应用程序A或应用程序A的一个或多个视图,因此,对应于第二触摸的触摸事件继续被递送到应用程序A,并且响应于那些触摸事件,应用程序A的用户界面区域502中的可滚动列表根据第二触摸的竖直移动量继续滚动。可滚动列表的继续滚动导致另一个附加元素(对象Y)滚动到所显示的可滚动列表的顶部处的视图中。

再次参考图5I,在一些实施方案中,拖动添加手势是在可用于添加到拖动操作的对象上执行的轻击或其他区别性触摸手势(例如,距已经参与拖动操作的对象或已指定为可用于添加到拖动手势的对象在预定义的距离内的对象(例如,通过其中显示该对象的应用程序)。如果图5I中所示的第二触摸被识别为拖动添加手势,则将对象2添加到与第一触摸相关联的拖动操作,如图5L所示。在图5I和图5L中,时间t2对应于第一次检测到第二触摸(触摸2)的时间,并且T4是或者对应于拖动添加手势的最大持续时间。

在图5L中,对象2堆叠在对象4后面,并且当第一触摸在触摸屏112上横向移动时,两个对象(对象2和对象4)被拖动。在一些实施方案中,拖动添加手势需要是两指轻击手势,而不是图5I和图5L中所示的单指轻击手势,而在一些其他实施方案中,单指轻击手势和两个指轻击手势都可以是拖动添加手势,只要它们满足预定义的拖动标准(例如,要求用户输入包括在与可被拖动的用户界面对象对应的位置处的接触,并且要求识别出拖动操作的第一触摸与第二触摸之间的距离不大于预定义的距离或接近度阈值)。

在图5M中,对象4和对象2(仅作为其在对象4下堆叠的阴影示出)已被拖动到应用程序B的用户界面区域504中。在该示例中,响应于分离的触摸(触摸1)被拖动到应用程序B的用户界面504中,放下和弹簧加载补充手势识别器被添加到应用程序B的用户界面504,并且进一步创建或添加故障依赖性,使得长按手势识别器依赖于弹簧加载手势识别器的故障,以便识别长按手势。

图5N示出了在将对象4和对象2拖入应用程序B的用户界面区域504之后在抬离第一触摸时发生的图5K所示的用户界面的更新。在图5N中,在抬离第一触摸之后,对象4和对象2被取消堆叠并定位在应用程序B的用户界面区域504中。在一些实施方案中,一旦拖动操作(或放下操作)已经完成并且对应的触摸已被抬离,则将自动移除用于处理触摸的补充手势识别器,并且也移除与已移除的补充手势识别器对应的一些(或全部)手势识别器依赖性。因此,在该示例中,图5N示出了交互标识符集合,但是图5M中列出的补充手势识别器不再在图5N中列出,并且类似地,长按(LP)手势识别器对图5M中所示的(补充)弹簧加载手势识别器的依赖性在图5N中不再呈现。

图5O表示在第二触摸(触摸2)被识别为拖动手势之后从图5I中所示的用户界面的转变。这是第二拖动手势,其与第一触摸的第一拖动手势无关,并且对应的触摸(触摸2)被分配不同的会话ID,例如会话ID 2,然后是第一触摸,其在该示例中被分配会话ID 1。另外,第二触摸在被识别为触摸手势时分离,从而使用于用户界面区域502的标准手势识别器不必处理由(或用于)第二触摸产生的触摸事件。

图5P表示从图5O中所示的用户界面的转变,其中第一触摸(触摸1)和第二触摸(触摸2)在不同方向上移动,从而随着第一触摸的移动拖动(对象4),并且随着第二触摸的移动拖动对象2。第一触摸和第二触摸是独立的分离触摸,并且每个触摸用于拖动与另一个不同的对象或对象集。

图5Q表示在第一触摸(触摸1)向下移向用户界面区域504中的对象5之后从图5E所示的用户界面的转变。作为该移动的结果,对象4现在至少部分地定位在对象5上。在该示例中,补充弹簧加载手势识别器已被添加到与应用程序B的一个或多个视图相关联的一组手势识别器。在一些实施方案中,在检测到触发事件或条件时,将补充弹簧加载手势识别器添加到应用程序B的一个或多个视图,诸如被拖动的对象(例如对象4)在能够响应弹簧加载手势的另一个对象(例如对象5)上的移动。

图5R表示在放置第一触摸(触摸1)之后从图5Q中所示的用户界面的转变,或通过第一触摸拖动的对象(对象4)的放置在对象5上被识别为弹簧加载手势。如下面更详细描述的,弹簧加载手势的识别是通过根据弹簧加载交互ID和界面区域504中触发一个或多个补充手势识别器的添加的触摸的存在而添加到用户界面区域504(例如,应用程序B的视图)的补充手势识别器中的一个补充手势识别器来实现的。响应于弹簧加载手势,打开对象5,其是文件夹对象(有时称为容器或容器对象),而对象4继续被第一触摸(触摸1)拖动,如图5R所示。任选地,用户可继续移动第一触摸以便将对象4拖动到对应于对象5的现在打开的文件夹中,然后在通过第一触摸将对象4拖动到与对象5对应的打开的文件夹的内部之后通过从触摸屏112抬离第一触摸将对象4放到该文件夹中。

应注意,与图5N中所示的场景不同,在图5R中,第一触摸继续与触摸屏112接触,因此仍可能发生放下操作或甚至进一步的弹簧加载操作,并且因此放下和弹簧加载补充手势识别器继续与应用程序B的一个或多个视图相关联。

生成触摸的触摸事件以表示随时间的触摸。触摸具有从预定的一组阶段中选择的阶段:用于相应触摸的触摸开始指示刚在触敏表面上检测到的相应触摸,用于相应触摸的触摸移动指示相应触摸已经在触敏表面上移动,用于相应触摸的触摸结束指示已停止在触敏表面上检测到相应触摸,作为结束手势的一部分,并且用于相应触摸的触摸取消指示相应触摸已被确定为意外触摸或已经以其他方式被识别为应忽略的触摸。在一些实施方案中,触摸事件由一个或多个手势识别器处理,以识别由在触敏表面上检测到的触摸执行的手势(例如,轻击、轻扫、拖动、捏合等)。在一些实施方案中,当针对相应触摸发出触摸取消事件(即,用于(或包括)具有等于触摸取消的阶段的触摸的触摸事件)时,基于相应触摸执行操作的应用程序取消操作并恢复到检测到触摸之前的状态。在一些实施方案中,当针对相应触摸检测到触摸取消操作时,正在将触摸评估为手势的一部分的一个或多个手势识别器被取消(例如,假设触摸的取消将使得不可能满足手势识别器使用的手势定义)。在一些实施方案中,应用程序响应于相应触摸的触摸取消事件不同于响应于触摸结束事件。例如,以触摸取消事件结束的轻击输入(例如,用于触摸的触摸事件,对应于轻击输入,具有触摸取消阶段)被忽略,而以触摸结束事件(例如,用于触摸的触摸事件,对应于轻击输入,具有触摸结束阶段)结束的轻击输入被处理为轻击。作为另一个示例,当检测到使对象在显示器上移动的移动接触时,如果在对象已经移动跨过显示器之后检测到具有触摸结束阶段的触摸事件,则该对象将保持在其移动到的位置,或者(任选地)以某种惯性继续前进,相反,如果在对象已经移动跨过显示器之后检测到具有触摸取消阶段的触摸事件,则将对象的移动反转到在检测到移动接触之前显示对象的位置。下面参考图6B描述在不分离触摸的情况下处理的触摸的示例。

图6A示出了在一段时间内生成的触摸事件和拖动事件,同时触摸(有时称为触摸输入)从用于第一应用程序(应用程序A)的用户界面区域移动到用于第二应用程序(应用程序B)的用户界面区域。在一些实施方案中,检测到的触摸对应于用户的手指或触笔等在电子设备的触敏表面上的接触。在图5B、图5D和图5E中示出了触摸的此类移动的示例。如图6A中的“触摸事件”序列所表示,在将触摸输入识别为拖动手势之前,在最初检测到触摸时生成触摸事件。触摸事件序列表示通过一系列阶段(诸如,开始、移动和取消)演变的触摸。当在图5B中最初检测到触摸时,触摸在具有触摸开始阶段的触摸事件中表示;当在图5D中检测到触摸的移动时,触摸在具有触摸移动阶段的触摸事件中表示;然后在图5D中,当触摸被识别为拖动手势时,触摸在具有触摸取消阶段的触摸事件中表示。具有与触摸的阶段或状态对应的触摸阶段值的触摸事件的实例被递送到应用程序A以进行处理,例如以更新应用程序A的用户界面。在一些实施方案中,具有等于“移动”的触摸阶段的触摸事件的多个实例可在触摸输入移动时生成。

当触摸输入被识别为拖动手势时,触摸事件被取消并且生成拖动事件。取消用于应用程序A的触摸输入使得应用程序A能够反转响应于检测到触摸而执行的任何操作(例如,当在图5D中取消触摸1时(由于将触摸1识别为拖动手势的一部分),响应于在阈值量的时间内检测到对象4上的触摸而显示的图5C中的菜单停止显示)并且忽略该触摸以识别由附接触摸执行的手势为目的。在一些实施方案中,拖动事件是被标记或处理为分离触摸的拖动事件。在一些实施方案中,递送到诸如应用程序A的应用程序的触摸事件包括与应用程序A或应用程序A的视图相关联的触摸列表,并且触摸列表指示针对每个列出的触摸所列出的触摸是附接的触摸(有时称为视图附接的触摸)或是分离触摸。

递送给应用程序A的附接触摸由与应用程序A或应用程序A的视图相关联的标准手势识别器以及与应用程序A或应用程序A的视图相关联的任何补充手势识别器(例如,由于与应用程序A的相应视图相关联的交互标识符而添加到应用程序A的相应视图的手势识别器)处理。另一方面,递送到应用程序A的分离触摸仅由与应用程序A或应用程序A的视图相关联的补充手势识别器处理,并且不由与应用程序A或应用程序A的视图相关联的标准手势识别器处理,并且因此被其忽略。

与拖动事件相关联的触摸还具有一系列阶段,诸如“进入”、“在其中”和“退出”。随着触摸移动,随着时间的推移生成拖动事件的实例,其中拖动事件的第一实例中的触摸具有等于“进入”的阶段(有时称为触摸阶段),并且拖动事件的后续实例中的触摸具有等于“在其中”的阶段(例如,对应于视图或应用程序视图内的移动,有时称为用户界面区域),并且拖动事件的最终实例中的触摸具有等于“退出”的阶段,其响应于抬离触摸或触摸离开相应视图而生成。

还如图6A中所示,当触摸被分离时,触摸事件将触摸标识为被取消并且触摸被包括在对应的拖动事件中,该触摸事件将触摸识别为具有“进入”阶段,所有这些都响应于将相应的触摸识别为拖动手势而发生。注意,将触摸初始识别为拖动手势有时被称为拖动开始手势的识别。

图6B类似于图6A,但是对应于附接触摸从应用程序A的用户界面区域中的起始位置到应用程序B的用户界面区域中的结束位置的移动。由于触摸未分离,例如因为它不被识别为拖动手势,所以仅生成触摸事件实例,并且所有触摸事件实例被递送到应用程序A,因为附接触摸被递送到与附接触摸的初始触摸位置相关联的应用程序或应用程序视图,即使根据一些实施方案,触摸移动到与初始触摸位置相关联的应用程序或应用程序视图之外。在该示例中生成的触摸事件中的触摸的阶段在最初检测到触摸时是“开始”,在检测到触摸的移动时是“移动”,然后在检测到抬离触摸时是“结束”。

图6C示意性地示出了由一组过程检测到的触摸的处理:源过程(过程A),其对应于第一应用程序诸如应用程序A;系统拖动管理过程,其在一些实施方案中执行接触/运动模块130(图1和图3A)或接触/运动模块的一部分;系统触摸管理过程,其对应于命中视图确定模块314(图3B);以及目标过程,其对应于第二应用程序诸如应用程序B。如图6C所示,当检测到一个或多个触摸并确定其执行拖动手势时,系统拖动管理过程程将开始一个或多个触摸的会话,并且将分配给一个或多个触摸的会话ID发送到源过程。系统拖动管理过程还将关于一个或多个触摸的信息传送给系统触摸管理,其分离一个或多个触摸,并向源过程发送触摸取消事件或指令。触摸取消事件或指令使得源过程的标准手势识别器转变到终端状态并停止处理一个或多个分离触摸。另外,当一个或多个触摸移动到用于第二应用程序的用户界面区域时,系统触摸管理将关于分离的一个或多个触摸的信息传送到目标过程。

图6D示出了在将任何补充手势识别器添加到用于应用程序或应用程序的一个或多个视图的一组手势识别器之前的手势识别分级结构600-A的示例,并且图6E示出了在已经将一个或多个补充手势识别器添加到用于应用程序或应用程序的一个或多个视图的一组手势识别器之后的对应的手势识别分级结构600-B的示例。在这些示例中,在添加任何补充手势识别器之前,用于应用程序或应用程序视图的标准手势识别器(即用于应用程序或应用程序视图的手势识别器)(例如,由应用程序本身添加到视图以支持与应用程序的各种交互的手势识别器)包括长按手势识别器(LongPress GR),用于基于触摸的持续时间识别触摸手势(例如,用于在对象4上检测到长按手势时触发显示菜单诸如图5C中所示的菜单),而没有实质的横向移动,以及基于强度的手势识别器(Intensity-Based GR),用于基于满足预定义强度阈值的触摸手势的强度来识别触摸手势(例如,用于在对象4上检测到满足预定义强度阈值的深按手势时触发显示与对象4对应的内容的展开视图)。在图6E所示的示例中,添加到用于应用程序的一组手势识别器的补充手势识别器包括用于识别拖动开始手势(例如,用于检测如图5D中所示的拖动手势,其中对象4响应于触摸1的移动而被拖动)的拖动开始手势识别器(DragStart GR)。

如图6D所示,手势识别分级结构600-A指示在将任何补充手势识别器添加到用于应用程序或应用程序视图的一组手势识别器之前,长按手势识别器是取决于基于强度的手势识别器的故障。在一些实施方案中,长按手势识别器是取决于基于强度的手势识别器的故障的事实意味着,除非基于强度的手势识别器未能识别基于强度的触摸输入(例如,深按),长按手势识别器无法识别触摸输入。在一些实施方案中,长按手势识别器是取决于基于强度的手势识别器的故障的事实意味着,当基于强度的手势识别器识别基于强度的触摸输入(例如,深按)时,长按手势识别器无法识别触摸输入。在基于强度的手势识别器未能识别触摸输入时,使得长按手势识别器能够尝试识别触摸输入。在一些实施方案中,通过在长按手势识别器的等待列表127(图3C)中列出基于强度的手势识别器来实现该依赖性。

如图6E所示,手势识别分级结构600-B指示在将补充手势识别器添加到用于应用程序的一组手势识别器之后,长按手势识别器是取决于基于强度的手势识别器和拖动开始手势识别器的故障,其中拖动开始手势识别器是添加到用于应用程序或应用程序视图的一组手势识别器的补充手势识别器。另外,拖动开始手势识别器是取决于基于强度的手势识别器的故障。因此,长按手势识别器不能将触摸输入识别为长按手势,直到基于强度的手势识别器未能识别触摸输入(例如,作为深按)并且拖动开始手势识别器未能识别触摸输入(例如,作为拖动手势)。另外,拖动开始手势识别器不能将触摸输入识别为拖动开始手势,直到基于强度的手势识别器未能识别触摸输入(例如,作为深按)。在一些实施方案中,通过在长按手势识别器的等待列表127(图3C)中列出基于强度的手势识别器和拖动开始手势识别器,以及通过在拖动开始手势识别器的等待列表127(图3C)中列出基于强度的手势识别器实现这些故障依赖性。

拖放手势识别

图7A至图7F是示出根据一些实施方案的处理由电子设备检测到的触摸的方法700的流程图,包括确定触摸是否对应于拖动手势(有时称为拖放手势),以及根据该确定来处理触摸。方法700是在具有显示器、触敏表面和任选的用于检测与触敏表面的接触强度的一个或多个传感器的电子设备(例如,图3的设备300或图1的便携式多功能设备100)处执行的。在一些实施方案中,显示器是触摸屏显示器,并且触敏表面在显示器上或与显示器集成。在一些实施方案中,显示器与触敏表面是分开的。方法700中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。

如下所述,方法700提供了一种处理由设备检测到的触摸的直观方式,该触摸可以是或可不是拖动手势。当用户想要将一个或多个对象从第一应用程序视图或区域拖动到另一个应用程序视图或区域时,该方法减少了来自用户的输入的数量、范围和/或性质,从而创建了更有效的人机界面。对于电池供电的电子设备,使用户能够更快更有效地执行拖放操作节省了电力并且增加了电池充电期间的时间。

设备在其显示器上显示包括多个用户界面对象的用于第一应用程序的用户界面(702)。在显示用于第一应用程序的用户界面时,设备在第一应用程序处接收描述第一触摸的信息(例如,一个或多个触摸事件),在触敏表面上的对应于第一应用程序中的多个用户界面对象中的相应用户界面对象的位置处检测到该第一触摸(704)。例如,第一触摸可以是图5B中所示的触摸1。

响应于接收描述第一触摸的信息,并且根据确定(例如,通过第一应用程序)第一触摸满足与发起相应类型的界面操作(例如,拖放操作,有时也称为拖动操作)相关联的预定义标准(706):设备发起涉及相应用户界面对象的相应类型的用户界面操作(例如,第一用户界面操作)(708)。

在一些实施方案中,与发起相应类型的界面操作相关联的预定义标准是与发起拖动操作相关联的标准,有时称为拖动标准。在一些实施方案中,拖动标准包括当用户输入在触敏表面上保持至少预定义时间段并且检测到的用户输入的强度在预定义时间段(例如,长按标准)期间保持在强度阈值以下时满足的定时标准(例如,第一标准)。在一些实施方案中,拖动标准包括当检测到的用户输入的横向位移满足(例如,符合或超过)横向位移阈值时满足的横向位移标准(例如,第二标准)。在一些实施方案中,拖动标准要求在满足横向位移标准之前满足定时标准(例如,对于满足拖动标准的输入,输入必须首先满足定时标准,然后满足横向位移标准)。

方法700还包括,在继续在触敏表面上检测到第一触摸时并且在涉及相应用户界面对象的用户界面操作继续时(710),在第一应用程序处接收关于除了相应类型的界面操作(例如,拖动、放下或弹簧加载操作)之外的用户界面操作忽略第一触摸的指令(712);并且由第一应用程序关于除了相应类型的界面操作之外的用户界面操作忽略第一触摸(714)。例如,由第一应用程序忽略第一触摸是通过停止第一触摸的处理来实现的,任选地响应于触摸取消事件。因此,即使涉及用户界面对象的用户界面操作继续,第一触摸也被视为取消的触摸。在一些实施方案中,第一应用程序停止处理关于除了相应类型的界面操作之外的用户界面操作的第一触摸(例如,停止接收关于其的信息)。

在一些实施方案中,在检测第一触摸时并且在确定第一触摸满足与发起相应类型的界面操作相关联的预定义标准之前,该方法包括使用与除了相应类型的界面操作之外的用户界面操作相关联的一个或多个手势识别器来处理触摸。在一些实施方案中,发起涉及相应用户界面对象的相应类型的用户界面操作包括使用与相应类型的界面操作相关联的手势识别器来处理触摸(例如,用于处理触敏表面上的拖动输入的拖动手势识别器)。在一些实施方案中,存在手势识别器的多个实例。例如,使用拖动手势识别器的实例来处理第一触摸。

在一些实施方案中,方法700包括,在确定(例如,通过系统拖动管理过程)第一触摸满足与发起相应类型的界面操作相关联的预定义标准之前,将第一触摸处理为视图附接的触摸事件(720),并且根据确定第一触摸满足与发起相应类型的界面操作相关联的预定义标准,将第一触摸处理为分离的触摸事件(例如,通过发起相应类型的用户界面操作)(722)。将触摸输入最初处理为视图附接的触摸事件提供触摸输入的处理的一致性,并且使用户能够控制触摸输入所指向的视图提供用于控制用户界面的更直观的界面。在确定触摸输入满足与特定操作相关联的预定义标准之后将触摸输入处理为分离的触摸事件提供了处理用于执行特定操作的触摸输入的灵活性,同时使得设备能够继续接收和处理附加触摸输入作为正常触摸以执行附加操作。提供更一致和更直观的控制选项,同时提供一次接收和处理多个触摸输入的灵活性,减少了执行操作所需的输入数量,增强了设备的可操作性,并使用户设备界面更加高效(例如,通过帮助用户提供更快地获得预期结果的输入并减少与设备进行操作/交互时的用户错误),这另外通过使用户能够更快速和更有效地使用设备来减少电力使用并提高设备的电池寿命。

在一些实施方案中,方法700还包括:在确定(例如,通过系统拖动管理过程)第一触摸满足与发起相应类型的界面操作相关联的预定义标准之前,使用与第一应用程序相关联的一个或多个手势识别器(例如,上面参考图5D、图5I、图5O和图6D至图6E讨论的“标准手势识别器”)将第一触摸处理为视图附接的触摸事件(724);并且,根据确定第一用户输入满足与发起相应类型的界面操作相关联的预定义标准(726):停止使用与第一应用程序相关联的一个或多个手势识别器将第一触摸处理为视图附接的触摸事件(728);并且将第一触摸处理为分离的触摸事件(730)。例如,在一些实施方案中,使用拖动手势识别器处理分离的触摸。使用与应用程序相关联的手势识别器处理视图附接的触摸输入,并且在确定触摸输入满足与特定操作相关联的预定义标准之后使用那些手势识别器停止处理触摸输入使得手势识别器可用于处理附加的触摸输入。提供处理触摸输入的附加能力增强了设备的可操作性,并且使得用户设备界面更有效(例如,通过帮助用户提供更快地获得预期结果的输入并减少与设备进行操作/交互时的用户错误),这又通过使用户能够更快速且高效地使用设备而减少了电力使用并且延长了设备的电池寿命。

在一些实施方案中,方法700包括检测第一触摸在与用于第一应用程序的用户界面对应的区域之外的移动(732)。例如,如图5D和图5E所示,第一触摸从应用程序A的用户界面区域移动到应用程序B的用户界面区域。在此类实施方案中,方法700还包括响应于接收描述第一触摸的信息(734),根据确定(例如,通过第一应用程序)第一触摸不满足与发起相应类型的界面操作相关联的预定义标准(例如,第一触摸在手势的初始部分期间未被识别为拖动操作的一部分),即使在第一触摸移动到对应于用于第一应用程序的用户界面的区域之外并且进入对应于用于第二应用程序的用户界面的区域之后,仍然继续向第一应用程序提供(例如,通过与第一应用程序不同的系统过程)描述第一触摸的信息(736)。例如,在图5I、图5J和图5K所示的示例中,即使在触摸2移动到对应于用于应用程序A的用户界面的区域之外并且进入对应于用于应用程序B的用户界面的区域之后,仍将继续向应用程序A提供关于触摸2的信息。

在一些实施方案中,使用基于第一触摸的初始接触位置确定的命中视图来处理第一触摸,而与第一触摸的移动无关(例如,即使第一触摸移动到触敏表面上的位置,该位置与用户界面中命中视图之外的位置对应)。

在此类实施方案中,方法700还包括,响应于接收描述第一触摸的信息(734),根据确定第一触摸满足与发起相应类型的界面操作相关联的预定义标准(例如,第一触摸在手势的初始部分期间被识别为拖动操作的一部分)(738):当第一触摸在与用于第一应用程序的用户界面对应的区域内时,向第一应用程序提供描述第一触摸的信息(例如,通过不同于第一应用程序的系统过程)(740);并且当第一触摸移动到对应于用于第一应用程序的用户界面的区域之外并进入对应于用于第二应用程序(例如,代替第一应用程序)的用户界面的区域时,切换到向第二应用程序提供描述第一触摸的信息(742)。因此,操作740和742对应于分离触摸的处理。

在执行操作734-742的一些实施方案中,方法700包括,在检测到第一触摸的移动时,并且根据确定第一触摸满足与发起相应类型的界面操作相关联的预定义标准(738):确定对应于第一触摸的相应位置的一个或多个相应区域,其中一个或多个相应区域与一个或多个相应的应用程序相关联(744),并且在第一触摸在相应区域内时,向用于相应区域的相应的应用程序提供描述第一触摸的信息(746)。例如,当触摸输入沿触敏表面移动时,设备执行重复的命中区域测试以确定用于触摸输入的相应位置的相应命中视图。在一些实施方案中,以预定义的时间间隔(触摸输入的采样间隔)确定相应的命中视图。在一些实施方案中,预定义时间间隔以每秒10个或更多个时间间隔的速率顺序发生。在一些实施方案中,相应的命中视图对应于多个应用程序中的不同的应用程序,诸如图5A至图5R中的应用程序A和应用程序B。例如,对应于第一用户输入的第一位置的第一命中视图在第一应用程序(例如,应用程序A,图5A至图5R)中,并且对应于第一用户输入的第二位置的第二命中视图在不同于第一应用程序的第二应用程序(例如,应用程序B,图5A至图5R)中。

在执行操作734-742的一些实施方案中,方法700包括,根据确定第一触摸满足与发起相应类型的界面操作相关联的预定义标准(738),向用于相应区域的相应的应用程序提供描述第一触摸的信息,同时提供描述不满足与发起相应类型的界面操作相关联的预定义标准的一个或多个附加触摸的信息(748)。例如,在一些实施方案中,关于分离的触摸(例如,第一触摸)的信息和关于正常的、视图附接的触摸(例如,一个或多个附加的触摸)的信息以相同的数据结构(例如,具有一个或多个触摸列表的数据结构,其在同一处理帧中被接收和处理(例如,通过第一应用程序)提供给相应的应用程序。

在一些实施方案中,方法700还包括,当涉及相应用户界面对象的用户界面操作继续时(例如,当拖动操作继续时,例如如图5I和图5J所示),接收描述与第一应用程序对应的位置处的触敏表面上的第二触摸(例如,图5I和图5J中的触摸2)的变化的信息(例如,关于一个或多个触摸事件的信息)(750);并且响应于检测到第二触摸的变化,在不考虑第一触摸的情况下使用与第一应用程序相关联的一个或多个手势识别器处理描述第二触摸的变化的信息(752)。注意,可在检测到第一触摸之前、同时或之后检测第二触摸。在此类实施方案中,第二触摸不受第一触摸的影响,只要它不满足特殊情况标准,诸如拖动添加标准。

在一些实施方案中,当涉及相应用户界面对象的用户界面操作继续时,第一应用程序接收描述在对应于第一应用程序的位置处触敏表面上的第二触摸(例如,在检测到第一触摸之前、同时或之后检测到的第二触摸)的信息(例如,一个或多个触摸事件);并且响应于检测到第二触摸,处理描述第二触摸的信息,而不管第一触摸是否满足与发起相应类型的界面操作相关联的预定义标准。例如,第一应用程序处理当前和/或将来的触摸,同时继续将第一触摸检测为拖动操作。

在一些实施方案中,当继续在触敏表面上检测到第一触摸并且当涉及相应用户界面对象的用户界面操作继续时(例如,当拖动操作继续时),方法700包括在第一应用程序处接收描述与第一触摸不同的第二触摸的信息(例如,如图5I和图5J所示,在触敏表面上与第一应用程序中的多个用户界面对象中的第二相应用户界面对象对应的位置处检测到第二触摸;此外,在继续检测到第一触摸的同时检测到第二触摸)(754)。在方法700的这些实施方案中,响应于接收描述第二触摸的信息,并且根据确定(例如,通过第一应用程序)第二触摸满足与用户界面操作相关联的预定义的添加标准(有时在本文中称为拖动添加标准)(例如,用于将用户界面对象添加到拖动操作的标准)(756),方法700包括在第一应用程序处接收关于除了相应类型的界面操作(例如,拖动、放下或弹簧加载操作)之外的用户界面操作忽略(例如,停止处理)第二触摸的指令(758);并且由第一应用程序关于除了相应类型的界面操作之外的用户界面操作忽略第二触摸(例如,即使涉及用户界面对象的用户界面操作诸如拖动操作继续,也将第二触摸视为关于除了拖放操作以外的用户界面操作的取消的触摸)(760)。在一些实施方案中,方法700包括根据涉及相应用户界面对象的用户界面操作来处理第二触摸。

在方法700包括操作760的一些实施方案中,预定义的添加标准包括当第一触摸(例如,对应于拖动操作)与第二触摸(例如,用于将对象添加到拖动操作)之间的距离小于预定义的接近阈值时满足的标准(762)。任选地,当检测到抬离第二触摸时,预定义的添加标准要求第一触摸和第二触摸之间的距离小于预定义的接近阈值。

如上面参考图5O和图5P简要解释的,可同时执行两个单独的拖动操作。在一些实施方案中,方法700包括在显示用于第一应用程序的用户界面的同时,在第一应用程序处接收描述第三触摸(例如,与第一触摸不同)的信息(例如,一个或多个触摸事件),在触敏表面上的对应于第一应用程序中的多个用户界面对象的第三相应用户界面对象的位置处检测到该第三触摸(764)。在此类实施方案中,方法700还包括,响应于接收到描述第三触摸的信息,并且根据确定(例如,通过第一应用程序)第三触摸满足与发起相应类型的界面操作(例如,拖动、放下或弹簧加载)相关联的预定义标准:发起涉及第三相应用户界面对象的相应类型的第二用户界面操作(例如,与(第一)用户界面操作不同)(768)。

此外,方法700的此类方案包括,当在触敏表面上继续检测到第三触摸并且当涉及第三相应用户界面对象的第二用户界面操作继续时(770):在第一应用程序处接收关于除了相应类型的界面操作(例如,拖动、放下或弹簧加载)之外的用户界面操作忽略(例如,停止处理触摸取消事件,任选地响应于触摸取消事件)第三触摸的指令(772);并且由第一应用程序关于除了相应类型的界面操作之外的用户界面操作忽略第三触摸(774)。例如,即使涉及第三用户界面对象的用户界面操作继续,第三触摸也被视为取消的触摸。在一些实施方案中,在检测到第一触摸时检测到第三触摸。在一些实施方案中,第二用户界面操作(例如,第二拖动操作)与第一用户界面操作(例如,第一拖动操作)不同,如图5O和图5P所示,其中同时执行两个单独的拖动操作。

在一些实施方案中,方法700包括,响应于接收到描述第一触摸的信息,由第一应用程序确定第一触摸是否满足与发起相应类型的界面操作相关联的预定义标准(776)。例如,方法700任选地包括确定是否满足与相应的手势识别器相关联的手势识别标准。在一些实施方案中,系统过程或第一应用程序确定是否应该分离触摸。例如,参考图5B、图5C和图5D,可确定触摸(例如,最初在图5B中接收的触摸1)满足拖动开始标准,在这种情况下触摸被分离,如图5D所示,或者不满足拖动开始标准,在这种情况下,触摸被处理为附接触摸,如图5C所示。如图6C所示,在一些实施方案中,通过系统过程诸如系统触摸管理过程确定是否分离触摸,该系统过程对应于命中视图确定模块314(图3B)。另选地,通过具有与触摸的初始位置对应的用户界面区域的应用程序来确定是否分离触摸。

在一些实施方案中,在第一应用程序处接收的关于除了相应类型的界面操作之外的用户界面操作忽略第一触摸的指令包括触摸取消事件(778)。例如,请参见图6A中所示的触摸取消事件以及上面的相关讨论。在一些实施方案中,方法700包括向多个应用程序发送关于除了相应类型的用户界面操作之外的用户界面操作忽略第一触摸的指令,该多个应用程序包括第一应用程序(例如,当前正在监视(“收听”)第一触摸的任何应用程序),其正在接收或已经接收到描述第一触摸的信息。在一些实施方案中,多个应用程序包括主屏幕应用程序(有时称为“SpringBoard”),其甚至在主屏幕应用程序未被主动显示时监视触摸。

在一些实施方案中,方法700包括响应于接收到触摸取消事件,放弃除相应类型的界面操作之外的用户界面操作(例如,涉及相应用户界面对象的用户界面操作)的执行,以及未能将第一触摸识别(例如,停止尝试识别或取消尝试识别)为除了与相应类型的界面操作相关联的预定义手势集合中的一个手势之外的手势(780)。例如,方法700任选地取消或反转用户界面行为,诸如与除了拖放操作之外的操作相关联的对象变换和/或动画,并且任选地将用于除与拖放相关的手势之外的手势的手势识别器设置为取消状态(或其他终端状态),而不是“手势可能”状态。

在方法700的一些实施方案中,发起涉及相应用户界面对象的相应类型的用户界面操作(例如,用于拖动相应用户界面对象的拖动操作)(708)包括向第一应用程序提供标识相应类型的用户界面操作和相应用户界面对象的唯一会话标识符(782)。例如,在图5D中,会话标识符已分配给触摸(触摸1),这将发起涉及对象4的拖动操作,对象4是用于应用程序A的用户界面502中的用户界面对象。在一些实施方案中,会话标识符(有时称为“会话ID”)识别拖动操作以及拖动操作中涉及的内容(被拖动)。在一些实施方案中,每个拖动操作具有唯一的会话标识符(例如,可基于它们相应的会话标识符来区分并发但不同的拖动操作)。例如,如图5O和图5P所示,正在执行两个单独的拖动操作,并且每个拖动操作都被分配不同的会话ID。

在方法700的一些实施方案中,唯一会话标识符与关于拖动操作的附加信息相关联,该附加信息包括以下中的一者或多者:在相应类型的用户界面操作中涉及的包括相应的用户界面对象的用户界面对象的总数,以及相应类型的用户界面操作中涉及的用户界面对象的一个或多个内容类型(784)。例如,在一些实施方案中,唯一会话标识符包括附加信息,或者唯一会话标识符可用于从系统拖动管理过程或拖动操作所源自的应用程序检索信息。在一些实施方案中,如果多个拖动操作同时进行,则不同的拖动操作具有不同的标识符,使得可独立地跟踪拖动操作。

在方法700的一些实施方案中,相应类型的用户界面操作具有相关联的操作阶段值,其描述用户界面操作的当前阶段,并且阶段值选自由以下各项组成的组:退出、进入和在其中(786)。上面参考图6A讨论了拖动事件中的触摸的阶段值。

应当理解,对图7A至图7F中已进行描述的操作的具体次序仅仅是示例性的,并非旨在表明所述次序是可以执行这些操作的唯一次序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当注意,本文关于本文所述的其他方法(例如,方法800和方法900)描述的其他过程的细节同样以类似的方式适用于上文参考图7A至图7F描述的方法700。例如,下面参考方法800描述的交互标识符与不同视图相关联以确定哪些补充手势识别器添加到相应视图以及下面参考方法900描述的手势识别故障依赖性的使用也可以类似于方法700的方式适用。为了简明起见,此处不再重复这些细节。

上述信息处理方法中的操作任选地通过运行信息处理装置中的一个或多个功能模块来实现,该信息处理装置诸如为通用处理器(例如,如以上参考图1和图3A所描述的)或专用芯片。

以上参考图7A至图7F描述的操作任选地由图1或图3A中描绘的部件实现。例如,发起用户界面操作诸如拖动操作或弹簧加载操作,以及方法700的许多其他操作任选地由接触/运动模块130或其事件识别器模块312实现。

添加补充手势识别器

图8A至图8E是示出处理由电子设备检测到的触摸的方法800的流程图,包括将补充手势识别器添加到应用程序的视图,以便为操作诸如拖动操作提供专门的处理。方法800在具有显示器、触敏表面和任选的一个或多个传感器的电子设备(例如,图3中的设备300或图1中的便携式多功能设备100)处执行以检测与触敏表面接触的强度。在一些实施方案中,显示器是触摸屏显示器,并且触敏表面在显示器上或与显示器集成。在一些实施方案中,显示器与触敏表面是分开的。方法800中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。

如下所述,方法800提供了一种处理由设备检测到的触摸的直观方式,该触摸可以是或可不是拖动手势。该方法通过触摸手势和其他用户输入减少了施加在电子设备上的计算负荷,提高了设备响应性,从而减少了延迟。减少响应于触摸输入的延迟还减少了用户的错误输入,诸如用户在等待设备响应用户的早期输入时所做的重复或修改的触摸输入。例如,当用户想要将一个或多个对象从第一应用程序视图或区域拖动到另一个应用程序视图或区域时,这种改进减少了来自用户的输入的数量、范围和/或性质,从而创建了更有效的人机界面。对于电池供电的电子设备,使用户能够更快更有效地执行拖放操作节省了电力并且增加了电池充电期间的时间。

设备在其显示器上显示包括多个视图的用户界面,该多个视图包括第一视图和第二视图,该第一视图与用于处理指向第一视图的触摸输入的第一组一个或多个标准手势识别器相关联,第二视图与用于处理指向第二视图的触摸输入的第二组一个或多个标准手势识别器相关联。多个视图中的一个或多个视图(例如,第一视图和/或第二视图)与指示第一组一个或多个补充手势识别器可添加到对应的视图(例如,通过应用程序独立模块)的第一交互标识符(例如,拖动、放下或弹簧加载交互标识符)相关联(802)。

如图5A至图5R所示,多个视图可包括用于应用程序A的用户界面区域502和用于应用程序B的用户界面区域504。图5A至图5R中的许多指示与应用程序A的视图(例如,界面区域502)或应用程序B的视图(例如,界面区域504)相关联的交互标识符集合的示例。虽然这些示例示出了两个视图与拖动、放下和弹簧加载交互标识符相关联,但是在一些实施方案或情况下,与图5A至图5R中显示的示例相比,一些视图可与较少的交互标识符(例如,仅拖放交互标识符或这些交互标识符中没有一个)相关联,此外,一些视图可与附加的交互标识符(例如,用于与特定多点触摸手势相关联的附加类型的操作的交互标识符)相关联。

图3B示出了用于相应的应用程序视图317-2的视图元数据341包括交互标识符347。此外,多个视图317的每个视图的视图元数据341具有其自己的交互标识符集合。在一些实施方案中,与特定视图相关联的交互标识符是指示预定义的交互标识符集合的哪些交互标识符与该特定视图相关联(例如,分配给该特定视图)的标记值。在一些其他实施方案中,与特定视图相关联的交互标识符是标识符值(例如,字母数字或多位值),并且为该特定视图存储的交互标识符集合指示哪些交互标识符与该特定视图相关联(例如,分配给该特定视图)。当应用程序具有多个视图时,通常情况下,每个视图可与对应的交互标识符集合相关联,并且一些视图可具有与视图中的其他视图不同的相关联的交互标识符集合。

在一些实施方案中,可能的交互(例如,交互的类型)包括拖动交互(例如,可在用户界面上拾取和拖动来自视图的对象)、放下交互(例如,跨用户界面拖动的对象可放到视图上)和弹簧加载交互(例如,在跨过用户界面拖动对象时,悬停在视图的图标上可使得该视图打开;在另一个示例中,如果应用程序图标视图支持弹簧加载交互,则悬停在主屏幕上的应用程序图标上可使得应用程序自身打开;在另一个示例中,悬停在文件夹图标上可使得文件夹打开;并且在又一个示例中,悬停在对象上可使得对象的控件或与对象相关联的控件被激活或去激活(例如,通过在已经满足预定义的弹簧加载标准时切换控件的状态)。

继续方法800的说明,方法800还包括经由触敏表面检测触敏表面上与多个视图的相应视图对应的位置处的触摸输入(804);并且响应于经由触敏表面检测到触摸输入(806):并且(在继续检测到触摸输入时)根据确定触摸输入满足补充手势识别器添加标准,其中补充手势识别器添加标准包括当相应视图具有第一交互标识时满足的标准(808):将与第一交互标识相关联的第一组一个或多个补充手势识别器添加到相应视图(810);利用一个或多个补充手势识别器和与相应视图相关联的一个或多个标准手势识别器来处理触摸输入(812)。在一些实施方案中,基于确定视图中的对象是否支持特定交互(由用于相应视图的拖动、放下或弹簧加载交互标识符确定),通过系统将一个或多个补充手势识别器附接到正在运行的相应视图或与其相关联。

方法800还包括,响应于检测到触摸输入(806),根据确定触摸输入不满足补充手势识别器添加标准,处理在相应视图处的触摸输入(例如,利用与相应视图相关联的一个或多个标准手势识别器或利用与其他交互标识符相关联的一个或多个补充手势识别器),而不将与第一交互标识符相关联的第一组一个或多个补充手势识别器添加到相应视图(814)。

在一些实施方案中,方法800包括检测触摸输入序列,其包括满足补充手势识别器添加标准的第一触摸输入,并且包括不满足补充手势识别器添加标准的在第一触摸输入之后接收到的第二触摸输入。根据前述添加(第一组一个或多个补充手势识别器)(810)和处理(利用第一组一个或多个补充手势识别器)(812)操作来处理第一触摸输入,而根据前述处理(814)来处理第二触摸输入(不添加第一组一个或多个补充手势识别器)。在一些实施方案中,视图接收触摸事件,并且确定视图是否支持与触摸事件相关联的交互(例如,拖动交互、放下交互或弹簧加载交互)。在一些实施方案中,视图的相应交互标识符指定视图是否支持相应的交互。例如,视图接收触摸事件。如果视图具有拖动交互标识符,指示视图允许添加拖动手势识别器(例如,通过独立于应用程序的模块,诸如系统拖动管理过程)并且视图支持拖动交互,则拖动手势识别器被启动并添加到视图(例如,结合接收触摸事件的视图)。在另一个示例中,视图接收拖动输入事件。如果视图具有放下交互标识符,则启动放下手势识别器并将其添加到视图。在一些实施方案中,如果视图具有弹簧加载交互标识符,则启动弹簧加载手势识别器并将其添加到视图。在一些实施方案中,单个交互标识符可用于指定视图支持的多个交互(例如,单个交互标识符可指定视图支持放下交互和弹簧加载交互)。

在方法800的一些实施方案中,补充手势识别器添加标准包括当触摸输入是预定类型的触摸输入时满足的标准(例如,触摸开始进行拖动交互,或者分离的触摸输入以进行弹簧加载交互或放下交互)(820)。

在方法800的一些实施方案中,预定类型的触摸输入是进入相应视图的分离的触摸(822)。例如,图5D和图5E示出了进入应用程序B的视图,界面区域504的触摸输入(触摸1);图6A示出了对应的事件是具有阶段值“进入”的拖动事件中的触摸(或触摸输入)的拖动事件;图6C示出了进入应用程序B的视图的触摸输入导致系统触摸管理过程分离触摸,因此当触摸输入(触摸1)进入应用程序B的视图时,视图接收分离的触摸。

在一些实施方案中,方法800还包括检测触摸输入在相应视图之外的移动(824),并且响应于检测触摸输入在相应视图之外的移动,并且根据确定触摸输入是退出相应视图的分离的触摸(826):从相应视图移除与第一交互标识符相关联的第一组一个或多个补充手势识别器(828)。例如,当触摸输入满足补充手势识别器移除标准时,执行移除一个或多个补充手势识别器,其中补充手势识别器移除标准包括当触摸输入是退出相应视图的预定类型的触摸输入诸如分离的触摸时满足的标准。通过避免使用不再需要处理此类输入的手势识别器来处理触摸输入,当满足补充手势识别器移除标准时移除一个或多个补充手势识别器使得电子设备更有效,从而响应于触摸输入减少延迟。此外,减少响应于触摸输入的延迟减少了用户的错误输入,诸如用户在等待设备响应用户的早期输入时所做的重复或修改的触摸输入。

在方法800的一些实施方案中,或者在一些情况下,触摸输入对应于拖动交互(830)。例如,拖动交互是一种交互,其中来自视图的对象被拾取并且在一个或多个应用程序的用户界面上拖动。

在方法800的一些实施方案中,第一交互标识符是拖动交互标识符(832)。此外,第一组一个或多个补充手势识别器包括拖动开始手势识别器,其包括,为了识别拖动开始手势:要求触摸输入的位置对应于相应视图持续至少预定义的时间段;并且要求在触摸输入的位置对应于相应视图的位置持续至少预定义的时间段之后,触摸输入的位置变化满足横向位移阈值(例如,在继续检测触摸输入的同时)(834)。

在一些此类实施方案中(如上面关于832和834所述),方法800还包括,响应于拖动开始手势的识别,设备(例如,系统拖动管理过程或应用程序)在用户界面中执行指示拖动操作已经开始的拖动开始动作(836)。例如,拖动开始动作(836)的执行可包括根据接触的移动而移动用户界面对象,和/或动画化用户界面对象的外观的变化,例如,给出用户界面对象已从显示的用户界面在z方向上提升的外观。

在一些实施方案中,拖动开始手势识别器包括以下要求中的一者或多者,以便触摸输入满足预定义的拖动开始标准:

1)当触摸输入在触敏表面上保持至少预定义时间段时满足的定时标准;

2)当检测到的用户输入强度在预定义时间段期间保持低于强度阈值时满足的强度要求(有时称为长按标准);

3)当检测到的用户输入的横向位移满足(例如,满足或超过)横向位移阈值时满足的横向位移标准;

4)要求在横向位移标准之前满足定时标准(例如,对于满足拖动标准的输入,输入必须首先满足定时标准,然后满足位移标准);

并且/或者

5)要求触摸输入包括单个接触,或者要求触摸输入包括在触敏表面上的两个并发接触(例如,同时检测到的两个不同接触)。

本领域普通技术人员将容易理解,拖动手势识别器可包括前述要求的其他组合(例如,具有定时要求和横向位移要求的单个接触,或具有横向位移要求但没有定时要求的两个接触,或各种其他此类组合)。

在方法800的一些实施方案中,第一交互标识符是拖动交互标识符(832)。此外,第一组一个或多个补充手势识别器包括拖动添加手势识别器,其包括要求触摸输入包括一个或多个接触(例如,单个接触或同时检测到的两个不同接触),它们的位置对应于相应的视图,以便识别拖动添加手势(838);并且响应于拖动添加手势的识别,设备在用户界面中执行拖动添加开始动作,该拖动添加开始动作指示拖动添加操作已经开始(840)。

在一些实施方案中,拖动添加手势识别器包括要求触摸输入包括两个并发接触以及要求在预定义的时间段内停止检测到两个并发接触(例如,两指轻击手势)。在一些实施方案中,拖动添加手势识别器包括要求触摸输入的位置对应于相应视图持续至少预定义时间段。在一些其他实施方案中,拖动添加手势识别器包括要求触摸输入包括一个或两个并发接触,在预定义的时间段内停止检测(例如,一个或两个手指轻击手势),以及要求一个或两个并发接触发生在已被识别为拖动手势的先前触摸输入的预定义距离内,或者在拖动操作中被先前触摸输入拖动的对象的预定义距离内。在一些实施方案中,拖动开始动作包括使用户界面对象动画化(例如,对应于触摸输入),就好像用户界面对象已经从显示的用户界面在z方向上被提升一样。

在方法800的一些实施方案中,触摸输入对应于放下交互(850)。在一些实施方案中,当已经使用被识别为拖动手势的触摸输入在一个或多个应用程序的用户界面上拖动的对象被放到视图上时,发生放下交互。以上参考图5Q和图5R讨论了放下交互的示例。

在方法800的一些实施方案中,其中触摸输入对应于放下交互(850),第一交互标识符是放下交互标识符(852),并且第一组一个或多个补充手势识别器包括放下手势识别器,其包括要求当停止检测到触摸输入时触摸输入的位置对应于相应视图(854)。在此类实施方案中,如关于852和854所描述的,方法800包括,响应于放下手势的识别,设备在用户界面中执行指示放下操作已经开始的放下动作(856)。任选地,放下动作包括动画化用户界面对象(例如,被触摸输入拖动的对象),就好像用户界面对象已经从显示的用户界面上方在z方向上降低到显示的用户界面中(858)。

在方法800的一些实施方案中,触摸输入对应于弹簧加载交互(860)。在一些实施方案中,在将对象在用户界面上拖动之后,发生弹簧加载交互,将拖动的对象悬停在视图的图标上,这使得该视图打开。在弹簧加载交互的另一个示例中,如果应用程序图标视图支持弹簧加载交互,则将拖动的对象悬停在主屏幕上的应用程序图标上导致应用程序自身打开。在弹簧加载交互的另一个示例中,将拖动的对象悬停在文件夹图标上导致文件夹打开并且显示打开的文件夹的新视图。并且在又一个示例中,将拖动的对象悬停在对象上导致对象的控件或与对象相关联的控件被激活或去激活(例如,通过在已经满足预定义的弹簧加载标准时切换控件的状态)。

在方法800的一些实施方案中,其中触摸输入对应于弹簧加载交互(860),第一交互标识符是弹簧加载交互标识符(862),并且第一组一个或多个补充手势识别器包括弹簧加载手势识别器,其包括要求触摸输入的位置对应于相应视图持续至少预定义时间段,以便识别弹簧加载手势(864)。在此类实施方案中,方法800还包括,响应于弹簧加载手势的识别(866),应用程序执行弹簧加载动作,其包括以下中的一者或多者:激活控件(例如,对应于视图的控件),好像已经选择了控件(例如,轻击或点击),以及打开可存储内容的容器(例如,文件夹或相册)(868)。例如,图5Q和图5R示出了弹簧加载动作(有时称为弹簧加载操作)的示例,其中通过拖动第一对象的触摸输入(触摸1),第一对象(对象4)在容器对象(也称为文件夹)(对象5)上移动。一旦识别出弹簧加载手势,就打开容器对象(对象5),并显示其内容(图5R)。

在方法800的一些实施方案中,弹簧加载手势识别器还包括要求在触敏表面上的触摸输入的速度低于预定义速度阈值(870)。例如,在图5Q所示的示例中,拖动对象(对象4)的触摸输入(触摸1)具有等于或接近零的速度,基本上悬停在对象5上,同时用户等待对象5响应于弹簧加载手势而打开。

在方法800的一些实施方案中,其中输入对应于弹簧加载交互(例如,其中860-870可操作),方法800包括,根据确定在触敏表面上的触摸输入的速度满足预定义的速度阈值,改变相应视图的外观(872)。例如,改变相应视图的外观包括在识别弹簧加载手势之前或在执行弹簧加载操作之前显示相应视图支持弹簧加载交互的指示(例如,触摸输入悬停在其上的对象的动画,或者对象的外边界或周边的颜色或厚度的变化,或对象的背景颜色或模糊或其他显示特性的变化)。在一些实施方案中,作为外观变化的结果,相应视图以其紧接先前的视觉外观的第一变换显示。

在方法800的一些实施方案中,与相应视图相关联的一组一个或多个标准手势识别器通过包括相应视图的应用程序与相应视图相关联,并且第一组一个或多个补充手势识别器通过系统过程(例如,系统拖动管理过程)添加到相应视图(872)。例如,应用程序指定与相应视图相关联的标准手势识别器,而系统过程根据与相应视图相关联的活动标识符和与那些活动标识符相关联的相应的触发条件的满足或另选的与一组补充手势识别器相关联的触发条件的满足指定将补充手势识别器添加到相应视图,该一组补充手势识别器对应于用于相应视图的活动标识符中的每个活动标识符。

在方法800的一些实施方案中,方法800包括经由触敏表面检测在触敏表面上对应于相应视图的第二位置处的第二触摸输入(884);响应于经由触敏表面检测到第二触摸输入(886):根据确定第二触摸输入满足补充手势识别器添加标准,其中补充手势识别器添加标准包括当相应视图具有第一交互标识符时满足的标准(888):将与第一交互标识符相关联的第一组一个或多个补充手势识别器的实例添加到相应视图(890);以及利用一个或多个补充手势识别器的实例和与相应视图相关联的一个或多个标准手势识别器来处理第二触摸输入(892)。例如,当其满足补充手势识别器添加标准时在第一触摸输入上执行的相同组的操作关于其满足补充手势识别器添加标准时的第二触摸输入执行。如上所述,在一些实施方案中,单独的会话标识符与两个触摸输入中的每个触摸输入相关联或分配给两个触摸输入中的每个触摸输入,例如如上面参考图50和图5P所讨论的。

应当理解,对图8A至图8E中已进行描述的操作的具体次序仅仅是示例性的,并非旨在表明所述次序是可以执行这些操作的唯一次序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文参考本文所述的其他方法(例如,方法700和900)所述的其他过程的细节同样以类似的方式适用于上文参考图8A至图8E所述的方法800。例如,将满足预定义标准的触摸输入处理为分离触摸,使用自动添加的补充手势识别器来识别上面参考方法700描述的拖动、放下和弹簧加载手势,以及使用下面参考方法900描述的手势识别故障依赖性也可以类似于方法800的方式适用。为了简明起见,此处不再重复这些细节。

上述信息处理方法中的操作任选地通过运行信息处理装置中的一个或多个功能模块来实现,该信息处理装置诸如为通用处理器(例如,如以上参考图1和图3A所描述的)或专用芯片。

以上参考图8A至图8E描述的操作任选地由图1或图3A中描绘的部件实现。例如,发起用户界面操作诸如拖动操作或弹簧加载操作,以及方法800的许多其他操作任选地由接触/运动模块130或其事件识别器模块312实现。

自动建立手势识别器之间的故障依赖性

图9A至图9D是示出处理由电子设备检测到的触摸的方法900的流程图,包括在一个或多个补充手势识别器和一个或多个标准手势识别器之间建立故障要求,该一个或多个补充手势识别器为操作诸如拖动操作提供专门处理,该一个或多个标准手势识别器由应用程序建立,用于处理应用程序的一个或多个视图中的触摸输入。方法900在具有显示器、触敏表面和任选的一个或多个传感器的电子设备(例如,图3中的设备300或图1中的便携式多功能设备100)处执行以检测与触敏表面的接触强度。在一些实施方案中,显示器是触摸屏显示器,并且触敏表面在显示器上或与显示器集成。在一些实施方案中,显示器与触敏表面是分开的。方法900中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。

如下所述,方法900提供了一种处理由设备检测到的触摸的直观方式,该触摸可以是或可不是拖动手势。该方法通过触摸手势和其他用户输入减少了施加在电子设备上的计算负荷,提高了设备响应性,从而减少了用户的延迟和错误输入。例如,当用户想要将一个或多个对象从第一应用程序视图或区域拖动到另一个应用程序视图或区域时,这种改进减少了来自用户的输入的数量、范围和/或性质,从而创建了更有效的人机界面。对于电池供电的电子设备,使用户能够更快更有效地执行拖放操作节省了电力并且增加了电池充电期间的时间。

设备在其显示器上显示应用程序的用户界面(902),并且在显示应用程序的用户界面时,检测对应于与多个手势识别器相关联的应用程序的用户界面的一部分的用户输入(例如,触摸输入),其中:多个手势识别器中的第一组一个或多个第一标准手势识别器通过应用程序与用户界面的部分相关联(例如,分配给用户界面的部分);多个手势识别器中的第二组一个或多个补充手势识别器通过系统过程(例如,独立于应用程序的过程)与用户界面的该部分相关联(例如,分配给该部分);并且涉及第一标准手势识别器(例如,在第一组一个或多个标准手势识别器中)和第一补充手势识别器(例如,在第二组一个或多个补充手势识别器中)的第一故障要求通过系统过程(例如,应用程序独立过程)与用户界面的部分相关联(例如,分配给用户界面的部分)(904)。方法900还包括,响应于检测到用户输入,根据第一标准手势识别器、第一补充手势识别器和第一故障要求处理用户输入(906)。如上面参考图6D和图6E所讨论的,手势识别器之间的故障要求可由手势识别分级结构诸如分级结构600-A或600-B表示。

在方法900的一些实施方案中,第一组一个或多个(例如,应用程序指定的)标准手势识别器和第二组一个或多个(例如,系统过程指定的)手势识别器被布置成手势识别分级结构,并且第一故障要求包括要求第一相应手势识别器出故障,以便第二相应手势识别器成功识别手势,其中第一相应手势识别器在手势识别分级结构中处于比第二相应手势识别器更高的级别(908)。例如,参考图6E中所示的示例,第一相应手势识别器(例如,基于强度的手势识别器)是手势识别分级结构600-B中的第二相应手势识别器(例如,长按手势识别器)的父级,或者换言之,第二相应手势识别器(例如,长按手势识别器)是手势识别分级结构600-B中的第一相应手势识别器(基于强度的手势识别器)的子级。

在一些实施方案中,可将一个或多个手势识别器(例如,系统过程指定的手势识别器)***到现有的一组手势识别器(例如,应用程序指定的手势识别器)的手势识别分级结构中。例如,从图6D的手势识别分级结构600-A到图6E的手势识别分级结构60-B的转变是由拖动开始手势识别器***到图6D的手势识别分级结构600-A中引起的。在一些实施方案中,手势识别器可以高于分级结构中的现有手势识别器的级别添加到手势识别分级结构(例如,拖动开始手势识别器以高于长按手势识别器的级别被***),使得使用现有手势识别器处理相应的用户输入要求添加的手势识别器无法识别相应的用户输入(例如,在图6E所示的场景中,拖动开始手势识别器必须出故障,以便长按手势识别器识别相应的用户输入)。

在一些实施方案中,可以两个现有手势识别器之间的级别将手势识别器添加到(例如,***到)手势识别分级结构中。例如,关于不包括拖动开始手势识别器的手势识别分级结构(例如,在将拖动开始手势识别器添加到手势识别分级结构之前),处理长按手势需要确定基于强度的手势识别器无法识别手势。在一些实施方案中,如图6E所示,拖动开始手势识别器被添加到基于强度的手势识别器和长按手势识别器之间的分级结构(例如,长按手势识别器低于拖动开始手势识别器,拖动开始手势识别器反过来低于基于强度的手势识别器)。在一些此类实施方案中(例如,在将拖动开始手势识别器添加到手势识别分级结构之后),处理长按手势需要确定基于强度的手势识别器,然后拖动开始手势识别器,都未能识别用户输入(例如,用户输入既不对应于基于强度的手势也不对应于拖动开始手势)。在一些实施方案中,可以低于分级结构中的现有手势识别器的级别将手势识别器添加到手势识别分级结构,使得使用添加的手势识别器处理相应的用户输入要求现有的手势识别器不能识别相应的用户输入(例如,处理拖动开始手势要求基于强度的手势识别器未能识别用户输入)。

在方法900的一些实施方案中,第一故障要求包括要求第一补充手势识别器未能识别用户输入(例如,触摸输入),以便使第一标准手势识别器成功识别手势(910)。例如,在图6E所示的示例中,拖动开始手势识别器必须出故障才能使长按手势识别器成功。在图6E中未示出的另一个示例中,拖动添加手势识别器必须出故障以便使轻击手势识别器成功。

在方法900的一些实施方案中,第一补充手势识别器是拖动添加手势识别器,并且第一标准手势识别器是轻击手势识别器。例如,参见图6E。

在方法900的一些实施方案中,为了识别拖动添加手势,拖动添加手势识别器包括要求用户输入包括在与用户界面中的相应用户界面元素对应的位置处的接触,以及在预定义的时间段内抬离接触(例如,图5L中的T4)(914)。例如,在此类实施方案中,被识别为拖动添加手势的用户输入包括与轻击手势相同的元素。在一些实施方案中,拖动添加手势识别器还包括要求用户输入包括第二接触(例如,与拖动操作对应的接触)。在一些实施方案中,拖动添加手势识别器还包括要求接触和第二接触之间的距离小于预定义的接近阈值。例如,使用“轻击”(例如,具有抬离的接触)将相应的用户界面元素添加到正在进行的拖动操作(例如,第二接触)。任选地,将相应的用户界面元素添加到“附近的”正在进行的拖动操作(例如,在接近阈值内)。例如,图5I、图5L的序列示出了由对象2上的第二触摸(触摸2)执行的拖动添加手势,这导致将对象2添加到对应于第一触摸(触摸1)的拖动操作。在图5I和图5L中,时间t2对应于第一次检测到第二触摸的时间,并且T4对应于前述预定义时间段,其是(或对应于)拖动添加手势的最大持续时间。

在方法900的一些实施方案中,根据第一标准手势识别器、第一补充手势识别器和第一故障要求处理用户输入包括(916):根据确定(例如,通过系统过程)与相应用户界面元素相关联的内容(例如,相应用户界面元素的内容或由相应用户界面元素表示的内容)不能被添加到拖动操作,未能使用拖动添加手势识别器识别用户输入,以及使用轻击手势识别器处理用户输入(918);并且根据确定能够将与相应用户界面元素相关联的内容添加到拖动操作,识别拖动添加手势并将内容添加到拖动操作(920)。在一些实施方案中,为了做出该确定,系统过程查询应用程序以确定应用程序是否支持将内容(例如,与相应用户界面元素相关联的内容)添加到拖动操作(例如,包括相应的用户界面元素的应用程序或应用程序视图是否支持拖动交互)。

在方法900的一些实施方案中,第一补充手势识别器是拖动开始手势识别器,并且第一标准手势识别器是长按手势识别器(922)。此类实施方案由以上参考图6E讨论的手势识别器分级结构表示,或至少与其一致。

在方法900的一些实施方案中,根据确定设备满足紧凑显示标准来执行根据第一标准手势识别器、第一补充手势识别器和第一故障要求处理用户输入。例如,如果设备(例如,智能电话)具有低于预定义阈值的显示尺寸,则拖动开始手势识别器必须在长按手势识别器可识别手势之前出故障。

在方法900的一些实施方案中,根据确定设备(例如,平板计算机)不满足紧凑显示标准(926),第一故障要求包括要求根据通过第一补充手势识别器将用户输入成功识别为第二手势(例如,拖动开始),取消(例如,随后忽略)通过第一标准手势识别器将用户输入成功识别为第一手势(例如,长按)(928)。在此类实施方案中,根据第一标准手势识别器、第一补充手势识别器和第一故障要求处理(参见906)用户输入包括:使用标准手势识别器将用户输入识别为第一手势(例如,长按手势)(932),并且在使用标准手势识别器将用户输入识别为第一手势之后(934):使用补充手势识别器将用户输入识别为第二手势(例如,拖动开始手势)(936),并且停止使用标准手势识别器将用户输入识别为第一手势(例如,取消第一(长按)手势)(938)。

在一些实施方案中,使用标准手势识别器将用户输入识别为第一手势(例如,长按手势)(932)包括,如图5C所示,在与第一手势相关联的用户界面中执行操作,诸如响应于识别长按手势而显示选项的菜单。在一些实施方案中,使用标准手势识别器停止将用户输入识别为第一手势(938)任选地但是通常包括停止执行与第一手势相关联的操作。例如,在图5C所示的示例中,停止执行与第一手势相关联的操作包括响应于识别长按手势而停止显示所显示的选项菜单(参见图5C)(例如,停止显示在从图5C到图5D的转变)。此外,在一些实施方案中,使用补充手势识别器将用户输入识别为第二手势(例如,拖动开始手势)(936)包括在与第二手势相关联的用户界面中执行操作,诸如响应于识别拖动开始手势,显示从用户界面在z方向上提升的用户界面对象的动画,以指示拖动会话的开始。

在方法900的一些实施方案中,第一故障要求包括要求第一标准手势识别器出故障以便第一补充手势识别器成功识别手势(例如,基于强度的手势识别器必须出故障以使拖动开始手势识别器成功,如图6E的手势识别器分级结构600-B所示)(940)。

在方法900的一些实施方案中,诸如与要求940一致的实施方案,第一标准手势识别器是基于强度的手势识别器(例如,要求触摸输入来满足强度标准的手势识别器,诸如要求接触的特征强度增加到强度阈值以上,以便手势识别器成功识别手势),并且第一补充手势识别器是拖动开始手势识别器(942)。参见上面对图6E的讨论,其以图形方式描绘了对应的手势识别器分级结构600-B。

在方法900的一些实施方案中,第一补充手势识别器是拖动开始手势识别器,并且为了识别拖动开始手势,拖动开始手势识别器包括:要求用户输入包括持续至少预定义时间段的对应于用户界面中相应的用户界面元素的位置处的接触;并且要求在接触的位置对应于相应用户界面元素持续至少预定义时间段之后,接触位置的变化满足横向位移阈值(例如,在继续检测接触时)(944)。在此类实施方案中,在移动和满足横向位移阈值之前(例如,通过横向移动至少一定数量的像素),被识别为拖动开始手势的触摸输入最初保持在一个位置处,通常在对象上或上方(例如,对象4上的触摸1,图5D)持续至少预定义的时间段。

在方法900的一些实施方案中,第一补充手势识别器是拖动开始手势识别器,并且为了识别拖动开始手势,拖动开始手势识别器包括:要求用户输入包括在对应于用户界面中的相应用户界面元素(例如,用户界面区域502中的对象4,图5F)的位置处的触敏表面上的两个并发接触(例如,同时检测到的两个不同接触,如图5F所示);并且要求两个并发接触的位置变化满足横向位移阈值(946)。在一些实施方案中,对于包括用户界面元素上的两个并发接触的用户输入,拖动开始手势识别器不包括要求在至少预定义时间段内检测到用户输入。在此类实施方案中,一旦两指输入与触敏表面接触,使用两指输入使得用户能够开始拖动手势的横向位移阶段。在一些实施方案中,拖动开始手势识别器包括要求两个并发接触彼此保持在第二预定义接近阈值内(例如,两个并发接触基本上一起移动而不是彼此远离)。

在方法900的一些实施方案中,第一补充手势识别器是拖动添加手势识别器,并且为了识别拖动添加手势,拖动添加手势识别器包括要求用户输入包括在对应于用户界面中的相应用户界面元素的位置处的两个并发接触,以及在预定义时间段内两个并发接触的抬离(例如,用户输入是两指轻击手势,而不是上面参考图5I和图5L讨论的单指轻击手势)(948)。在一些实施方案中,拖动添加手势识别器还包括要求用户输入包括第三接触(例如,对应于在拖动添加手势之前开始的拖动操作)。在一些实施方案中,拖动添加手势识别器还包括要求距第三接触到最接近的两个接触的距离小于预定义的接近阈值。当满足这些要求时,使用两指拖动添加手势(例如,两个并发的接触)将相应的用户界面元素添加到正在进行的拖动操作(例如,第三接触)。因此,相应的用户界面元素被添加到“附近的”正在进行的拖动操作(例如,在接近阈值内)。

应当理解,对图9A至图9D中已进行描述的操作的具体次序仅仅是示例性的,并非旨在表明所述次序是可以执行这些操作的唯一次序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法800和900)所述的其他过程的细节同样以类似的方式适用于上文结合图9A至图9D所述的方法900。例如,上面参考方法800描述的交互标识符与不同视图相关联以确定哪些补充手势识别器添加到相应视图,以及上面参考方法700描述的使用自动添加的补充手势识别器以识别拖动、放下和弹簧加载手势将满足预定义标准的触摸输入处理为分离触摸也可以类似于方法900的方式适用。为了简明起见,此处不再重复这些细节。

上述信息处理方法中的操作任选地通过运行信息处理装置中的一个或多个功能模块来实现,该信息处理装置诸如为通用处理器(例如,如以上参考图1和图3A所描述的)或专用芯片。

以上参考图7A至图7F描述的操作任选地由图1或图3A中描绘的部件实现。例如,发起用户界面操作诸如拖动操作或弹簧加载操作,以及方法700的许多其他操作任选地由接触/运动模块130或其事件识别器模块312实现。

出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择和描述实施方案是为了最佳地阐明本发明的原理及其实际应用,以便由此使得本领域的其他技术人员能够最佳地使用具有适合于所构想的特定用途的各种修改的本发明以及各种所描述的实施方案。

114页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于触摸屏设备的拖放

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类