JP6559881B2 - デバイス及びその強度に基づいてタッチ入力を処理するための方法 - Google Patents

デバイス及びその強度に基づいてタッチ入力を処理するための方法 Download PDF

Info

Publication number
JP6559881B2
JP6559881B2 JP2018506425A JP2018506425A JP6559881B2 JP 6559881 B2 JP6559881 B2 JP 6559881B2 JP 2018506425 A JP2018506425 A JP 2018506425A JP 2018506425 A JP2018506425 A JP 2018506425A JP 6559881 B2 JP6559881 B2 JP 6559881B2
Authority
JP
Japan
Prior art keywords
input
touch
intensity
gesture recognizer
gesture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018506425A
Other languages
English (en)
Other versions
JP2018523243A (ja
Inventor
ピーター, エル. ハジャス,
ピーター, エル. ハジャス,
ソフィア トイスチラー,
ソフィア トイスチラー,
オリバー, ディー.アール. グートネクト,
オリバー, ディー.アール. グートネクト,
コリン, エイチ. バレット,
コリン, エイチ. バレット,
ケネス, エル. コシエンダ,
ケネス, エル. コシエンダ,
ニコル, エム. ウェルス,
ニコル, エム. ウェルス,
チャナカ, ジー. カルナムニ,
チャナカ, ジー. カルナムニ,
ルイーズ, マルコス アロンソ
ルイーズ, マルコス アロンソ
グレゴリー, エム. アポダカ,
グレゴリー, エム. アポダカ,
ジョナサン, アール. ダスコーラ,
ジョナサン, アール. ダスコーラ,
クリストファー, ピー. フォス,
クリストファー, ピー. フォス,
マイケル, ティー. ユレウィッツ,
マイケル, ティー. ユレウィッツ,
ジェームス, ティー. モンゴメリ,
ジェームス, ティー. モンゴメリ,
ケビン, イー. リズデール,
ケビン, イー. リズデール,
ウェイン, シー. ウェスターマン,
ウェイン, シー. ウェスターマン,
モーガン, エイチ. ワイナー,
モーガン, エイチ. ワイナー,
アレックス ビジャモフ,
アレックス ビジャモフ,
ジェイコブ, エー. シャオ,
ジェイコブ, エー. シャオ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2018523243A publication Critical patent/JP2018523243A/ja
Application granted granted Critical
Publication of JP6559881B2 publication Critical patent/JP6559881B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/04166Details of scanning methods, e.g. sampling time, grouping of sub areas or time sharing with display driving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0414Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using force sensing means to determine a position
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04105Pressure sensors for measuring the pressure or force exerted on the touch surface without providing the touch position

Description

本出願は概して、限定するものではないが、タッチ感知面上の接触の強度を検出するためのセンサを備える電子デバイスを含む、タッチ感知面を備える電子デバイスに関する。
コンピュータ及び他の電子計算デバイス用の入力デバイスとしてのタッチ感知面の使用は、近年では、著しく増大している。例示的なタッチ感知面としては、タッチパッド及びタッチスクリーンディスプレイが挙げられる。このような面は、ディスプレイ上のユーザインターフェースオブジェクトを操作するために幅広く使用されている。
例示的な操作としては、1つ以上のユーザインターフェースオブジェクトの位置及び/若しくはサイズを調節すること、又はボタンをアクティブにすること、又はユーザインターフェースオブジェクトによって表されるファイル/アプリケーションを開くこと、並びに1つ以上のユーザインターフェースオブジェクトにメタデータを関連付けること、あるいは他の方式でユーザインターフェースを操作することが挙げられる。例示的なユーザインターフェースオブジェクトには、デジタル画像、ビデオ、テキスト、アイコン、ボタンなどの制御要素、及びその他のグラフィックが挙げられる。ユーザは、一部の状況では、ファイル管理プログラム(例えば、カリフォルニア州CupertinoのApple Inc.製のFinder)、画像管理アプリケーション(例えば、カリフォルニア州CupertinoのApple Inc.製のAperture、iPhoto、Photos)、デジタルコンテンツ(例えば、ビデオ及びミュージック)管理アプリケーション(例えば、カリフォルニア州CupertinoのApple Inc.製のiTunes)、描画アプリケーション、プレゼンテーションアプリケーション(例えば、カリフォルニア州CupertinoのApple Inc.製のKeynote)、ワードプロセッシングアプリケーション(例えば、カリフォルニア州CupertinoのApple Inc.製のPages)、ウェブサイト作成アプリケーション(例えば、カリフォルニア州CupertinoのApple Inc.製のiWeb)、ディスクオーサリングアプリケーション(例えば、カリフォルニア州CupertinoのApple Inc.製のiDVD)、又はスプレッドシートアプリケーション(例えば、カリフォルニア州CupertinoのApple Inc.製のNumbers)において、ユーザインターフェースオブジェクト上でこのような操作を実行する必要がある。
しかしながら、これらの操作を処理するための既存の方法は、煩雑かつ非効率的である。更には、既存の方法は、必要以上に長い時間を要することにより、エネルギーを浪費する。この後者の考慮事項は、バッテリ動作デバイスにおいては特に重要である。
したがって、本開示は電子デバイスに、タッチ入力を処理するためのより高速でより効率的な方法を提供する。かかる方法及びインターフェースは、任意選択的に、タッチ入力を処理するための従来の方法を補完する、又はそれらに置き換わる。かかる方法及びインターフェースは、タッチ入力のカスタマイズされた処理を可能にすることによって、より効率的なヒト−マシンインターフェースを提供する。更に、かかる方法は、タッチ入力を処理するために消費される処理電力を低減し、電力を節約し、不要な/無関係の/重複する入力を低減し、場合によってはメモリの使用を低減する。バッテリ動作デバイスの場合、かかる方法及びインターフェースにより、バッテリ電力を節約し、バッテリの充電の間の時間を増やす。
タッチ感知面を備える電子デバイス用のユーザインターフェースに関連付けられた、上記の欠陥及び他の問題点は、開示されるデバイスによって低減されるか、又は取り除かれる。一部の実施形態では、このデバイスは、デスクトップコンピュータである。一部の実施形態では、このデバイスは、ポータブル(例えば、ノートブックコンピュータ、タブレットコンピュータ、又はハンドヘルドデバイス)である。一部の実施形態では、このデバイスは、タッチパッドを有する。一部の実施形態では、このデバイスは、タッチ感知ディスプレイ(「タッチスクリーン」又は「タッチスクリーンディスプレイ」としても知られる)を有する。一部の実施形態では、このデバイスは、グラフィカルユーザインターフェース(GUI)と、1つ以上のプロセッサと、メモリと、複数の機能を実行するためにメモリに記憶された1つ以上のモジュール、プログラム、又は命令セットと、を有する。一部の実施形態では、ユーザは主にタッチ感知面上でのスタイラス及び/又は指の接触及びジェスチャを介してGUIと対話する。一部の実施形態では、機能は、画像編集、描画、プレゼンティング、ワードプロセッシング、ウェブサイト作成、ディスクオーサリング、スプレッドシートの作成、ゲームプレイ、電話をかけること、ビデオ会議、電子メール送信、インスタントメッセージング、トレーニングサポート、デジタル写真撮影、デジタルビデオ撮影、ウェブブラウジング、デジタル音楽の再生、及び/又はデジタルビデオの再生を、任意選択的に含む。これらの機能を実行するための実行可能命令は、非一時的コンピュータ可読記憶媒体又は1つ以上のプロセッサによって実行されるように構成された他のコンピュータプログラム製品に、任意選択的に含まれる。別法として又は加えて、これらの機能を実行する実行可能命令は、任意選択的に、一時的コンピュータ可読記憶媒体又は1つ以上のプロセッサによって実行されるように構成された他のコンピュータプログラム製品に含まれる。
一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、方法が実行される。方法は、第1のユーザインターフェースを表示することと、第1のユーザインターフェースの表示中にタッチ感知面上の入力を検出することと、を含む。方法は、第1のユーザインターフェースの表示中に入力を検出することに応じて、第1の所定の時間期間の間に入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足するとの判定に従って、第1の動作を実行することと、第1の所定の時間期間の間入力が第1の強度閾値未満に留まることを含む長い押圧基準を入力が満足するとの判定に従って、第1の動作とは異なる第2の動作を実行することと、を更に含む。
一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、方法が実行される。方法は、第1のユーザインターフェースを表示することと、第1のユーザインターフェースの表示中にタッチ感知面上の入力を検出することと、を含む。方法は、第1のユーザインターフェースの表示中に入力を検出することに応じて、入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足するとの判定に従って、第1の動作を実行することと、入力がタッチ感知面を少なくとも所定の距離だけ横切ったことを含むパン基準を入力が満足するとの判定に従って、第1の動作とは異なる第2の動作を実行することと、を更に含む。
一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、方法が実行される。方法は、第1のユーザインターフェースを表示することと、第1のユーザインターフェースの表示中にタッチ感知面上の入力を検出することと、を含む。方法は、第1のユーザインターフェースの表示中に入力を検出することに応じて、入力が第1の強度閾値を満足しかつ第1の所定の時間期間の間入力がタッチ感知面上に留まることを含む強度入力基準を入力が満足するとの判定に従って、第1の動作を実行することと、入力が第1の所定の時間期間の間タッチ感知面上に留まるのをやめることを含むタップ基準を入力が満足するとの判定に従って、第1の動作とは異なる第2の動作を実行することと、を更に含む。
一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、方法が実行される。方法は、第1のソフトウェアアプリケーションの第1のユーザインターフェースを表示することであって、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクトは、プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられている、表示することと、ディスプレイ上でフォーカスセレクタが複数のユーザインターフェースオブジェクト中の第1のユーザインターフェースオブジェクト上にある間に、接触による入力の第1の部分を検出することと、入力の第1の部分の検出に応じて及び入力が第1の強度閾値を満足することを含むリビール(reveal)基準を入力の第1の部分が満足するとの判定に従って、アプリケーション非依存の所定の命令セットにプレビューコンテンツを提供することを含めて、プレビュー動作のためのアプリケーション非依存の所定の命令セットを実行することと、を含む。アプリケーション非依存の所定の命令セットを実行することによって実行されるプレビュー動作は、第1のユーザインターフェース内の第1のユーザインターフェースオブジェクトを視覚的に区別することと、第1のユーザインターフェース内の第1のユーザインターフェースオブジェクトの視覚的区別の開始後に、入力の第1の部分に続く入力の第2の部分を受信すること、及び、入力が第2の強度閾値を満足することを含むプレビュー基準を入力の第2の部分が満足するとの判定に従って、第1のユーザインターフェース上に重ねられたプレビュー領域を表示することと、を含む。プレビュー領域はプレビューコンテンツを含む。
一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、方法が実行される。方法は、第1のソフトウェアアプリケーションの第1のユーザインターフェースを表示することであって、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクトは、プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられている、表示することと、ディスプレイ上でフォーカスセレクタが複数のユーザインターフェースオブジェクト中の第1のユーザインターフェースオブジェクト上にある間に、接触による入力の第1の部分を検出することと、入力の第1の部分の検出に応じて及びプレビュー基準を入力の第1の部分が満たすとの判定に従って、プレビュー動作のためのアプリケーション非依存の所定の命令セットを実行することと、を含む。アプリケーション非依存の所定の命令セットを実行することによって実行されるプレビュー動作は、第1のユーザインターフェース上に重ねられたプレビュー領域を表示することと、入力の第1の部分の検出後に入力の第2の部分を検出することと、接触による入力の第2の部分の検出に応じて、入力の第2の部分がユーザインターフェース入れ替え基準を満たすとの判定に従って、第1のユーザインターフェースの表示を第1のユーザインターフェースとは異なる第2のユーザインターフェースと入れ替えることと、を含む。
一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、方法が実行される。方法は、ディスプレイ上にソフトウェアアプリケーションのユーザインターフェースを表示することと、ディスプレイ上でソフトウェアアプリケーションのユーザインターフェースを表示している間に、ソフトウェアアプリケーションのユーザインターフェースに対応する場所におけるタッチ感知面上の入力を検出することと、入力の検出に応じて、アプリケーション非依存の命令セットからソフトウェアアプリケーションに入力に対応する強度情報を送ることと、を含む。強度情報は、1つ以上のセンサに割り当てられた基準強度、及び検出された入力の強度に対応する特性強度を含む。
一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、方法が実行される。方法は、ディスプレイ上にソフトウェアアプリケーションの第1のユーザインターフェースを表示することと、ソフトウェアアプリケーションの第1のユーザインターフェースの表示中に、タッチ感知面上の入力を検出することと、入力の検出中に、入力の強度の変化の検出に応じて、アプリケーション非依存の命令セットからソフトウェアアプリケーションに入力の強度の変化を表す第1の進度インジケータの値を提供すること、並びに、アプリケーション非依存の命令セットとは異なるソフトウェアアプリケーション中の命令セット及び第1の進度インジケータの値に従って第1のユーザインターフェースを更新することと、を含む。
一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、方法が実行される。方法は、ディスプレイ上に、オペレーティングシステム内で実行される第1の第三者アプリケーションのユーザインターフェースを表示することを含む。デバイスの機能は、オペレーティングシステムのオペレーティングシステムフレームワークを通して、第1の第三者アプリケーションに曝される。オペレーティングシステムフレームワークは、デバイスが認識できる複数のジェスチャクラスを定義する。第1のジェスチャクラスは、第1のジェスチャ認識基準が満たされるときに、タッチ感知面上で検出された入力を第1のジェスチャとして認識するための、第1のジェスチャ認識基準に関連付けられている。第1の第三者アプリケーションは、インターフェース第1の動作に関して、ユーザインターフェースの第1の部分を第1のジェスチャクラスからの第1のジェスチャに関連付けている。第1の第三者アプリケーションは、第1の動作に関してユーザインターフェースの第1の部分に関連付けられた第1のジェスチャに関する第1の強度基準を指定している。方法は、ディスプレイ上で第1の第三者アプリケーションのユーザインターフェースを表示している間に、第1の第三者アプリケーションのユーザインターフェースの第1の部分に対応する場所におけるタッチ感知面上の入力を検出することも含む。方法は、入力の検出に応じて、第1のジェスチャ認識基準を入力が満たすとの及び第1の第三者アプリケーションによって指定された第1の強度基準を入力が満たすとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分と関連付けられた第1の動作を実行することと、入力が第1のジェスチャ認識基準を満たすが第1の第三者アプリケーションによって指定された第1の強度基準は満たさないとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分と関連付けられた第1の動作の実行を取り止めることと、を更に含む。
一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、方法が実行される。方法は、ディスプレイ上にユーザインターフェースを表示することを含む。方法は、ユーザインターフェースの表示中に、タッチ感知面上の入力を検出することと、第1のユーザインターフェースの表示中に入力を検出することに応じて、入力の検出中に、第1のタイミング基準及び第1の強度入力基準を入力が満足するとの判定に従って、第1の動作を実行することも含む。第1のタイミング基準は、第1の時間期間が経過する間、入力がタッチ感知面上に留まることを要求する。第1の強度入力基準は、入力が第1の時間期間の終わりに又はこれに続いて第1の強度閾値を満足することを要求する。
一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、方法が実行される。方法は、ディスプレイ上にユーザインターフェースを表示することを含む。方法は、ユーザインターフェースの表示中に、タッチ感知面上の入力を検出することと、第1のユーザインターフェースの表示中に入力を検出することに応じて、入力の検出中に、アクティブ化強度閾値を入力が満足するとの判定に従って、第1の動作を実行することも含む。アクティブ化強度閾値は、第1の強度値から時間とともに減少する第1の強度閾値成分を含む。
一部の実施形態によれば、電子デバイスは、ユーザインターフェースを表示するように構成されたディスプレイユニットと、接触を受けるためのタッチ感知面ユニットと、タッチ感知面ユニットとの接触の強度を検出するための1つ以上のセンサユニットと、ディスプレイユニット、タッチ感知面ユニット、及び1つ以上のセンサユニットに結合された処理ユニットと、を含む。処理ユニットは、長い押圧ジェスチャと深い押圧入力との間の区別を行うように、並びに長い押圧ジェスチャ及び深い押圧入力に応じて個別の動作を実行するように、構成されている。より具体的には、処理ユニットは、第1のユーザインターフェースの表示を可能にし、第1のユーザインターフェースの表示を可能にしている間にタッチ感知面ユニット上の入力を検出し、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、第1の所定の時間期間の間に入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足するとの判定に従って、第1の動作を実行し、及び、第1の所定の時間期間の間入力が第1の強度閾値未満に留まることを含む長い押圧基準を入力が満足するとの判定に従って、第2の動作を実行する、ように構成されている。
一部の実施形態によれば、電子デバイスは、ユーザインターフェースを表示するように構成されたディスプレイユニットと、接触を受けるためのタッチ感知面ユニットと、タッチ感知面ユニットとの接触の強度を検出するための1つ以上のセンサユニットと、ディスプレイユニット、タッチ感知面ユニット、及び1つ以上のセンサユニットに結合された処理ユニットと、を含む。処理ユニットは、パンジェスチャと深い押圧入力との間の区別を行うように、並びにパンジェスチャ及び深い押圧入力に応じて個別の動作を実行するように、構成されている。より具体的には、処理ユニットは、第1のユーザインターフェースの表示を可能にし、第1のユーザインターフェースの表示を可能にしている間にタッチ感知面ユニット上の入力を検出し、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足するとの判定に従って、第1の動作を実行し、及び、入力がタッチ感知面を少なくとも所定の距離だけ横切ったことを含むパン基準を入力が満足するとの判定に従って、第2の動作を実行する、ように構成されている。
一部の実施形態によれば、電子デバイスは、ユーザインターフェースを表示するように構成されたディスプレイユニットと、接触を受けるためのタッチ感知面ユニットと、タッチ感知面ユニットとの接触の強度を検出するための1つ以上のセンサユニットと、ディスプレイユニット、タッチ感知面ユニット、及び1つ以上のセンサユニットに結合された処理ユニットと、を含む。処理ユニットは、タップジェスチャ入力と深い押圧入力との間の区別を行うように、並びにタップジェスチャ及び深い押圧入力に応じて個別の動作を実行するように、構成されている。かかる実施形態では、処理ユニットは、第1のユーザインターフェースの表示を可能にするように構成されており、第1のユーザインターフェースの表示を可能にしている間にタッチ感知面ユニット上の入力を検出すること、並びに、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力が第1の強度閾値を満足しかつ第1の所定の時間期間の間入力がタッチ感知面上に留まることを含む強度入力基準を入力が満足するとの判定に従って、第1の動作を実行する、及び、入力が第1の所定の時間期間の間タッチ感知面上に留まるのをやめることを含む長い押圧基準を入力が満足するとの判定に従って、第2の動作を実行すること、を行うように更に構成されている。
一部の実施形態によれば、電子デバイスは、1つ以上のユーザインターフェースを表示するように構成されたディスプレイユニットと、ユーザ入力を受けるためのタッチ感知面ユニットと、タッチ感知面ユニットとの接触の強度を検出するための1つ以上のセンサユニットと、ディスプレイユニット、タッチ感知面ユニット、及び1つ以上のセンサユニットに結合された処理ユニットと、を含む。処理ユニットは、第1のソフトウェアアプリケーションの第1のユーザインターフェースであって、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクトは、プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられている、第1のユーザインターフェースの表示を可能にし、ディスプレイユニット上でフォーカスセレクタが複数のユーザインターフェースオブジェクト中の第1のユーザインターフェースオブジェクト上にある間に、接触による入力の第1の部分を検出し、入力の第1の部分の検出に応じて及び入力が第1の強度閾値を満足することを含むリビール基準を入力の第1の部分が満足するとの判定に従って、アプリケーション非依存の所定の命令セットにプレビューコンテンツを提供することを含めて、プレビュー動作のためのアプリケーション非依存の所定の命令セットを実行する、ように構成されている。アプリケーション非依存の所定の命令セットを実行することによって実行されるプレビュー動作は、第1のユーザインターフェース内の第1のユーザインターフェースオブジェクトを視覚的に区別することと、第1のユーザインターフェース内の第1のユーザインターフェースオブジェクトの視覚的区別の開始後に、入力の第1の部分に続く入力の第2の部分を受信すること、及び、入力が第2の強度閾値を満足することを含むプレビュー基準を入力の第2の部分が満足するとの判定に従って、第1のユーザインターフェース上に重ねられたプレビュー領域の表示を可能にすることと、を含む。プレビュー領域はプレビューコンテンツを含む。
一部の実施形態によれば、電子デバイスは、1つ以上のユーザインターフェースを表示するように構成されたディスプレイユニットと、ユーザ入力を受けるためのタッチ感知面ユニットと、タッチ感知面ユニットとの接触の強度を検出するための1つ以上のセンサユニットと、ディスプレイユニット、タッチ感知面ユニット、及び1つ以上のセンサユニットに結合された処理ユニットと、を含む。処理ユニットは、第1のソフトウェアアプリケーションの第1のユーザインターフェースであって、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクトは、プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられている、第1のユーザインターフェースの表示を可能にし、ディスプレイユニット上でフォーカスセレクタが複数のユーザインターフェースオブジェクト中の第1のユーザインターフェースオブジェクト上にある間に、接触による入力の第1の部分を検出し、入力の第1の部分の検出に応じて及びプレビュー基準を入力の第1の部分が満たすとの判定に従って、プレビュー動作のためのアプリケーション非依存の所定の命令セットを実行する、ように構成されている。アプリケーション非依存の所定の命令セットを実行することによって実行されるプレビュー動作は、第1のユーザインターフェース上に重ねられたプレビュー領域の表示を可能にすることと、入力の第1の部分の検出後に入力の第2の部分を検出することと、接触による入力の第2の部分の検出に応じて、入力の第2の部分がユーザインターフェース入れ替え基準を満たすとの判定に従って、第1のユーザインターフェースの表示を第1のユーザインターフェースとは異なる第2のユーザインターフェースと入れ替えることと、を含む。
一部の実施形態によれば、電子デバイスは、ユーザインターフェースを表示するように構成されたディスプレイユニットと、ユーザ入力を受けるように構成されたタッチ感知面ユニットと、タッチ感知面ユニットとの接触の強度を検出するように構成された1つ以上のセンサユニットと、ディスプレイユニット、タッチ感知面ユニット、及び1つ以上のセンサユニットに結合された処理ユニットと、を含む。処理ユニットは、ディスプレイユニット上での、ソフトウェアアプリケーションのユーザインターフェースの表示を可能にし、ディスプレイユニット上でのソフトウェアアプリケーションのユーザインターフェースの表示を可能にしている間に、ソフトウェアアプリケーションのユーザインターフェースに対応する場所におけるタッチ感知面ユニット上の入力を検出し、入力の検出に応じて、アプリケーション非依存の命令セットからソフトウェアアプリケーションに入力に対応する強度情報を送る、ように構成されている。強度情報は、1つ以上のセンサに割り当てられた基準強度、及び検出された入力の強度に対応する特性強度を含む。
一部の実施形態によれば、電子デバイスは、ユーザインターフェースを表示するように構成されたディスプレイユニットと、ユーザ入力を受けるように構成されたタッチ感知面ユニットと、タッチ感知面ユニットとの接触の強度を検出するように構成された1つ以上のセンサユニットと、ディスプレイユニット、タッチ感知面ユニット、及び1つ以上のセンサユニットに結合された処理ユニットと、を含む。処理ユニットは、ディスプレイユニット上での、ソフトウェアアプリケーションの第1のユーザインターフェースの表示を可能にすることと、ソフトウェアアプリケーションの第1のユーザインターフェースの表示を可能にしている間に、タッチ感知面ユニット上の入力を検出することと、入力の検出中に、入力の強度の変化の検出に応じて、アプリケーション非依存の命令セットからソフトウェアアプリケーションに入力の強度の変化を表す第1の進度インジケータの値を提供すること、並びに、アプリケーション非依存の命令セットとは異なるソフトウェアアプリケーション中の命令セット及び第1の進度インジケータの値に従って第1のユーザインターフェースを更新することと、を含む。
一部の実施形態によれば、ユーザインターフェースを表示するように構成されたディスプレイユニットと、接触を受けるように構成されたタッチ感知面ユニットと、タッチ感知面ユニット上の接触の強度を検出するように構成された1つ以上のセンサユニットと、ディスプレイユニット、タッチ感知面ユニット、及び1つ以上のセンサユニットに結合された処理ユニット。処理ユニットは、ディスプレイユニット上での、オペレーティングシステム内で実行される第1の第三者アプリケーションのユーザインターフェースの表示を可能にするように構成されている。デバイスの機能は、オペレーティングシステムのオペレーティングシステムフレームワークを通して、第1の第三者アプリケーションに曝される。オペレーティングシステムフレームワークは、デバイスが認識できる複数のジェスチャクラスを定義する。第1のジェスチャクラスは、第1のジェスチャ認識基準が満たされるときに、タッチ感知面上で検出された入力を第1のジェスチャとして認識するための、第1のジェスチャ認識基準に関連付けられている。第1の第三者アプリケーションは、インターフェース第1の動作に関して、ユーザインターフェースの第1の部分を第1のジェスチャクラスからの第1のジェスチャに関連付けている。第1の第三者アプリケーションは、第1の動作に関してユーザインターフェースの第1の部分に関連付けられた第1のジェスチャに関する第1の強度基準を指定している。処理ユニットはまた、ディスプレイユニット上での第1の第三者アプリケーションのユーザインターフェースの表示を可能にしている間に、第1の第三者アプリケーションのユーザインターフェースの第1の部分に対応する場所におけるタッチ感知面上の入力を検出し、入力の検出に応じて、第1のジェスチャ認識基準を入力が満たすとの及び第1の第三者アプリケーションによって指定された第1の強度基準を入力が満たすとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分と関連付けられた第1の動作を実行し、及び、入力が第1のジェスチャ認識基準を満たすが第1の第三者アプリケーションによって指定された第1の強度基準は満たさないとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分と関連付けられた第1の動作の実行を取り止める、ように構成されている。
一部の実施形態によれば、電子デバイスは、ユーザインターフェースを表示するように構成されたディスプレイユニットと、接触を受けるためのタッチ感知面ユニットと、タッチ感知面ユニットとの接触の強度を検出するための1つ以上のセンサユニットと、ディスプレイユニット、タッチ感知面ユニット、及び1つ以上のセンサユニットに結合された処理ユニットと、を含む。処理ユニットは、ディスプレイユニット上でのユーザインターフェースの表示を可能にし、ユーザインターフェースの表示を可能にしている間に、タッチ感知面ユニット上の入力を検出し、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力の検出中に、第1のタイミング基準及び第1の強度入力基準を入力が満足するとの判定に従って、第1の動作を実行する、ように構成されている。第1のタイミング基準は、第1の時間期間が経過する間、入力がタッチ感知面ユニット上に留まることを要求する。第1の強度入力基準は、入力が第1の時間期間の終わりに又はこれに続いて第1の強度閾値を満足することを要求する。
一部の実施形態によれば、電子デバイスは、ユーザインターフェースを表示するように構成されたディスプレイユニットと、接触を受けるためのタッチ感知面ユニットと、タッチ感知面ユニットとの接触の強度を検出するための1つ以上のセンサユニットと、ディスプレイユニット、タッチ感知面ユニット、及び1つ以上のセンサユニットに結合された処理ユニットと、を含む。処理ユニットは、ディスプレイユニット上でのユーザインターフェースの表示を可能にし、ユーザインターフェースの表示を可能にしている間に、タッチ感知面ユニット上の入力を検出し、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力の検出中に、アクティブ化強度閾値を入力が満足するとの判定に従って、第1の動作を実行する、ように構成されている。アクティブ化強度閾値は、第1の強度値から時間とともに減少する第1の強度閾値成分を含む。
一部の実施形態によれば、電子デバイスは、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、1つ以上のプロセッサと、メモリと、1つ以上のプログラムと、を含み、1つ以上のプログラムはメモリ内に記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、本明細書に記載の方法のいずれかの動作を実行するか又は実行させる命令を含む。一部の実施形態では、電子デバイスは、電子デバイスに関連付けられたスタイラスからの信号を検出するための、1つ以上のセンサを含む。一部の実施形態によれば、コンピュータ可読記憶媒体(例えば、非一時的コンピュータ可読記憶媒体、又は別法として、一時的コンピュータ可読記憶媒体)は、内部に命令を記憶しており、その命令は、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサとを備える電子デバイスによって実行されると、本明細書に記載の方法のいずれかの動作を、そのデバイスに実行させる、又は実行させる。一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、メモリと、メモリ内に記憶された1つ以上のプログラムを実行するための1つ以上のプロセッサとを備える電子デバイス上のグラフィカルユーザインターフェースは、上記した方法のいずれかにおいて表示される要素のうちの1つ以上を含み、それらの要素は、本明細書に記載の方法のいずれかにおいて説明されるように、入力に応じて更新される。一部の実施形態によれば、電子デバイスは、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、本明細書に記載の方法のいずれかの動作を実行する又は実行させる手段と、を含む。一部の実施形態によれば、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサとを備える電子デバイス内で使用するための情報処理装置が、本明細書に記載の方法のいずれかの動作を実行する又は実行させる手段を含む。
したがって、ディスプレイと、タッチ感知面と、タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスに、タッチ入力の処理のためのより高速でより効率的な方法及びインターフェースを提供し、それにより、かかるデバイスの有効性及び効率、並びにかかるデバイスに関するユーザ満足感が向上する。更に、かかる方法及びインターフェースは、処理電力を低減し、メモリの使用を低減し、バッテリの使用を低減し、かつ/又は、不要な、若しくは無関係の、若しくは重複する入力を低減する。更に、かかる方法及びインターフェースは、タッチ入力を処理するための従来の方法を補し得る、又はそれらに置き換わり得る。
説明される様々な実施形態を良好に理解するため、以下の図面と併せて、以下の「発明を実施するための形態」を参照されたい。ここで、類似の参照番号は、それらの図にわたって、対応する部分を指す。
一部の実施形態による、タッチ感知ディスプレイを備えるポータブル多機能デバイスを示すブロック図である。 一部の実施形態による、イベント処理のための例示的な構成要素を示すブロック図である。 一部の実施形態による、イベントオブジェクトの移行を示すブロック図である。 一部の実施形態による、タッチスクリーンを有するポータブル多機能デバイスを示す。 一部の実施形態による、ディスプレイ及びタッチ感知面を備える例示的な多機能デバイスのブロック図である。 一部の実施形態による、例示的な電子スタイラスのブロック図である。 一部の実施形態による、タッチ感知面に対するスタイラスの姿勢状態を示す。 一部の実施形態による、タッチ感知面に対するスタイラスの姿勢状態を示す。 一部の実施形態による、ポータブル多機能デバイスにおけるアプリケーションのメニューのための例示的なユーザインターフェースを示す。 一部の実施形態による、ディスプレイとは別個のタッチ感知面を備える多機能デバイスのための例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、タッチ入力及び関連付けられた情報を処理するための、例示的なユーザインターフェースを示す。 一部の実施形態による、長い押圧入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、長い押圧入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、長い押圧入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、長い押圧入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、長い押圧入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、パンジェスチャ入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、パンジェスチャ入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、パンジェスチャ入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、パンジェスチャ入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、タップジェスチャ入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、タップジェスチャ入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、タップジェスチャ入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、タップジェスチャ入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。 一部の実施形態による、アプリケーション非依存の所定の命令セットを使用してタッチ入力を処理する方法を示す高レベルのフロー図である。 一部の実施形態による、アプリケーション非依存の所定の命令セットを使用してタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、アプリケーション非依存の所定の命令セットを使用してタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、アプリケーション非依存の所定の命令セットを使用してタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、所定のデータ構造を使用してタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、所定のデータ構造を使用してタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、力ジェスチャ進度インジケータを使用してタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、力ジェスチャ進度インジケータを使用してタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、第三者アプリケーションによって指定された強度基準に基づいてタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、第三者アプリケーションによって指定された強度基準に基づいてタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、第三者アプリケーションによって指定された強度基準に基づいてタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、動的閾値に基づいてタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、動的閾値に基づいてタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、動的閾値に基づいてタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、動的閾値に基づいてタッチ入力を処理する方法を示すフロー図である。 一部の実施形態による、電子デバイスの機能ブロック図である。 一部の実施形態による、電子デバイスの機能ブロック図である。 一部の実施形態による、電子デバイスの機能ブロック図である。 一部の実施形態による、電子デバイスの機能ブロック図である。 一部の実施形態による、電子デバイスの機能ブロック図である。 一部の実施形態による、電子デバイスの機能ブロック図である。 一部の実施形態による、電子デバイスの機能ブロック図である。
多くの電子デバイスに、表示されたユーザインターフェースオブジェクトの、タッチ入力に応答した特定の操作を可能にするためのアプリケーションが保存されている。しかしながら、従来の方法及びユーザインターフェースは非効率的である。開示される実施形態は、これらの限界及び欠点に対処する。
以下の図1A〜図1B、図2、及び図3は、例示的なデバイスの説明を提供する。図4は、例示的な電子スタイラスの説明を提供する。図5A〜図5Bは、タッチ感知面に対するスタイラスの姿勢状態を示す。図6A〜図6B、及び図7A〜図7BBBは、ウェブページ中の、タッチ入力を命令で処理するための例示的なユーザインターフェースを示す。図8A〜図8Eは、長い押圧入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。図9A〜図9Dは、パンジェスチャ入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。図10A〜図10Dは、タップジェスチャ入力及び深い押圧入力の曖昧さを除去する方法を示すフロー図である。図11A〜11Dは、アプリケーション非依存の所定の命令セットを使用してタッチ入力を処理する方法を示すフロー図である。図12A〜図12Bは、所定のデータ構造を使用してタッチ入力を処理する方法を示すフロー図である。図13A〜図13Bは、力ジェスチャ進度インジケータを使用してタッチ入力を処理する方法を示すフロー図である。図14A〜図14Cは、第三者アプリケーションによって指定された強度基準に基づいてタッチ入力を処理する方法を示すフロー図である。図15A〜図15Bは、動的閾値に基づいてタッチ入力を処理する方法を示すフロー図である。図16A〜図16Bは、動的閾値に基づいてタッチ入力を処理する方法を示すフロー図である。図7A〜図7BBBのユーザインターフェースを使用して、図8A〜図8E、図9A〜図9D、図10A〜図10D、図11A〜図11D、図12A〜図12B、図13A〜図13B、図14A〜図14C、図15A〜図15B、及び図16A〜図16Bのプロセスを示す。
例示的なデバイス
ここで、添付図面に実施例が示される実施形態を、詳細に参照する。以下の詳細な説明では、説明されている様々な実施形態の完全な理解を提供するために数多くの具体的な詳細が記載されている。しかしながら、説明されている様々な実施形態は、これらの具体的な詳細を伴わずとも実践し得ることが、当業者には明らかであろう。他の例においては、周知の方法、手順、構成要素、回路、及びネットワークは、実施形態の態様を不必要に不明瞭なものとしないよう、詳細には説明されていない。
本明細書では、第1、第2などの用語は、一部の実施例で、様々な要素を説明するために使用されるが、これらの要素は、それらの用語によって限定されるべきではないことも理解されるであろう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施形態の範囲から逸脱することなく、第1の接触は、第2の接触と称することができ、同様に、第2の接触は、第1の接触と称し得る。第1の接触及び第2の接触は両方接触であるが、文脈がそうではないことを明確に示さない限り、それらは同じ接触ではない。
本明細書で説明される様々な実施形態の説明で使用される用語法は、特定の実施形態を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施形態の説明及び添付の特許請求の範囲で使用されるとき、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用するとき、用語「及び/又は」が、関連する列挙された項目のうちの1つ以上のすべての可能な任意の組合せを指し、かつこれを含むことをもまた理解されたい。用語「includes(含む)」、「including(含む)」、「comprises(含む、備える)」及び/又は「comprising(含む、備える)」は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらの群、の存在又は追加を除外しないことが更に理解されるであろう。
本明細書で使用するとき、用語「if(〜の場合には)」は、任意選択的に、文脈に応じて「when(〜の時)」、「upon(〜すると)」、「in response to determining(〜との判定に応じて)」、又は「in response to detecting(〜の検出に応じて)」を意味するものと解釈される。同様に、語句「if it is determined(〜と判定される場合には)」又は「if(a stated condition or event)is detected((記述される条件又はイベント)が検出される場合には)」は、任意選択的に、文脈に応じて「upon determining(〜と判定されると)」、又は「in response to determining(〜との判定に応じて)」、又は「upon detecting(the stated condition or event)((記述される条件又はイベント)が検出されると)」、又は「in response to detecting(the stated condition or event)((記述される条件又はイベント)の検出に応じて)」を意味するものと解釈される。
電子デバイス、このようなデバイス用のユーザインターフェース、及びこのようなデバイスを使用するための関連処理、の実施形態を説明する。一部の実施形態では、このデバイスは、PDA機能及び/又は音楽プレーヤ機能などの、他の機能も含む、モバイル電話機などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態としては、カリフォルニア州CupertinoのApple Inc.製のiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスが挙げられるが、これらに限定されない。タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えるラップトップ又はタブレットコンピュータなどの他のポータブル電子デバイスも、任意選択的に、使用される。また、一部の実施形態では、このデバイスはポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えるデスクトップコンピュータであることも理解されたい。
以下の検討では、ディスプレイ及びタッチ感知面を備える電子デバイスについて説明する。しかし、この電子デバイスは、物理キーボード、マウス、及び/又はジョイスティックなどの、1つ以上の他の物理ユーザインターフェースデバイスを任意選択的に含むことを理解されたい。
このデバイスは、一般的に、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、ビデオ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽プレーヤアプリケーション、及び/又はデジタルビデオプレーヤアプリケーションのうちの1つ以上などの、様々なアプリケーションをサポートする。
本デバイス上で実行される様々なアプリケーションは、タッチ感知面などの、少なくとも1つの共通の物理ユーザインターフェースデバイスを、任意選択的に使用する。タッチ感知面の1つ以上の機能、並びにデバイス上に表示される対応する情報は、アプリケーションごとに、及び/又はそれぞれのアプリケーション内で、任意選択的に、調節及び/又は変更される。このように、デバイスの共通の(タッチ感知面などの)物理アーキテクチャは、ユーザにとって直観的かつ透過的なユーザインターフェースを備える様々なアプリケーションを、任意選択的にサポートする。
ここで、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。図1Aは、一部の実施形態による、タッチ感知ディスプレイシステム112を備えるポータブル多機能デバイス100を示すブロック図である。タッチ感知ディスプレイシステム112は、便宜上「タッチスクリーン」と呼ばれる場合があり、単にタッチ感知ディスプレイと呼ばれる場合もある。デバイス100は、メモリ102(任意選択的に、1つ以上の非一時的コンピュータ可読記憶媒体を含む)、メモリコントローラ122、1つ以上の処理ユニット(CPU)120、周辺機器インターフェース118、RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、入出力(I/O)サブシステム106、他の入力又は制御デバイス116、及び外部ポート124を含む。デバイス100は、1つ以上の光センサ164を任意選択的に含む。デバイス100は、デバイス100(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)上の接触の強度を検出するための、1つ以上の強度センサ165を任意選択的に含む。デバイス100は、デバイス100上に触知出力を生成する(例えば、デバイス100のタッチ感知ディスプレイシステム112又はデバイス300のタッチパッド355などの、タッチ感知面上に触知出力を生成する)ための、1つ以上の触知出力生成器163を任意選択的に含む。これらの構成要素は、1つ以上の通信バス又は信号ライン103を介して任意選択的に通信する。
本明細書及び特許請求の範囲で使用されるとき、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、デバイスの別の構成要素(例えば、筐体)に対する物理的変位、又はデバイスの重心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性の認識された変化に相当する触感として、ユーザによって解釈される。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として任意選択的に解釈される。場合によっては、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がない時でさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じるであろう。別の実施例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるものではあるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」、「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
デバイス100は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス100は、示されているものよりも多くの構成要素又は少ない構成要素を任意選択的に有し、2つ以上の構成要素を任意選択的に組み合わせるか、又は、それらの構成要素の異なる構成若しくは配置を任意選択的に有することを理解されたい。図1Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せで実装される。
メモリ102は、任意選択的に高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの、不揮発性メモリも含む。CPU(単数又は複数)120及び周辺機器インターフェース118などの、デバイス100の他の構成要素によるメモリ102へのアクセスは、メモリコントローラ122により任意選択的に制御される。
周辺機器インターフェース118を使用して、このデバイスの入力及び出力周辺機器を、CPU(単数又は複数)120及びメモリ102に結合することができる。1つ以上のプロセッサ120は、デバイス100のための様々な機能を実行するため及びデータを処理するために、メモリ102に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させる、又は実行する。
一部の実施形態では、周辺機器インターフェース118、CPU(単数又は複数)120、及びメモリコントローラ122は、任意選択的に、チップ104などの単一チップ上に実装される。一部の他の実施形態では、これらは、個別のチップ上に、任意選択的に実装される。
RF(radio frequency)(無線周波数)回路108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路108は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、メモリなどを含むがこれらに限定されない、これらの機能を実行するための周知の回路を、任意選択的に含む。RF回路108は、ワールドワイドウェブ(WWW)とも呼ばれるインターネット、イントラネット、及び/又は、セルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)などの無線ネットワーク、及び/又は、メトロポリタンエリアネットワーク(MAN)、などのネットワーク、及び他のデバイス、と無線通信によって、任意選択的に通信する。無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを、任意選択的に使用し、それらの通信規格、通信プロトコル、及び通信技術としては、移動通信用のグローバルシステム(Global System for Mobile Communications、GSM)、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、高速ダウンリンクパケット接続(high-speed downlink packet access、HSDPA)、高速アップリンクパケット接続(high-speed uplink packet access、HSUPA)、Evolution,Data−Only(EV−DO)、HSPA、HSPA+、2重セルHSPA(Dual-Cell HSPA、DC−HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離無線通信(near field communication、NFC)、広帯域符号分割多元接続(wideband code division multiple access、W−CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth(登録商標)、Wireless Fidelity(Wi−Fi)(登録商標)(例えば、IEEE 802.11a、IEEE 802.11ac、IEEE 802.11ax、IEEE 802.11b、IEEE 802.11g、及び/又はIEEE 802.11n)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol、VoIP)、Wi−MAX、電子メール用のプロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol、IMAP)及び/若しくはポストオフィスプロトコル(post office protocol、POP))、インスタントメッセージング(例えば、拡張可能メッセージング及びプレゼンスプロトコル(extensible messaging and presence protocol、XMPP)、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service、IMPS))、並びに/又はショートメッセージサービス(Short Message Service、SMS)、あるいは本文書の出願日現在までにまだ開発されていない通信プロトコルを含めた任意の他の好適な通信プロトコルが挙げられるが、これらに限定されない。
オーディオ回路110、スピーカ111、及びマイクロフォン113は、ユーザとデバイス100との間のオーディオインターフェースを提供する。オーディオ回路110は、周辺機器インターフェース118からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ111に送信する。スピーカ111は、電気信号を人間の可聴音波に変換する。オーディオ回路110は、マイクロフォン113により音波から変換された電気信号もまた受信する。オーディオ回路110は、電気信号をオーディオデータに変換し、このオーディオデータを処理のために周辺機器インターフェース118に送信する。オーディオデータは、周辺機器インターフェース118によって任意選択的に、メモリ102及び/若しくはRF回路108から取得され、並びに/又はメモリ102及び/若しくはRF回路108へ送信される。一部の実施形態では、オーディオ回路110は、更にヘッドセットジャック(例えば、212、図2)も含む。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば、片耳又は両耳用のヘッドホン)及び入力(例えば、マイクロフォン)の双方を備えるヘッドセットなどの、取り外し可能なオーディオ入出力周辺機器と、の間のインターフェースを提供する。
I/Oサブシステム106は、タッチ感知ディスプレイシステム112及びその他の入力又は制御デバイス116などのデバイス100上の入出力周辺機器を、周辺機器インターフェース118に結合する。I/Oサブシステム106は、任意選択的に、ディスプレイコントローラ156、光センサコントローラ158、強度センサコントローラ159、触覚フィードバックコントローラ161、及びその他の入力又は制御デバイスのための1つ以上の入力コントローラ160を含む。1つ以上の入力コントローラ160は、その他の入力又は制御デバイス116から電気信号を受信し、それらへ電気信号を送信する。その他の入力又は制御デバイス116は、任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。一部の代替的実施形態では、入力コントローラ(単数又は複数)160は、キーボード、赤外線ポート、USBポート、スタイラス、及び/又はマウスなどのポインタデバイスのうちのいずれかに、任意選択的に結合される(又は、いずれにも結合されない)。1つ以上のボタン(例えば、208、図2)は、スピーカ111及び/又はマイクロフォン113の音量調節のためのアップ/ダウンボタンを、任意選択的に含む。1つ以上のボタンは、プッシュボタン(例えば、206、図2)を、任意選択的に含む。
タッチ感知ディスプレイシステム112は、デバイスとユーザとの間の入力インターフェース及び出力インターフェースを提供する。ディスプレイコントローラ156は、タッチ感知ディスプレイシステム112から電気信号を受信し、及び/又はそれへ電気信号を送信する。タッチ感知ディスプレイシステム112は、ユーザに視覚出力を表示する。視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びこれらの任意の組合せ(総称して「グラフィック」と称する)を、任意選択的に含む。一部の実施形態では、視覚出力の一部又はすべては、ユーザインターフェースオブジェクトに対応する。
タッチ感知ディスプレイシステム112は、触覚/触知の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有する。タッチ感知ディスプレイシステム112及びディスプレイコントローラ156(メモリ102内の任意の関連モジュール及び/又は命令セットと共に)は、タッチ感知ディスプレイシステム112上で接触(及び接触の任意の移動又は中断)を検出し、検出された接触をタッチ感知ディスプレイシステム112上に表示されるユーザインターフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との双方向作用に変換する。一部の実施形態では、タッチ感知ディスプレイシステム112とユーザとの間の接触点は、ユーザの指又はスタイラスに対応する。
タッチ感知ディスプレイシステム112は、任意選択的に、LCD(liquid crystal display)(液晶ディスプレイ)技術、LPD(light emitting polymer display)(発光ポリマーディスプレイ)技術、又はLED(light emitting diode)(発光ダイオード)技術を使用するが、他の実施形態では、他のディスプレイ技術が使用される。タッチ感知ディスプレイシステム112及びディスプレイコントローラ156は、静電容量技術、抵抗性技術、赤外線技術、及び表面音響波技術、並びに、タッチ感知ディスプレイシステム112との1つ以上の接触点を判定するための他の近接センサアレイ又は他の要素を含むが、これらに限定されない、現在既知の若しくは後日に開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及びその任意の移動又は中断を、任意選択的に検出する。一部の実施形態では、カリフォルニア州CupertinoのApple Inc.製のiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)などにおいて見られるような、投影型相互キャパシタンス検知技術が使用されている。
タッチ感知ディスプレイシステム112は、任意選択的に、100dpiを超えるビデオ解像度を有する。一部の実施形態では、タッチスクリーンのビデオ解像度は、400dpiを超える(例えば、500dpi、800dpi、又はより高い)。ユーザは、スタイラス、指などの任意の好適な物体又は付属物を使用して、タッチ感知ディスプレイシステム112と、任意選択的に接触する。一部の実施形態では、ユーザインターフェースは、指に基づく接触及びジェスチャで機能するように設計されるが、これらは、指の方がタッチスクリーン上での接触面積が広いため、スタイラスに基づく入力よりも精度が低い場合がある。一部の実施形態では、デバイスは、指に基づく粗い入力を精確なポインタ/カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
一部の実施形態では、タッチスクリーンに加えて、デバイス100は、特定の機能をアクティブ化又は非アクティブ化させるためのタッチパッド(図示せず)を任意選択的に含む。一部の実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知領域である。タッチパッドは、任意選択的に、タッチ感知ディスプレイシステム112とは別個のタッチ感知面、又はタッチスクリーンによって形成されたタッチ感知面の延長である。
デバイス100はまた、様々な構成要素に電力を供給するための電力システム162をも含む。電力システム162は、任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
デバイス100はまた、1つ以上の光センサ164も任意選択的に含む。図1Aは、I/Oサブシステム106内の光センサコントローラ158に結合された光センサを示す。光センサ(単数又は複数)164は、電荷結合デバイス(charge-coupled device、CCD)又は相補的金属酸化物半導体(complementary metal-oxide semiconductor、CMOS)フォトトランジスタを、任意選択的に含む。光センサ(単数又は複数)164は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール143(カメラモジュールとも称する)と連動して、光センサ(単数又は複数)164は、静止画像及び/又はビデオを、任意選択的にキャプチャする。一部の実施形態では、タッチスクリーンを静止画像及び/又はビデオ画像取得のためのビューファインダとして使用できるように、光センサは、デバイスの前面のタッチ感知ディスプレイシステム112の反対側である、デバイス100の背面に配置される。一部の実施形態では、(例えば、自撮りのため、ユーザがタッチスクリーン上で他のビデオ会議参加者を見ている間に、ビデオ会議のためなど)ユーザの画像を得るように、別の光センサがデバイスの前面に配置される。
デバイス100はまた、1つ以上の接触強度センサ165も任意選択的に含む。図1Aは、I/Oサブシステム106内の強度センサコントローラ159に結合された接触強度センサを示す。接触強度センサ(単数又は複数)165は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(若しくは圧力)を測定するために使用するセンサ)を、任意選択的に含む。接触強度センサ(単数又は複数)165は、環境から接触強度情報(例えば、圧力情報又は圧力情報のプロキシ)を受信する。一部の実施形態では、少なくとも1つの接触強度センサが、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に並置されているか、又は、それに近接している。一部の実施形態では、少なくとも1つの接触強度センサが、デバイス100の前面に配置されたタッチスクリーンディスプレイシステム112の反対側である、デバイス100の背面に配置されている。
デバイス100は、1つ以上の近接センサ166をも任意選択的に含む。図1Aは、周辺機器インターフェース118に結合された近接センサ166を示す。あるいは、近接センサ166は、I/Oサブシステム106内の入力コントローラ160に結合される。一部の実施形態では、多機能デバイスがユーザの耳の近くに配置されている場合(例えば、ユーザが電話通話を行っている場合)、近接センサが、タッチ感知ディスプレイシステム112をオフにして無効にする。
デバイス100はまた、1つ以上の触知出力生成器163も任意選択的に含む。図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161に結合された触知出力生成器を示す。触知出力生成器(単数又は複数)163は、スピーカ若しくは他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などの、エネルギーを直線運動に変換する電気機械デバイスを、任意選択的に含む。一部の実施形態では、触知出力生成器(単数又は複数)163は、触覚フィードバックモジュール133から触知フィードバック生成命令を受信し、デバイス100のユーザが感知できる触知出力をデバイス100上で生成する。一部の実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に並置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス100の表面の内/外)に、又は横方向(例えば、デバイス100の表面と同じ平面内の前後)に動かすことによって、触知出力を生成する。一部の実施形態では、少なくとも1つの触知出力生成器センサは、デバイス100の前面に配置されたタッチ感知ディスプレイシステム112の反対側である、デバイス100の背面に配置されている。
デバイス100はまた、デバイスの位置(例えば、姿勢)に関する情報を得るための、1つ以上の加速度計167、ジャイロスコープ168、及び/又は磁気計169(例えば、慣性測定ユニット(inertial measurement unit、IMU)の一部として)を、任意選択的に含む。図1Aは、周辺機器インターフェース118に結合された、センサ167、168、及び169を示す。あるいは、センサ167、168、及び169は、I/Oサブシステム106内の入力コントローラ160に、任意選択的に結合される。一部の実施形態では、情報は、1つ以上の加速度計から受信したデータの分析に基づいて、ポートレートビュー又はランドスケープビューでタッチスクリーンディスプレイ上に表示される。デバイス100は、デバイス100の場所に関する情報を得るためのGPS(若しくはGLONASS又は他の全地球的航法システム)受信機(図示せず)を任意選択的に含む。
一部の実施形態では、メモリ102に記憶されたソフトウェア構成要素は、オペレーティングシステム126、通信モジュール(又は命令セット)128、接触/動きモジュール(又は命令セット)130、位置モジュール(又は命令セット)131、グラフィックモジュール(又は命令セット)132、触覚フィードバックモジュール(又は命令セット)133、テキスト入力モジュール(又は命令セット)134、全地球測位システム(Global Positioning System、GPS)モジュール(又は命令セット)135、及びアプリケーション(又は命令セット)136を含む。更に、一部の実施形態では、図1A及び図3に示すように、メモリ102は、デバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、以下の1つ以上を含む。現在アクティブであるアプリケーションがある場合、どのアプリケーションがアクティブであるかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチ感知ディスプレイシステム112の様々な領域を占有しているかを示す、表示状態、デバイスの様々なセンサ及びその他の入力又は制御デバイス116から得られる情報を含む、センサ状態、並びに、デバイスの場所及び/若しくは姿勢に関する場所及び/若しくは姿勢情報。
オペレーティングシステム126(例えば、iOS、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、WINDOWS(登録商標)、又はVxWorks(登録商標)などの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート124(例えば、ユニバーサルシリアルバス(Universal Serial Bus、USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えば、インターネット、無線LANなど)を通して間接的に、他のデバイスに結合するように適応している。一部の実施形態では、外部ポートは、カリフォルニア州CupertinoのApple Inc.製のiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスの一部内で使用される30ピンコネクタと同一の、又はこれに類似した及び/若しくは互換性のあるマルチピン(例えば、30ピン)コネクタである。一部の実施形態では、外部ポートは、カリフォルニア州CupertinoのApple Inc.製のiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスの一部内で使用されるLightning(登録商標)コネクタと同一の、又はこれに類似した及び/若しくは互換性のあるLightningコネクタである。
接触/動きモジュール130は、任意選択的に、(ディスプレイコントローラ156と連動して)タッチ感知ディスプレイシステム112との接触、及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を検出する。接触/動きモジュール130は、接触が発生したかどうかの判定(例えば、フィンガダウンイベントの検出)、接触の強度(例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代用物)の判定、タッチ感知面にわたる接触の移動及びその移動の追跡(例えば、1つ以上のフィンガドラッグイベントの検出)があるかどうかの判定、並びに接触が中止されたかどうか(例えば、フィンガアップイベント又は接触の中断の検出)の判定などの、(例えば、指又はスタイラスによる)接触の検出に関係する様々な動作を実行するための、ソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、接触点の速さ(大きさ)、速度(大きさ及び方向)、並びに/又は加速度(大きさ及び/又は方向の変化)を判定することを、任意選択的に含む。これらの動作は、任意選択的に、単一の接触(例えば、1つの指の接触若しくはスタイラスの接触)、又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触及び/若しくはスタイラスの接触)に適用される。一部の実施形態では、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
接触/動きモジュール130は任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン(例えば、検出される接触の異なる動き、タイミング、及び/又は強度)を有する。従って、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に検出される。例えば、フィンガタップジェスチャを検出することは、フィンガダウンイベントを検出し、続いて(例えば、アイコンの位置での)そのフィンガダウンイベントと同じ位置(又は、実質的に同じ位置)でフィンガアップ(リフトオフ)イベントを検出することを含む。別の実施例として、タッチ感知面上のフィンガスワイプジェスチャの検出は、フィンガダウンイベントを検出し、続いて1つ以上のフィンガドラッグイベントを検出し、その後、フィンガアップ(リフトオフ)イベントを検出することを含む。同様に、タップ、スワイプ、ドラッグ、及び他のジェスチャは、スタイラスに対して、スタイラスに対する特定の接触パターンを検出することにより、任意選択的に検出される。
加速度計167、ジャイロスコープ168、及び/又は磁気計169と連動して、位置モジュール131は、特定の座標系内のデバイスの姿勢(ロール、ピッチ、及び/又はヨー)などの、デバイスに関する姿勢情報を任意選択的に検出する。位置モジュール130は、デバイスの位置の検出及びデバイスの位置の変化の検出に関係する、様々な動作を実行するためのソフトウェア構成要素を含む。一部の実施形態では、位置モジュール131は、デバイスに対するスタイラスの姿勢状態の検出及びスタイラスの姿勢状態の変化の検出などの、スタイラスに関する姿勢情報を検出するために、デバイスと共に使用されているスタイラスから受信した情報を使用する。
グラフィックモジュール132は、表示されるグラフィックの視覚的効果(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含めた、タッチ感知ディスプレイシステム112又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェア構成要素を含む。本明細書で使用するとき、用語「グラフィック」は、ユーザに対して表示できる任意のオブジェクトを含み、それらのオブジェクトとしては、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインターフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられるが、これらに限定されない。
一部の実施形態では、グラフィックモジュール132は、使用されるグラフィックを表すデータを記憶する。各グラフィックには、対応するコードが、任意選択的に割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力する画面の画像データを生成する。
触覚フィードバックモジュール133は、デバイス100とのユーザ対話に応じて、触知出力生成器(単数又は複数)163を使用してデバイス100上の1つ以上の場所で触知出力を生み出すために、命令(例えば、触覚フィードバックコントローラ161によって使用される命令)を生成するための、様々なソフトウェア構成要素を含む。
テキスト入力モジュール134は任意選択的に、グラフィックモジュール132の構成要素であり、様々なアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、及びテキスト入力を必要とする任意の他のアプリケーション)においてテキストを入力するための、ソフトキーボードを提供する。
GPSモジュール135は、デバイスの場所を判断し、この情報を様々なアプリケーションで使用するために、(例えば、場所に基づくダイヤル発呼で使用するために電話138に、ピクチャ/ビデオのメタデータとしてカメラ143に、並びに、気象ウィジェット、地元のイエローページウィジェット、及び地図/ナビゲーションウィジェットなどの、場所に基づいたサービスを提供するアプリケーションに)提供する。
アプリケーション136は任意選択的に、以下のモジュール(又は命令セット)、又はそれらのサブセット若しくはスーパーセットを含む。
●連絡先モジュール137(アドレス帳若しくは連絡先リストと呼ばれる場合もある)、
●電話モジュール138、
●ビデオ会議モジュール139、
●電子メールクライアントモジュール140、
●インスタントメッセージング(IM)モジュール141、
●トレーニングサポートモジュール142、
●静止画像及び/又はビデオ画像用のカメラモジュール143、
●画像管理モジュール144、
●ブラウザモジュール147、
●カレンダーモジュール148、
●天気ウィジェット149−1、株式ウィジェット149−2、計算機ウィジェット149−3、アラーム時計ウィジェット149−4、辞書ウィジェット149−5、及びユーザが取得した他のウィジェット、並びにユーザ作成ウィジェット149−6のうちの1つ以上を任意選択的に含むウィジェットモジュール149、
●ユーザ作成ウィジェット149−6を作成するためのウィジェット作成モジュール150、
●検索モジュール151、
●任意選択的にビデオプレーヤモジュール及び音楽プレーヤモジュールから構成される、ビデオ及び音楽プレーヤモジュール152、
●メモモジュール153、
●地図モジュール154、並びに/又は
●オンラインビデオモジュール155。
任意選択的にメモリ102内に記憶される他のアプリケーション136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、連絡先モジュール137は、(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192に記憶される)アドレス帳又は連絡先リストを管理するための実行可能命令を含み、それには、アドレス帳に名前(単数又は複数)を加えること、アドレス帳から名前(単数若しくは複数)を削除すること、電話番号(単数若しくは複数)、電子メールアドレス(単数若しくは複数)、住所(単数若しくは複数)、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類して並べ替えること、電話番号及び/又は電子メールアドレスを提供して、電話138、ビデオ会議139、電子メール140、又はIM141による通信を開始する及び/又は容易にすること、などが含まれる。
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、電話モジュール138は、電話番号に対応する一連の文字を入力し、アドレス帳137内の1つ以上の電話番号にアクセスし、入力されている電話番号を修正し、それぞれの電話番号をダイヤルし、会話を実行し、会話が完了した際に接続を切るか又は電話を切るための、実行可能命令を含む。上述のように、無線通信は、複数の通信規格、プロトコル、及び技術のうちのいずれかを任意選択的に使用する。
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先リスト137、及び電話モジュール138と併せて、ビデオ会議モジュール139は、ユーザの指示に従って、ユーザと1人以上の他の参加者との間のビデオ会議を開始し、行い、終了するための実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、電子メールクライアントモジュール140は、ユーザの指示に応じて電子メールを作成し、送信し、受信し、管理するための、実行可能命令を含む。画像管理モジュール144と連携して、電子メールクライアントモジュール140は、カメラモジュール143で撮影された静止画像又はビデオ画像を有する電子メールを作成及び送信することを非常に容易にする。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、インスタントメッセージモジュール141は、インスタントメッセージと対応する文字列を入力し、入力済みの文字を修正し、それぞれのインスタントメッセージを送信し(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(Multimedia Message Service、MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、Apple Push Notification Service(APNs)、若しくはIMPSを使用して)、インスタントメッセージを受信し、受信したインスタントメッセージを見るための、実行可能命令を含む。一部の実施形態では、送信及び/又は受信されたインスタントメッセージは、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service、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(Hypertext Markup Language)(ハイパーテキストマークアップ言語)ファイル、CSS(Cascading Style Sheets)(カスケーディングスタイルシート)ファイル、及びJavaScript(登録商標)ファイルを含む。一部の実施形態では、ウィジェットは、XML(拡張可能マークアップ言語)ファイル及びJavaScriptファイル(例えば、Yahoo!(登録商標)ウィジェット)を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と併せて、ウィジェット作成モジュール150は、ウィジェットを作成する(例えば、ウェブページのユーザ指定部分をウィジェットに変える)ための実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、検索モジュール151は、ユーザの指示に従い、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ102内のテキスト、音楽、サウンド、画像、ビデオ、及び/又は他のファイルを検索するための、実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、及びブラウザモジュール147と併せて、ビデオ及び音楽プレーヤモジュール152は、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できるようにするための実行可能命令、並びに、ビデオを(例えば、タッチ感知ディスプレイシステム112上又は無線で若しくは外部ポート124を介して接続された外部のディスプレイ上に)表示、提示、又はその他の方式で再生するための実行可能命令を含む。一部の実施形態では、デバイス100は、任意選択的に、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を備える。
タッチ感知ディスプレイシステム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は、ユーザによる、H.264などの1つ以上のファイル形式のオンラインビデオへのアクセス、これらのブラウズ、受信(例えば、ストリーミング及び/又はダウンロードにより)、再生(例えば、タッチスクリーン112上で又は無線で若しくは外部ポート124を介して接続された外部のディスプレイ上で)、特定のオンラインビデオへのリンクを含む電子メールの送信、その他の方式での管理を可能にする、実行可能命令を含む。一部の実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール140ではなく、インスタントメッセージングモジュール141が使用される。
上記で特定されたモジュール及びアプリケーションのそれぞれは、1つ以上の上記した機能を実行するための実行可能命令セット、並びに本出願に記載の方法(例えば、本明細書に記載の、コンピュータにより実行される方法及び他の情報処理方法)に対応する。これらのモジュール(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実施形態において、任意選択的に、組み合わされるか、又はその他の方式で再配置される。一部の実施形態では、メモリ102は、上記で特定されたモジュール及びデータ構造のサブセットを、任意選択的に記憶する。更に、メモリ102は、上記されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
一部の実施形態では、デバイス100は、デバイス上の機能の所定のセットの動作がタッチスクリーン及び/又はタッチパッドを介してのみ実行されるデバイスである。デバイス100の動作のための主要入力制御デバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、デバイス100上の物理的な入力制御デバイス(プッシュボタン、ダイヤル、など)の数を、任意選択的に低減する。
タッチスクリーン及び/又はタッチパッドを介してのみ実行される、所定の機能のセットは、任意選択的に、ユーザインターフェース間のナビゲーションを含む。一部の実施形態では、タッチパッドは、ユーザによってタッチされると、デバイス100上に表示される任意のユーザインターフェースから、メインメニュー、ホームメニュー、又はルートメニューへデバイス100をナビゲートする。かかる実施形態では、「メニューボタン」はタッチパッドを使用して実装される。一部の他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理プッシュボタン又は他の物理入力制御デバイスである。
図1Bは、一部の実施形態による、イベント処理のための例示的な構成要素を示すブロック図である。一部の実施形態では、メモリ102(図1A内)又は370(図3)は、イベントソート部170(例えば、オペレーティングシステム126内)及び対応するアプリケーション136−1(例えば、上述のアプリケーション136、137〜155、380〜390のいずれか)を含む。
イベントソート部170は、イベント情報を受信し、イベント情報が配信されるアプリケーション136−1及びアプリケーション136−1のアプリケーションビュー191を判定する。イベントソート部170は、イベントモニタ171及びイベントディスパッチャモジュール174を含む。一部の実施形態では、アプリケーション136−1は、アプリケーションがアクティブ又は実行中のとき、タッチ感知ディスプレイシステム112上に表示される現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態192を含む。一部の実施形態では、デバイス/グローバル内部状態157は、いずれのアプリケーション(単数又は複数)が現在アクティブであるかを判定するために、イベントソート部170によって使用され、アプリケーション内部状態192は、イベント情報が配信されるアプリケーションビュー191を判定するために、イベントソート部170によって使用される。
一部の実施形態では、アプリケーション内部状態192は、アプリケーション136−1が実行を再開する際に使用される再開情報、アプリケーション136−1によって表示されているか又は表示の準備が整っている情報を示すユーザインターフェース状態情報、ユーザがアプリケーション136−1の以前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが以前に行ったアクションのリドゥ/アンドゥ待ち行列、のうちの1つ以上などの追加情報を含む。
イベントモニタ171は、周辺機器インターフェース118からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイシステム112上でのユーザのタッチ)についての情報を含む。周辺機器インターフェース118は、I/Oサブシステム106、あるいは、近接センサ166、加速度計(単数若しくは複数)167、ジャイロスコープ(単数若しくは複数)168、磁気計(単数若しくは複数)169、及び/又は(オーディオ回路110を介して)マイクロフォン113などのセンサから受信する情報を送信する。周辺機器インターフェース118がI/Oサブシステム106から受信する情報は、タッチ感知ディスプレイシステム112又はタッチ感知面からの情報を含む。
一部の実施形態では、イベントモニタ171は、所定の間隔で周辺機器インターフェース118に要求を送信する。これに応じて、周辺機器インターフェース118はイベント情報を送信する。他の実施形態では、周辺機器インターフェース118は、重要なイベント(例えば、所定のノイズ閾値を上回り、かつ/又は所定の持続時間を超えた入力を受信すること)が存在する場合にのみ、イベント情報を送信する。
一部の実施形態では、イベントソート部170はまた、ヒットビュー判定モジュール172及び/又はアクティブイベントレコグナイザ(recognizer)判定モジュール173も含む。
ヒットビュー判定モジュール172は、タッチ感知ディスプレイシステム112が2つ以上のビューを表示した際に、1つ以上のビュー内のどこにおいてサブイベントが発生したかを判定するためのソフトウェア手続きを提供する。ビューは、制御部及びユーザがディスプレイ上で見ることが可能な他の要素で構成される。
アプリケーションに関連付けられたユーザインターフェースの別の態様は、本明細書でアプリケーションビュー又はユーザインターフェースウィンドウと呼ばれる場合があるビューのセットであり、それらの中で情報が表示され、タッチに基づくジェスチャが発生する。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、任意選択的に、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応する。例えば、タッチが検出される最下位レベルのビューは任意選択的に、ヒットビューと呼ばれ、また、適切な入力として認識されるイベントのセットは任意選択的に、タッチベースのジェスチャを開始する最初のタッチのヒットビューに少なくとも部分的に基づいて判定される。
ヒットビュー判定モジュール172は、タッチベースのジェスチャのサブイベントに関係する情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール172は、そのサブイベントを処理すべき階層内の最下位のビューとしての、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、起因となるサブイベント(すなわち、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュールによって特定されると、ヒットビューは、典型的には、それがヒットビューとして特定される原因となった同じタッチ又は入力ソースに関係する、すべてのサブイベントを受信する。
アクティブイベントレコグナイザ判定モジュール173は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受信すべきかを判定する。一部の実施形態では、アクティブイベントレコグナイザ判定モジュール173は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベントレコグナイザ判定モジュール173は、サブイベントの物理的な場所を含むすべてのビューはアクティブに関わっているビューであると判定し、したがって、すべてのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューは、依然としてアクティブに関わっているビューであり続ける。
イベントディスパッチャモジュール174は、イベント情報をイベントレコグナイザ(例えば、イベントレコグナイザ180)に発送する。アクティブイベントレコグナイザ判定モジュール173を含む実施形態において、イベントディスパッチャモジュール174は、アクティブイベントレコグナイザ判定モジュール173により判定されたイベントレコグナイザにイベント情報を配信する。一部の実施形態では、イベントディスパッチャモジュール174は、それぞれのイベント受信部モジュール182により取得されるイベント情報をイベント待ち行列内に記憶する。
一部の実施形態では、オペレーティングシステム126は、イベントソート部170を含む。あるいは、アプリケーション136−1はイベントソート部170を含む。更に他の実施形態では、イベントソート部170は、独立型のモジュール、又は接触/動きモジュール130などの、メモリ102に記憶された別のモジュールの一部である。
一部の実施形態では、アプリケーション136−1は、それぞれがアプリケーションのユーザインターフェースのそれぞれのビュー内で発生するタッチイベントを処理する命令を含む、複数のイベント処理部190及び1つ以上のアプリケーションビュー191を含む。アプリケーション136−1の各アプリケーションビュー191は、1つ以上のイベントレコグナイザ180を含む。通常、それぞれのアプリケーションビュー191は、複数のイベントレコグナイザ180を含む。他の実施形態では、イベントレコグナイザ180のうちの1つ以上は、ユーザインターフェースキット(図示せず)、又はアプリケーション136−1が方法及び他の特性を継承する上位レベルのオブジェクトなどの、別個のモジュールの一部である。一部の実施形態では、イベント処理部190はそれぞれ、データ更新部176、オブジェクト更新部177、GUI更新部178、及び/又はイベントソート部170から受信したイベントデータ179、のうちの1つ以上を含む。イベント処理部190は任意選択的に、アプリケーション内部状態192を更新するために、データ更新部176、オブジェクト更新部177、又はGUI更新部178を利用する若しくは呼び出す。あるいは、アプリケーションビュー191のうちの1つ以上は、1つ以上の対応するイベント処理部190を含む。また、一部の実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178のうちの1つ以上は、対応するアプリケーションビュー191に含まれる。
本明細書で使用するとき、力イベントは、タッチ入力の、(例えば、最低力強度閾値を満足する)開始、強度の変化(例えば、タッチ入力の強度の増加若しくは減少)、又は強度状態の変化(例えば、強度閾値を超える強い押圧若しくは強度が強度閾値未満に降下するようなタッチ入力の解放)などの、タッチ入力の状態又は状態の変化を示すための、デバイスが生成した信号又はデバイスが生成したデータ(例えば、デバイス100が生成又は更新した信号又はデータオブジェクト)を指す。力イベントは、タッチ感知面上の物理的タッチ(例えば、指及び/又はスタイラスを用いたタッチ)と関連付けられているが、力イベントは、本明細書において記載するとき、物理的タッチとは異なっている。
イベントレコグナイザ180はそれぞれ、イベントソート部170からイベント情報(例えば、イベントデータ179)を受信し、そのイベント情報からイベントを特定する。イベントレコグナイザ180は、イベント受信部182及びイベント比較部184を含む。一部の実施形態では、イベントレコグナイザ180はまた、メタデータ183及び(サブイベント配信命令を任意選択的に含む)イベント配信命令188の、少なくともサブセットも含む。
イベント受信部182は、イベントソート部170からイベント情報を受信する。このイベント情報は、サブイベントについての情報、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントによっては、イベント情報はまた、サブイベントの場所などの追加情報も含む。サブイベントが、タッチの動きに関わるとき、イベント情報は任意選択的に、サブイベントの速さ及び方向も含む。一部の実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへの、又はその逆の)デバイスの回転を含み、そのイベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれる)についての対応する情報を含む。
イベント比較部184は、イベント情報を所定のイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定する、あるいはイベント又はサブイベントの状態を判定又は更新する。一部の実施形態では、イベント比較部184は、イベント定義186を含む。イベント定義186は、例えば、イベント1(187−1)、イベント2(187−2)などの、イベントの定義(例えば、サブイベントの所定のシーケンス)を含む。一部の実施形態では、イベント187内のサブイベントは、例えば、タッチ開始、タッチ終了、タッチの移動、タッチの中止、及び複数のタッチを含む。ある実施例では、イベント1(187−1)の定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、表示されたオブジェクト上の所定の段階についての第1のタッチ(タッチ開始)、所定の段階についての第1のリフトオフ(タッチ終了)、表示されたオブジェクト上の所定の段階についての第2のタッチ(タッチ開始)、及び所定の段階についての第2のリフトオフ(タッチ終了)を含む。別の実施例では、イベント2(187−2)の定義は、表示されたオブジェクト上のドラッグである。ドラッグは、例えば、表示されたオブジェクト上の所定の段階についてのタッチ(又は接触)、タッチ感知ディスプレイシステム112にわたるタッチの移動、及びタッチのリフトオフ(タッチ終了)を含む。一部の実施形態では、イベントはまた、1つ以上の関連イベント処理部190に関する情報も含む。
一部の実施形態では、イベント定義187は、それぞれのユーザインターフェースオブジェクトに関するイベントの定義を含む。一部の実施形態では、イベント比較部184は、どのユーザインターフェースオブジェクトがサブイベントに関連付けられているかを判定するためのヒットテストを実行する。例えば、3つのユーザインターフェースオブジェクトがタッチ感知ディスプレイシステム112上に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイシステム112上でタッチが検出されると、イベント比較部184は、3つのユーザインターフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられているかを判定するためのヒットテストを実行する。表示された各オブジェクトが、対応するイベント処理部190と関連付けられている場合、イベント比較部は、ヒットテストの結果を使用して、どのイベント処理部190をアクティブ化すべきかを判定する。例えば、イベント比較部184は、サブイベント及びヒットテストのトリガとなるオブジェクトに関連付けられたイベント処理部を選択する。
一部の実施形態では、それぞれのイベント187の定義はまた、サブイベントのシーケンスがイベントレコグナイザのイベントタイプに対応するか否かが判定されるまで、イベント情報の配信を遅延させる、遅延作用も含む。
それぞれのイベントレコグナイザ180が一連のサブイベントがイベント定義186中のイベントのいずれとも一致しないと判定した場合、それぞれのイベントレコグナイザ180は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチに基づくジェスチャの後続のサブイベントを無視する。この状況では、ヒットビューに関してアクティブのまま維持される他のイベントレコグナイザがあれば、そのイベントレコグナイザは、進行中のタッチに基づくジェスチャのサブイベントを、引き続き追跡及び処理する。
一部の実施形態では、それぞれのイベントレコグナイザ180は、構成変更可能なプロパティと、フラグと、及び/又はイベント配信システムがどのようにサブイベント配信を実行すべきかをアクティブに関わっているイベントレコグナイザに示すリストと、を有するメタデータ183を含む。一部の実施形態では、メタデータ183は、構成変更可能なプロパティと、フラグと、及び/又はイベントレコグナイザが互いにどのように対話するか若しくは対話し得るかについて示すリストと、を含む。一部の実施形態では、メタデータ183は、構成変更可能なプロパティと、フラグと、及び/又はサブイベントがビュー階層又はプログラム階層内の様々なレベルに配信されるか否かを示すリストと、を含む。
一部の実施形態では、それぞれのイベントレコグナイザ180は、イベントの1つ以上の特定のサブイベントが認識されたときに、イベントに関連付けられたイベント処理部190をアクティブ化する。一部の実施形態では、それぞれのイベントレコグナイザ180は、イベントに関連付けられたイベント情報をイベント処理部190に配信する。イベント処理部190をアクティブ化することは、対応するヒットビューにサブイベントを送信する(及び送信を延期する)こととは異なっている。一部の実施形態では、イベントレコグナイザ180は、認識されたイベントに関連付けられたフラグをスローし、フラグに関連付けられたイベント処理部190は、フラグをキャッチし、所定の処理を実行する。
一部の実施形態では、イベント配信命令188は、イベント処理部をアクティブ化することなくサブイベントについてのイベント情報を配信するサブイベント配信命令を含む。その代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベント処理部に、又はアクティブに関わっているビューに、イベント情報を配信する。一連のサブイベントに又はアクティブに関わっているビューに関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
一部の実施形態では、データ更新部176は、アプリケーション136−1で使用されるデータを作成及び更新する。例えば、データ更新部176は、連絡先モジュール137で使用される電話番号を更新、又はビデオプレーヤモジュール145で使用されるビデオファイルを記憶する。一部の実施形態では、オブジェクト更新部177は、アプリケーション136−1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部177は、新たなユーザインターフェースオブジェクトを作成、又はユーザインターフェースオブジェクトの位置を更新する。GUI更新部178は、GUIを更新する。例えば、GUI更新部178は、表示情報を準備し、タッチ感知ディスプレイ上に表示するため、表示情報をグラフィックモジュール132に送信する。
一部の実施形態では、イベント処理部(単数又は複数)190は、データ更新部176、オブジェクト更新部177、及びGUI更新部178を含むか、又はそれらにアクセスすることができる。一部の実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178は、それぞれのアプリケーション136−1又はアプリケーションビュー191の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の説明はまた、入力デバイスを用いて多機能デバイス100を動作させるための他の形態のユーザ入力にも適用されるが、そのすべてがタッチスクリーン上で開始されるわけではないことを理解されたい。例えば、単一若しくは複数のキーボードの押圧若しくは保持に任意選択的に合わせたマウスの移動及びマウスボタンの押圧、タッチパッド上でのタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、デバイスの移動、口頭による指示、検出された眼球運動、バイオメトリック入力、並びに/又はこれらの任意の組合せが、認識対象のイベントを定義するサブイベントに対応する入力として、任意選択的に利用される。
図1Cは、一部の実施形態による、イベントオブジェクト194の移行を示すブロック図である。
図1Aに関して上記したように、接触/動きモジュール130は、タッチ入力の状態及び/又は状態の変化を判定する。一部の実施形態では、デバイスは、タッチ入力の判定された状態及び/又は判定された状態の変化を1つ以上のソフトウェア構成要素に伝えるための、(例えば、データオブジェクトの形態の)信号又はデータを生成する。一部の実施形態では、データオブジェクトは、イベントオブジェクト(例えば、イベントオブジェクト194)と呼ばれる。イベントオブジェクトは、対応するタッチ入力の状態を表すデータを含む。一部の実施形態では、イベントオブジェクト194はマウスイベントオブジェクトである(その理由は、タッチ入力はマウスによる入力と等価であるからである)。例えば、かかる実施形態では、タッチ感知面にわたって移動するタッチ入力は、マウスの移動(例えば、マウス移動イベント)に対応する。一部の他の実施形態では、イベントオブジェクト194は、マウスイベントオブジェクトとは異なるタッチイベントオブジェクトである。一部の実施形態では、タッチイベントオブジェクトは、対応するタッチ入力のタッチに特有の特性を表すデータを含む(例えば、いくつかの同時のタッチ、指又はスタイラスの接触の向き、など)。一部の他の実施形態では、イベントオブジェクト194は、マウスイベントオブジェクト(又はタッチイベントオブジェクト)とは異なる力イベントオブジェクトである。一部の実施形態では、力イベントオブジェクトは、対応するタッチ入力の力イベントに固有の特性を表すデータを含む(例えば、タッチ入力により加えられる強度、タッチ入力の段/段階、など)。一部の実施形態では、イベントオブジェクトは、かかる特性の任意の組合せ(例えば、マウスイベントに特有の特性、タッチイベントに特有の特性、及び力イベントに特有の特性)を含む。
一部の実施形態では、接触/動きモジュール130は、イベントオブジェクトを生成(又は更新)し、イベントオブジェクトを1つ以上のアプリケーション(例えば、図1Aの電子メールクライアントモジュール140などのアプリケーション136−1、及び/又は、ブラウザモジュール147などのアプリケーション136−2)に送信する。あるいは、接触/情報モジュール130は、接触に関する情報(例えば、未加工の接触の座標)を、1つ以上のアプリケーション(例えば、アプリケーション1(136−1)及び/又はアプリケーション2(136−2))に送信し、この情報を受信するアプリケーションは、1つ以上のイベントオブジェクトを生成(又は更新)する。一部の実施形態では、アプリケーションは、1つ以上のイベントオブジェクトを生成(又は更新)し、この1つ以上のイベントオブジェクトを、タッチ処理モジュール220以外のアプリケーションの部分に送信する、タッチ処理モジュール220を含む。一部の実施形態では、タッチ処理モジュール220は、アプリケーション非依存である(例えば、同じタッチ処理モジュールが、電子メールクライアントアプリケーション、ブラウザアプリケーションなどの複数の個別のアプリケーションの各々に含まれる)。本明細書で使用するとき、タッチ処理モジュール220がアプリケーション非依存であることは、タッチ処理モジュール220が特定のソフトウェアアプリケーション用に特定的に設計されていないことを意味する。タッチ処理モジュール220がアプリケーション非依存であることは、タッチ処理モジュール220がその関連アプリケーションとは別個に配置されるということを意味しない。タッチ処理モジュール220は、一部の実施形態では、その関連アプリケーションとは異なる別個のものであるが、図1Cに示すように、一部の実施形態では、タッチ処理モジュール220はその関連アプリケーションに含まれる。一部の実施形態では、アプリケーションはまた、そのアプリケーションに特有のアプリケーションコアも含む。
図1Cでは、アプリケーション1(136−1、例えば電子メールクライアントアプリケーション)及びアプリケーション2(136−2、例えばブラウザアプリケーション)の各々は、タッチ処理モジュール220を含む。更には、アプリケーション1(136−1)は、アプリケーション1(136−1)に特有のアプリケーションコア1(230−1)を含み、かつ/又はアプリケーション2(136−2)は、アプリケーション2(136−2)に特有のアプリケーションコア2(230−2)を含む。例えば、アプリケーションコア1(230−1)は、アプリケーション1(136−1)に特有の動作(例えば、1つ以上の電子メールサーバから電子メールを取得すること)を実行する命令を含み、アプリケーションコア2(230−2)は、アプリケーション2(136−2)に特有の動作(例えば、ウェブページをブックマークすること)を実行する命令を含む。
一部の実施形態では、イベントオブジェクト194は、宛先(例えば、アプリケーションコア1(230−1)などのソフトウェア構成要素)に直接送信される。任意選択的に、イベントオブジェクト194は、アプリケーションプログラミングインターフェース222を介して送信される。一部の実施形態では、イベントオブジェクト194は、イベントオブジェクト194を(例えば、待ち行列218−1内に)ポストしてアプリケーションコア1(230−1)によって取得されるようにすることによって、送信される。
一部の実施形態では、イベントオブジェクト194は力情報を含む。一部の実施形態では、マウスイベントオブジェクトは、力情報(例えば、未加工の又は正規化された、タッチ入力により加えられる力)を含む。一部の実施形態では、タッチイベントオブジェクトは力情報を含む。一部の実施形態では、力イベントオブジェクトは力情報を含む。
図2は、一部の実施形態による、タッチスクリーン(例えば、タッチ感知ディスプレイシステム112、図1A)を備えるポータブル多機能デバイス100を示す。タッチスクリーンは、ユーザインターフェース(UI)200内に1つ以上のグラフィックを、任意選択的に表示する。これらの実施形態、並びに後述する実施形態において、ユーザは、例えば、1本以上の指202(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス203(図には、正確な縮尺率では描かれていない)を用いて、グラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択することができる。一部の実施形態では、ユーザが1つ以上のグラフィックとの接触を断った際に、その1つ以上のグラフィックの選択が発生する。一部の実施形態では、ジェスチャは、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上方向へ及び/若しくは下方向へ)、並びに/又は、デバイス100と接触した指のローリング(右から左へ、左から右へ、上方向へ及び/若しくは下方向へ)を、任意選択的に含む。一部の実装又は状況では、グラフィックとの不測の接触によって、そのグラフィックが選択されることはない。例えば、任意選択的には、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャによって、対応するアプリケーションが選択されることはない。
デバイス100はまた任意選択的に、「ホーム」又はメニューボタン204などの、1つ以上の物理ボタンも含む。前述のように、メニューボタン204は任意選択的に、デバイス100上で任意選択的に実行される、アプリケーションのセット内の任意のアプリケーション136へのナビゲーションに使用される。あるいは、一部の実施形態では、メニューボタンは、タッチスクリーンディスプレイ上に表示されたGUIにおけるソフトキーとして実装されている。
一部の実施形態では、デバイス100は、タッチスクリーンディスプレイと、メニューボタン204と、デバイスへの電源供給のオン/オフ及びデバイスのロックのためのプッシュボタン206と、音量調節ボタン(単数又は複数)208と、加入者識別モジュール(SIM)カードスロット210と、ヘッドセットジャック212と、ドッキング/充電用外部ポート124と、を含む。プッシュボタン206は任意選択的に、ボタンを押し下げ、所定の時間間隔の間ボタンを押し下げた状態で保持することによってデバイス上の電源をオン/オフする、ボタンを押し下げ所定の時間間隔が経過する前にボタンを解放することによってデバイスをロックする、及び/又は、デバイスのロックを解除する若しくはロック解除処理を開始するために、使用される。一部の実施形態では、デバイス100はまた、マイクロフォン113を通して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力を受け付ける。デバイス100はまた、タッチ感知ディスプレイシステム112上の接触の強度を検出するための1つ以上の接触強度センサ165、及び/又は、デバイス100のユーザに対する触知出力を生成するための1つ以上の触知出力生成器163も、任意選択的に含む。
図3は、一部の実施形態による、ディスプレイ及びタッチ感知面を備える例示的な多機能デバイスのブロック図である。デバイス300は、ポータブル型である必要はない。一部の実施形態では、デバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、家庭用又は業務用コントローラ)である。デバイス300は、典型的には、1つ以上の処理ユニット(CPU)310と、1つ以上のネットワーク又は他の通信インターフェース360と、メモリ370と、これらの構成要素を相互接続するための1つ以上の通信バス320と、を含む。通信バス320は、システム構成要素間の通信を相互接続及び制御する回路(チップセットと呼ばれる場合もある)を任意選択的に含む。デバイス300は、典型的にはタッチスクリーンディスプレイであるディスプレイ340を備える、入出力(I/O)インターフェース330を含む。I/Oインターフェース330はまた、キーボード及び/又はマウス(又は他のポインティングデバイス)350並びにタッチパッド355、デバイス300上に触知出力を生成するための(例えば、図1Aを参照して上記した触知出力生成器(単数又は複数)163と同様の)触知出力生成器357、センサ359(例えば、図1Aを参照して上記したセンサ112、164、165、166、167、168、及び169と同様の、タッチ感知センサ、光センサ、接触強度センサ、近接センサ、加速度センサ、姿勢センサ、及び/又は磁気センサ接触強度センサ)も、任意選択的に含む。メモリ370は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステート記憶デバイスなどの、不揮発性メモリを含む。メモリ370は、CPU(単数又は複数)310からリモートに配置された1つ以上の記憶デバイスを任意選択的に含む。一部の実施形態では、メモリ370は、ポータブル多機能デバイス100(図1A)のメモリ102に記憶されたプログラム、モジュール、及びデータ構造に類似のプログラム、モジュール、及びデータ構造、又はそれらのサブセットを記憶する。更に、メモリ370は、ポータブル多機能デバイス100のメモリ102に存在しない追加のプログラム、モジュール、及びデータ構造を、任意選択的に記憶する。例えば、デバイス300のメモリ370は任意選択的に、描画モジュール380、プレゼンテーションモジュール382、ワードプロセッシングモジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、及び/又はスプレッドシートモジュール390を記憶するが、ポータブル多機能デバイス100(図1A)のメモリ102は任意選択的に、これらのモジュールを記憶しない。
上記で特定された図3の要素のそれぞれは任意選択的に、前述のメモリデバイスのうちの1つ以上に記憶される。上記で特定されたモジュールのうちのそれぞれは、上述した機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実施される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実施形態において、任意選択的に、組み合わされるか、又はその他の方式で再配置される。一部の実施形態では、メモリ370は、上記で特定されたモジュール及びデータ構造のサブセットを、任意選択的に記憶する。更に、メモリ370は、上記されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
図4は、一部の実施形態による、例示的な電子スタイラス203のブロック図である。電子スタイラス203は、単にスタイラスと呼ばれる場合もある。スタイラス203は、メモリ402(任意選択的に、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ422、1つ以上の処理ユニット(CPU)420、周辺機器インターフェース418、RF回路408、入出力(I/O)サブシステム406、及びその他の入力又は制御デバイス416を含む。スタイラス203は、外部ポート424及び1つ以上の光センサ464を任意選択的に含む。スタイラス203は任意選択的に、デバイス100上の(例えば、スタイラス203がデバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面と共に使用されるとき)、又は他の表面(例えば机の表面)上の接触の強度を検出するための、1つ以上の強度センサ465を含む。スタイラス203は任意選択的に、スタイラス203上に触知出力を生成するための、1つ以上の触知出力生成器463を含む。これらの構成要素は、1つ以上の通信バス又は信号ライン403を介して任意選択的に通信する。
一部の実施形態では、上で検討した用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイス(例えば、デバイス100)のアクセサリ(例えば、スタイラス203)の、そのアクセサリの従前の位置に対する物理的変位、アクセサリの構成要素の、そのアクセサリの別の構成要素に対する物理的変位、又はアクセサリの重心に対する構成要素の変位を指す。例えば、アクセサリ又はアクセサリの構成素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的変位によって生成された触知出力は、アクセサリ又はアクセサリの構成要素の物理的特性の認識された変化に相当する触感として、ユーザによって解釈される。例えば、構成要素(例えば、スタイラス203の筐体)の移動は、ユーザによって、物理アクチュエータボタンの「クリック」として任意選択的に解釈される。場合によっては、ユーザの動作により物理的に押された(例えば、変位された)スタイラスに関連付けられた物理アクチュエータボタンの移動がない時でさえ、ユーザは「クリック」などの触感を感じるであろう。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるものではあるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「クリック」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
スタイラス203は、電子スタイラスの一実施例に過ぎず、スタイラス203は、示されているものよりも多くの構成要素又は少ない構成要素を任意選択的に有し、2つ以上の構成要素を任意選択的に組み合わせるか、又は、それらの構成要素の異なる構成若しくは配置を任意選択的に有することを理解されたい。図4に示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せで実装される。
メモリ402は、任意選択的に高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上のフラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの、不揮発性メモリも含む。CPU(単数又は複数)420及び周辺機器インターフェース418などの、スタイラス203の他の構成要素によるメモリ402へのアクセスは、メモリコントローラ422により任意選択的に制御される。
周辺機器インターフェース418を使用して、このスタイラスの入力及び出力周辺機器を、CPU(単数又は複数)420及びメモリ402に結合することができる。1つ以上のプロセッサ420は、スタイラス203のための様々な機能を実行するため及びデータを処理するために、メモリ402に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させる、又は実行する。
一部の実施形態では、周辺機器インターフェース418、CPU(単数又は複数)420、及びメモリコントローラ422は、任意選択的に、チップ404などの単一チップ上に実装される。一部の他の実施形態では、これらは、個別のチップ上に、任意選択的に実装される。
RF(無線周波数)回路408は、電磁信号とも呼ばれるRF信号を送受信する。RF回路408は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して、デバイス100若しくは300、通信ネットワーク、及び/又は他の通信デバイスと通信する。RF回路408は、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、メモリなどを含むがこれらに限定されない、これらの機能を実行するための周知の回路を、任意選択的に含む。RF回路408は、ワールドワイドウェブ(WWW)とも呼ばれるインターネット、イントラネット、及び/又は、セルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)などの無線ネットワーク、及び/又は、メトロポリタンエリアネットワーク(MAN)、などのネットワーク、及び他のデバイス、と無線通信によって、任意選択的に通信する。無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを、任意選択的に使用し、それらの通信規格、通信プロトコル、及び通信技術としては、移動通信用のグローバルシステム(GSM)、拡張データGSM環境(EDGE)、高速ダウンリンクパケット接続(HSDPA)、高速アップリンクパケット接続(HSUPA)、Evolution,Data−Only(EV−DO)、HSPA、HSPA+、2重セルHSPA(DC−HSPDA)、ロングタームエボリューション(LTE)、近距離無線通信(NFC)、広帯域符号分割多元接続(W−CDMA)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth(登録商標)、Wireless Fidelity(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)、あるいは本文書の出願日現在までにまだ開発されていない通信プロトコルを含めた任意の他の好適な通信プロトコルが挙げられるが、これらに限定されない。
I/Oサブシステム406は、その他の入力又は制御デバイス416などのスタイラス203上の入出力周辺機器を、周辺機器インターフェース418に結合する。I/Oサブシステム406は、任意選択的に、光センサコントローラ458、強度センサコントローラ459、触覚フィードバックコントローラ461、及びその他の入力又は制御デバイスのための1つ以上の入力コントローラ460を含む。1つ以上の入力コントローラ460は、その他の入力又は制御デバイス416から電気信号を受信し、それらへ電気信号を送信する。その他の入力又は制御デバイス416は、任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。一部の代替的実施形態では、入力コントローラ(単数又は複数)460は、赤外線ポート及び/又はUSBポートのうちのいずれかに、任意選択的に結合される(又は、いずれにも結合されない)。
スタイラス203はまた、様々な構成要素に電力を供給するための電力システム462をも含む。電力システム462は任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイス及び/又はポータブルアクセサリにおける電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
スタイラス203はまた、1つ以上の光センサ464も任意選択的に含む。図4は、I/Oサブシステム406内の光センサコントローラ458に結合された、光センサを示す。光センサ(単数又は複数)464は、電荷結合デバイス(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタを、任意選択的に含む。光センサ(単数又は複数)464は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。
スタイラス203はまた、1つ以上の接触強度センサ465も任意選択的に含む。図4は、I/Oサブシステム406内の強度センサコントローラ459に結合された、接触強度センサを示す。接触強度センサ(単数又は複数)465は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、表面上の接触の力(若しくは圧力)を測定するために使用するセンサ)を、任意選択的に含む。接触強度センサ(単数又は複数)465は、環境から接触強度情報(例えば、圧力情報又は圧力情報のプロキシ)を受信する。一部の実施形態では、少なくとも1つの接触強度センサが、スタイラス203の先端に並置されているか、又は、それに近接している。
スタイラス203はまた、1つ以上の近接センサ466も任意選択的に含む。図4は、周辺機器インターフェース418に結合された、近接センサ466を示す。あるいは、近接センサ466は、I/Oサブシステム406内の入力コントローラ460に結合される。一部の実施形態では、近接センサは、スタイラス203の、電子デバイス(例えば、デバイス100)への近接度を判定する。
スタイラス203はまた、1つ以上の触知出力生成器463も任意選択的に含む。図4は、I/Oサブシステム406内の触覚フィードバックコントローラ461に結合された触知出力生成器を示す。触知出力生成器(単数又は複数)463は、スピーカ若しくは他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などの、エネルギーを直線運動に変換する電気機械デバイスを、任意選択的に含む。触知出力生成器(単数又は複数)463は、触覚フィードバックモジュール433から触知フィードバック生成命令を受信し、スタイラス203のユーザが感知できる触知出力をスタイラス203上で生成する。一部の実施形態では、少なくとも1つの触知出力生成器は、スタイラス203の長さ(例えば、本体又は筐体)と並置されているか、又はそれに近接しており、任意選択的に、スタイラス203を垂直方向(例えば、スタイラス203の長さと平行な方向)に、又は横方向(例えば、スタイラス203の長さの法線方向)に動かすことによって、触知出力を生成する。
スタイラス203はまた、スタイラス203の場所及び姿勢状態に関する情報を得るための、1つ以上の加速度計467、ジャイロスコープ468、及び/又は磁気計470(例えば、慣性測定ユニット(IMU)の一部として)を、任意選択的に含む。図4は、周辺機器インターフェース418に結合された、センサ467、469、及び470を示す。あるいは、センサ467、469、及び470は、I/Oサブシステム406内の入力コントローラ460に、任意選択的に結合される。スタイラス203は、スタイラス203の場所に関する情報を得るためのGPS(若しくはGLONASS又は他の全地球的航法システム)受信機(図示せず)を任意選択的に含む。
一部の実施形態では、メモリ402に記憶されたソフトウェア構成要素は、オペレーティングシステム426、通信モジュール(又は命令セット)428、接触/動きモジュール(又は命令セット)430、位置モジュール(又は命令セット)431、及び全地球測位システム(GPS)モジュール(又は命令セット)435を含む。更に、一部の実施形態では、図4に示すように、メモリ402は、デバイス/グローバル内部状態457を記憶する。デバイス/グローバル内部状態457は、スタイラスの様々なセンサ及び他の入力又は制御デバイス416から得られた情報を含む、センサ状態、デバイス(例えば、デバイス100)に対するスタイラスの姿勢(例えば、図5A及び図5Bに示すような、位置、向き、傾斜、ロール、及び/又は距離)に関する情報を含む、姿勢状態、並びに、(例えば、GPSモジュール435によって判定される)スタイラスの場所に関する場所情報、のうちの1つ以上を含む。
オペレーティングシステム426(例えば、iOS、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、WINDOWS(登録商標)、又はVxWorks(登録商標)などの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、電力管理など)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
通信モジュール428は任意選択で、1つ以上の外部ポート424を介して他のデバイスとの通信を容易にし、RF回路408及び/又は外部ポート424が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート424(例えば、ユニバーサルシリアルバス(USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えば、インターネット、無線LANなど)を通して間接的に、他のデバイスに結合するように適応している。一部の実施形態では、外部ポートは、カリフォルニア州CupertinoのApple Inc.製のiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスの一部内で使用されるLightning(登録商標)コネクタと同一の、又はこれに類似した及び/若しくは互換性のあるLightningコネクタである。
接触/動きモジュール430は任意選択的に、スタイラス203及びスタイラス203の他のタッチ感知デバイス(例えば、ボタン又はスタイラス203の他のタッチ感知構成要素)との接触を検出する。接触/動きモジュール430は、接触が発生したかどうかの判定(例えば、タッチダウンイベントの検出)、接触の強度(例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代用物)の判定、(例えば、デバイス100のタッチスクリーン112にわたる)接触の移動及びその移動の追跡があるかどうかの判定、並びに接触が中止されたかどうか(例えば、リフトオフイベント又は接触の中断の検出)の判定などの、接触の検出(例えば、デバイス100のタッチスクリーン112などのタッチ感知ディスプレイに対する、又は机の表面などの別の表面に対する、スタイラスの先端の検出)に関係する様々な動作を実行するための、ソフトウェア構成要素を含む。一部の実施形態では、接触/動きモジュール430は、I/Oサブシステム406から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、接触点の速さ(大きさ)、速度(大きさ及び方向)、並びに/又は加速度(大きさ及び/又は方向の変化)を判定することを、任意選択的に含む。上述のように、一部の実施形態では、接触の検出に関係するこれらの動作の内の1つ以上は、(接触/動きモジュール430を使用するスタイラスに加えて、又はその代わりに)接触/動きモジュール130を使用するデバイスによって実行される。
接触/動きモジュール430は任意選択的に、スタイラス203によるジェスチャ入力を検出する。スタイラス203による異なるジェスチャは、異なる接触パターン(例えば、検出される接触の異なる動き、タイミング、及び/又は強度)を有する。従って、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に検出される。例えば、単一のタップジェスチャを検出することは、タッチダウンイベントを検出し、続いて(例えば、アイコンの位置での)そのタッチダウンイベントと同じ位置(又は、実質的に同じ位置)でリフトオフイベントを検出することを含む。別の実施例として、スワイプジェスチャの検出は、タッチダウンイベントを検出し、続いて1つ以上のスタイラスドラッグイベントを検出し、その後、リフトオフイベントを検出することを含む。上述のように、一部の実施形態では、ジェスチャ検出は、(接触/動きモジュール430を使用するスタイラスに加えて、又はその代わりに)接触/動きモジュール130を使用するデバイスによって実行される。
加速度計467、ジャイロスコープ468、及び/又は磁気計469と連動して、位置モジュール431は、特定の座標系内のスタイラスの姿勢(ロール、ピッチ、及び/又はヨー)などの、スタイラスに関する姿勢情報を任意選択的に検出する。加速度計467、ジャイロスコープ468、及び/又は磁気計469と連動して、位置モジュール431は、スタイラスのフリック、タップ、及びロールなどのスタイラス移動ジェスチャを、任意選択的に検出する。位置モジュール431は、特定の座標系内のスタイラスの位置の検出及びスタイラスの位置の変化の検出に関係する、様々な動作を実行するためのソフトウェア構成要素を含む。一部の実施形態では、位置モジュール431は、デバイスに対するスタイラスの姿勢状態を検出し、またデバイスに対するスタイラスの姿勢状態の変化を検出する。上述のように、一部の実施形態では、デバイス100又は300は、(位置モジュール431を使用するスタイラスに加えて、又はその代わりに)位置モジュール131を使用して、デバイスに対するスタイラスの姿勢状態及びスタイラスの姿勢状態の変化を判定する。
触覚フィードバックモジュール433は、スタイラス203とのユーザ対話に応じて、スタイラス203上の1つ以上の場所で触知出力を生み出すために、触知出力生成器(単数又は複数)463によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
GPSモジュール435はスタイラスの場所を判定し、様々なアプリケーション(例えば、紛失したデバイス及び/又はアクセサリを見付けるためのアプリケーションなどの、場所に基づくサービスを提供するアプリケーション)において使用するために、この情報を提供する。
上記で特定されたモジュール及びアプリケーションのそれぞれは、1つ以上の上記の機能を実行するための実行可能命令セット、並びに本出願に記載の方法(例えば、本明細書に記載の、コンピュータにより実行される方法及び他の情報処理方法)に対応する。これらのモジュール(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実施形態において、任意選択的に、組み合わされるか、又はその他の方式で再配置される。一部の実施形態では、メモリ402は、上記で特定されたモジュール及びデータ構造のサブセットを、任意選択的に記憶する。更に、メモリ402は、上記されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
図5A〜図5Bは、一部の実施形態による、タッチ感知面(例えば、デバイス100のタッチスクリーン112)に対するスタイラス203の姿勢状態を示す。一部の実施形態では、スタイラス203の姿勢状態は、タッチ感知面上のスタイラスの先端の投影(若しくは他の代表的な部分)の位置(例えば、(x,y)位置504、図5A)タッチ感知面に対するスタイラスの向き(例えば、向き506、図5A)、タッチ感知面に対するスタイラスの傾き(例えば、傾き512、図5B)、及び/又は、タッチ感知面に対するスタイラスの距離(例えば、距離514、図5B)、に対応する(又はこれらを示す)。一部の実施形態では、スタイラス203の姿勢状態は、スタイラスのピッチ、ヨー、及び/又はロール(例えば、例えば、タッチ感知面(例えば、タッチスクリーン112)若しくは地面などの特定の座標系に対するスタイラスの姿勢)に対応する(又はこれらを示す)。一部の実施形態では、姿勢状態は、姿勢パラメータのセット(例えば、1つ以上の姿勢パラメータ)を含む。一部の実施形態では、姿勢状態は、電子デバイス(例えば、デバイス100)に送信される、スタイラス203からの1つ以上の測定値に従って検出される。例えば、スタイラスは、スタイラスの傾き(例えば、傾き512、図5B)及び/又は向き(例えば、向き506、図5A)を測定し、測定値をデバイス100に送信する。一部の実施形態では、姿勢状態は、スタイラス203からの1つ以上の測定値に従って検出された姿勢状態の代わりに又はこれと組み合わせて、タッチ感知面(例えば、デバイス100のタッチスクリーン112)によって感知される、スタイラス中の1つ以上の電極からの未加工の出力に従って検出される。例えば、タッチ感知面は、スタイラス中の1つ以上の電極から未加工の出力を受信し、この未加工の出力に基づいて(任意選択的に、スタイラスによって生成されたセンサ測定値に基づいてスタイラスによって提供された姿勢状態情報を併用して)、スタイラスの傾き及び/又は向きを計算する。
図5Aは、一部の実施形態による、タッチ感知面の真上の視点からの、タッチ感知面(例えば、デバイス100のタッチスクリーン112)に対するスタイラス203を示す。図5Aでは、z軸594はページの外(すなわち、タッチスクリーン112の平面の法線方向)を指し、x軸590はタッチスクリーン112の第1の縁部(例えば、長さ)と平行であり、y軸592はタッチスクリーン112の第2の縁部(例えば、幅)と平行でありかつy軸592はx軸590に対して垂直である。
図5Aは、(x,y)位置504にあるスタイラス203の先端を示す。一部の実施形態では、スタイラス203の先端は、タッチ感知面(例えば、タッチスクリーン112)へのスタイラスの近接度を判定するように構成された、スタイラスの終端部である。一部の実施形態では、タッチ感知面上のスタイラスの先端の投影は、正投影である。言い換えれば、タッチ感知面上のスタイラスの先端の投影は、タッチ感知面の表面の法線であるスタイラス先端からタッチ感知面に至る線の、端部(例えば、タッチ感知面の法線方向の経路に直接沿ってスタイラスを移動させた場合に、スタイラスの先端がタッチ感知面に触れることになる場所である、(x,y)位置504)にある点である。一部の実施形態では、タッチスクリーン112の左下の角の(x,y)位置は、位置(0,0)(例えば、(0,0)位置502)であり、タッチスクリーン112上の他の(x,y)位置は、タッチスクリーン112の左下の角に対して決まる。あるいは、一部の実施形態では、(0,0)位置は、タッチスクリーン112の別の位置に(例えば、タッチスクリーン112の中心に)配置され、他の(x,y)位置は、タッチスクリーン112のこの(0,0)位置に対して決まる。
更に、図5Aは、スタイラス203を向き506で示している。一部の実施形態では、向き506は、タッチスクリーン112上へのスタイラス203の投影(例えば、スタイラス203の長さ又はタッチスクリーン112上へのスタイラス203の異なる2つの点の投影の間の線に対応する線の、正投影)の向きである。一部の実施形態では、向き506は、タッチスクリーン112と平行な平面内の少なくとも1つの軸に対して決まる。一部の実施形態では、向き506は、タッチスクリーン112と平行な平面内の単一の軸(例えば、図5Aに示すような軸508であり、軸508から時計回りの回転角度は0度〜360度の範囲である)に対して決まる。あるいは、一部の実施形態では、向き506は、タッチスクリーン112と平行な平面内の1対の軸(例えば、図5Aに示すようなx軸590及びy軸592、又はタッチスクリーン112上に表示されたアプリケーションに関連付けられた1対の軸)に対して決まる。
一部の実施形態では、タッチ感知ディスプレイ(例えば、デバイス100のタッチスクリーン112)上に、目印(例えば、目印516)が表示される。一部の実施形態では、目印516は、スタイラスがタッチ感知ディスプレイに触れる前に、スタイラスがどこでタッチ感知ディスプレイに触れる(又はこれにマーク付けする)ことになるかを示す。一部の実施形態では、目印516は、タッチ感知ディスプレイ上に描かれているマークの一部である。一部の実施形態では、目印516は、タッチ感知ディスプレイ上に描かれているマークとは別個であり、仮想的な「ペン先端」、又はタッチ感知ディスプレイ上のどこにマークが描かれることになるかを示す他の要素に対応する。
一部の実施形態では、目印516は、スタイラス203の姿勢状態に従って表示される。例えば、一部の状況では、目印516は(図5A及び図5Bに示すように)(x,y)位置504から変位され、また他の状況では、目印516は、(x,y)位置504から変位されない(例えば、目印516は、傾き512がゼロ度であるとき、(x,y)位置504に又はこの近くに表示される)。一部の実施形態では、目印516は、スタイラスの姿勢状態に従って、色、サイズ(若しくは半径若しくは面積)、不透明度、及び/又は他の特性を変えて表示される。一部の実施形態では、表示された目印は、画素を覆う「ガラス上に」目印を表示するのではなく、タッチ感知ディスプレイの「画素上にまで」目印が通るように、タッチ感知ディスプレイ上のガラス層の厚さに相当する。
図5Bは、一部の実施形態による、タッチ感知面の側方の視点からの、タッチ感知面(例えば、デバイス100のタッチスクリーン112)に対するスタイラス203を示す。図5Bでは、z軸594はタッチスクリーン112の平面の法線方向を指し、x軸590はタッチスクリーン112の第1の縁部(例えば、長さ)と平行であり、y軸592はタッチスクリーン112の第2の縁部(例えば、幅)と平行でありかつy軸592はx軸590に対して垂直である。
更に、図5Bは、スタイラス203を傾き512で示している。一部の実施形態では、傾き512は、タッチ感知面の表面の法線(例えば、法線510)(単にタッチ感知面の法線とも呼ばれる)に対する角度である。図5Bに示すように、スタイラスがタッチ感知面に対して垂直である/タッチ感知面の法線方向であるとき(例えば、スタイラス203が法線510と平行であるとき)、傾き512はゼロであり、この傾きは、スタイラスが傾けられてタッチ感知面と平行である状態に近付くにつれ、大きくなる。
更に、図5Bは、タッチ感知面に対するスタイラス203の距離514を示している。一部の実施形態では、距離514は、タッチ感知面の法線方向における、スタイラス203の先端からタッチ感知面までの距離である。例えば、図5Bでは、距離514は、スタイラス203の先端から(x,y)位置504までの距離である。
用語「x軸」、「y軸」、及び「z軸」は、本明細書では、特定の図においてある方向を示すように使用されているが、これらの用語は絶対的な方向を指すものではないことが理解されるであろう。言い換えれば、「x軸」はそれぞれの軸のいずれであってもよく、「y軸」はx軸とは異なる特定の軸とすることができる。典型的には、x軸はy軸に対して垂直である。同様に、「z軸」は「x軸」及び「y軸」とは異なり、典型的には「x軸」及び「y軸」の両方に対して垂直である。
更に、図5Bは、ロール518、スタイラス203の長さ(長軸)を中心とした回転を示している。
ここで、ポータブル多機能デバイス100上に任意選択的に実装される、ユーザインターフェース(「UI」)の実施形態に注意を向ける。
図6Aは、一部の実施形態による、ポータブル多機能デバイス100上のアプリケーションのメニューに関する、例示的なユーザインターフェースを示す。同様のユーザインターフェースがデバイス300上に、任意選択的に、実装される。一部の実施形態では、ユーザインターフェース600は、以下の要素、又はそれらの部分集合若しくは上位集合を含む。
●セルラー信号及びWi−Fi信号などの無線通信(単数又は複数)のための信号強度インジケータ(単数又は複数)602、
●時刻604、
●Bluetoothインジケータ、
●バッテリ状態インジケータ606、
●下記などの、頻繁に使用されるアプリケーション用のアイコンを備えるトレー608、
○不在着信又はボイスメールメッセージの数のインジケータ614を任意選択的に含む、「電話」とラベル付けされた電話モジュール138用のアイコン616、
○未読電子メールの数のインジケータ610を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール140用のアイコン618、
○「ブラウザ」とラベル付けされた、ブラウザモジュール147用のアイコン620、
○「iPod」とラベル付けされた、iPod(Apple Inc.の商標)モジュール152とも称されるビデオ及び音楽プレーヤモジュール152用のアイコン622、
●下記などの、その他のアプリケーション用のアイコン、
○「メッセージ」とラベル付けされた、IMモジュール141用のアイコン624、
○「カレンダー」とラベル付けされた、カレンダーモジュール148用のアイコン626、
○「写真」とラベル付けされた、画像管理モジュール144用のアイコン628、
○「カメラ」とラベル付けされた、カメラモジュール143用のアイコン630、
○「オンラインビデオ」とラベル付けされた、オンラインビデオモジュール155用のアイコン632、
○「株価」とラベル付けされた、株価ウィジェット149−2用のアイコン634、
○「地図」とラベル付けされた、地図モジュール154用のアイコン636、
○「気象」とラベル付けされた、気象ウィジェット149−1用のアイコン638、
○「時計」とラベル付けされた、アラーム時計ウィジェット169−6用のアイコン640、
○「トレーニングサポート」とラベル付けされた、トレーニングサポートモジュール142用のアイコン642、
○「メモ」とラベル付けされた、メモモジュール153用のアイコン644、並びに
○デバイス100及びその様々なアプリケーション136に関する設定へのアクセスを提供する、設定アプリケーション若しくはモジュール用のアイコン646。
図6Aに示されているアイコンのラベルは、単に例示的であることに留意されたい。例えば、一部の実施形態では、ビデオ及び音楽プレーヤモジュール152用のアイコン622は、「音楽」又は「音楽プレーヤ」とラベル付けされる。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。一部の実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。一部の実施形態では、特定のアプリケーションアイコンのラベルは、その特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
図6Bは、ディスプレイ650とは別個のタッチ感知面651(例えば、タブレット又はタッチパッド355、図3)を備えるデバイス(例えば、デバイス300、図3)上の例示的なユーザインターフェースを示す。デバイス300はまた、タッチ感知面651上の接触の強度を検出するための1つ以上の接触強度センサ(例えば、センサ359のうちの1つ以上)、及び/又はデバイス300のユーザに対する触知出力を生成するための1つ以上の触知出力生成器359を任意選択的に含む。
図6Bは、ディスプレイ650とは別個のタッチ感知面651(例えば、タブレット又はタッチパッド355、図3)を備えるデバイス(例えば、デバイス300、図3)上の例示的なユーザインターフェースを示す。以下の実施例のうちの多くは、図6Bに示すように、ディスプレイとは別個のタッチ感知面上の入力を検出するデバイスを参照して与えられることになる。一部の実施形態では、タッチ感知面(例えば、図6Bの651)は、ディスプレイ(例えば、650)上の主軸(例えば、図6Bの653)に対応する主軸(例えば、図6Bの652)を有する。これらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの場所に対応する場所(例えば、図6Bにおいて、660は668と対応し、662は670と対応する)でのタッチ感知面651との接触(例えば、図6Bの660及び662)を検出する。このように、タッチ感知面がディスプレイとは別個のものである時、タッチ感知面(例えば、図6Bの651)上でデバイスによって検出されたユーザ入力(例えば、接触660及び662、及びそれらの移動)は、多機能デバイスのディスプレイ(例えば、図6Bの650)上のユーザインターフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインターフェースに任意選択的に使用されることを理解されたい。
更に、以下の実施例は、主に指入力(例えば、指の接触、フィンガタップジェスチャ、フィンガスワイプジェスチャなど)を参照して与えられるが、一部の実施形態では、それらの指入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、スタイラス入力)で置き換えられることを理解されたい。
本明細書で使用するとき、用語「フォーカスセレクタ」は、ユーザが対話しているユーザインターフェースの現在の部分を示す入力要素を指す。カーソル又は他のロケーションマーカを含む一部の実装形態では、カーソルは「フォーカスセレクタ」として機能し、これにより、カーソルが特定のユーザインターフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインターフェース要素)の上にある間に、タッチ感知面(例えば、図3のタッチパッド355、又は図6Bのタッチ感知面651)上で入力(例えば、押圧入力)が検出されるとき、特定のユーザインターフェース要素は、検出された入力に従って調節されるようになっている。タッチスクリーンディスプレイ上のユーザインターフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ(例えば、図1Aのタッチ感知ディスプレイシステム112、又は図6Aのタッチスクリーン)を含む一部の実装形態では、タッチスクリーン上で検出された接触が「フォーカスセレクタ」として機能し、これにより、タッチスクリーンディスプレイ上の特定のユーザインターフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインターフェース要素)の場所で入力(例えば、接触による押圧入力)が、検出されるとき、その特定のユーザインターフェース要素は、検出された入力に従って調節されるようになっている。一部の実装形態では、(例えば、タブキー又は矢印キーを使用してフォーカスをあるボタンから別のボタンに移動させることにより)タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、ユーザインターフェースのある領域からそのユーザインターフェースの別の領域へとフォーカスが移動される。これらの実装形態では、フォーカスセレクタは、ユーザインターフェースの異なる領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが採用する具体的な形態とは関わりなく、フォーカスセレクタは一般的に、ユーザが意図するユーザインターフェースとの対話を(例えば、ユーザが対話することを意図しているユーザインターフェースの要素をデバイスに示すことによって)通信するためにユーザによって制御される、ユーザインターフェース要素(又は、タッチスクリーンディスプレイ上の接触)である。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出される間の、それぞれのボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の場所は、(そのデバイスのディスプレイ上に示された他のユーザインターフェース要素ではなく)その対応するボタンをアクティブ化することをユーザが意図していることを示すものである。
本明細書及び特許請求の範囲で使用される時、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指の接触又はスタイラスの接触)の力若しくは圧力(単位面積当りの力)、又はタッチ感知面上の接触の力若しくは圧力の代用物(プロキシ)を指す。接触の強度は、少なくとも4つの異なる値を含み、より典型的には、何百もの(例えば、少なくとも256個の)異なる値を含む、値の範囲を有する。接触の強度は任意選択的に、様々な手法、及び様々なセンサ又はセンサの組合せを用いて、判定(又は測定)される。例えば、タッチ感知面の下に又はこれに隣接して配置された1つ以上の力センサは、タッチ感知面上の様々な点における力を測定するために、任意選択的に使用される。いくつかの実装形態では、複数の力センサの力測定値を組み合わせて(例えば、加重平均又は合計)、推定される接触の力を判定する。同様に、スタイラスの感圧先端部を任意選択的に使用して、タッチ感知面上のスタイラスの圧力を判定する。あるいは、タッチ感知面上で検出される接触領域のサイズ及び/若しくはその変化、接触に近接しているタッチ感知面の静電容量及び/若しくはその変化、並びに/又は、接触に近接しているタッチ感知面の抵抗及び/若しくはその変化が、タッチ感知面上の接触の力又は圧力の代用物として、任意選択的に使用される。一部の実装形態では、接触の力又は圧力の代用となる測定値は、強度閾値を超えているか否かを判定するために直接使用される(例えば、強度閾値は、代用となる測定値に対応する単位で記述される)。いくつかの実装では、接触の力又は圧力の代用となる測定値は、推定される力又は圧力に変換され、この推定される力又は圧力を使用して、強度閾値を超えているか否かを判定する(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。接触の強度をユーザ入力の属性として使用することは、アフォーダンスを(例えば、タッチ感知ディスプレイ上に)表示するため、及び/又はユーザ入力を(例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタンなどの物理的/機械的制御を介して)受信するための面積が制限された、低減されたサイズのデバイスにおいて、ユーザによるアクセスが他の場合に容易には不可能であり得る、追加のデバイス機能へのユーザのアクセスを可能にする。
一部の実施形態では、接触/動きモジュール130及び/又は430は、ユーザによって動作が実行されたか否かを判定するための(例えば、ユーザがアイコン上で「クリック」したか否かを判定するための)、1つ以上の強度閾値のセットを使用する。一部の実施形態では、少なくとも強度閾値のサブセットが、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されず、デバイス100の物理ハードウェアを変更することなく調節可能である)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイハードウェアを変更することなく、広範囲の所定の閾値のうちのいずれかに設定し得る。加えて、一部の実施形態では、デバイスのユーザには、(例えば、個々の強度閾値を調節することにより、及び/又は、システムレベルのクリック「強度」パラメータを用いて複数の強度閾値を一度に調節することにより)強度閾値のセットのうちの1つ以上を調節するためのソフトウェア設定が提供されている。
本明細書及び特許請求の範囲で使用するとき、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。一部の実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、所定の数の強度サンプル、あるいは、所定のイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増加を検出する前若しくは後、及び/又は接触の強度の減少を検出する前若しくは後)に対して所定の時間期間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)内に収集された、強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の平均値(mean value)、接触の強度の平均値(average value)、接触の強度の上位10%値、接触の強度の最大値の半分の値、接触の強度の最大値の90%の値、などのうちの1つ以上に基づく。一部の実施形態では、特性強度を判定する際に、接触の持続期間が使用される(例えば、特性強度が経時的な接触の強度の平均であるとき)。一部の実施形態では、動作がユーザによって実行されたか否かを判定するために、特性強度を1つ以上の強度閾値のセットと比較する。例えば、1つ以上の強度閾値のセットは、第1の強度閾値及び第2の強度閾値を含むことができる。この実施例では、第1の閾値を上回らない特性強度を有する接触の結果として第1の動作が実行され、第1の強度閾値を上回り第2の強度閾値を上回らない特性強度を有する接触の結果として第2の動作が実行され、第2の強度閾値を上回る特性強度を有する接触の結果として第3の動作が実行される。一部の実施形態では、特性強度と1つ以上の強度閾値との間の比較が、第1の動作又は第2の動作のいずれを実行するかを判定するために使用されるのではなく、1つ以上の動作を実行するかどうか(例えば、それぞれのオプションを実行するのか、又はそれぞれの動作の実行を取り止めるのか)を判定するために使用される。
一部の実施形態では、特性強度を判定する目的で、ジェスチャの一部分が特定される。例えば、タッチ感知面は、開始場所から遷移して終了場所まで達する連続的なスワイプ接触(例えば、ドラッグジェスチャ)を受け取る場合があり、この終了場所で接触の強度が増加する。この実施例では、終了場所における接触の特性強度は、連続的なスワイプ接触全体ではなく、そのスワイプ接触の一部分のみ(例えば、スワイプ接触の終了場所における部分のみ)に基づいてもよい。一部の実施形態では、接触の特性強度を判定する前に、平滑化アルゴリズムをそのスワイプ接触の強度に適用してもよい。例えば、平滑化アルゴリズムは任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズム、のうちの1つ以上を含む。一部の状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的で、スワイプ接触の強度の小幅な上昇又は低下を除外する。
後述するユーザインターフェースの図(例えば、図7A〜図7BBB)は任意選択的に、1つ以上の強度閾値(例えば、第1の強度閾値I、第2の強度閾値I、第3の強度閾値I、及び/又は1つ以上の他の強度閾値)に対する、タッチ感知面上の接触の現在の強度を示す、様々な強度の図表を含む。この強度の図表は、典型的には、表示されるユーザインターフェースの一部ではないが、それらの図の解釈に役立てるために提供される。一部の実施形態では、第1の強度閾値は、物理マウスのボタン又はトラックパッドのクリックに通常関連付けられる動作を、デバイスが実行することになる強度に相当する。一部の実施形態では、第2及び第3の強度閾値は、物理マウスのボタン又はトラックパッドのクリックに通常関連付けられる動作とは異なる動作を、デバイスが実行することになる強度に相当する。一部の実施形態では、第1の強度閾値を下回る(例えば、かつ、それを下回ると接触がもはや検出されないわずかな接触検出強度閾値を上回る)特性強度で接触が検出される場合、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従って、フォーカスセレクタを移動させる。全般的には、別途記載のない限り、これらの強度閾値は、ユーザインターフェース図の異なるセット間で一貫している。
一部の実施形態では、デバイスにより検出された入力へのデバイスの応答は、入力の間の接触強度に基づく基準によって決まる。例えば、一部の入力に対して、入力の間の第1の強度閾値を上回る接触の強度は、第1の応答をトリガする。一部の実施形態では、デバイスにより検出された入力へのデバイスの応答は、入力の間の接触強度及び時間に基づく基準の両方を含む基準によって決まる。例えば、いくつかの入力に対して、入力の間の、(例えば、軽い押圧に対する)第1の強度閾値より大きい第2の強度閾値を超える接触の強度は、第1の強度閾値が満たされてから第2の強度閾値が満たされるまでの間に遅延時間が経過した場合のみ、第2の応答をトリガする。この遅延時間は、典型的には、持続時間が200ms未満(例えば、第2の強度閾値の大きさにより、40ms、100ms、又は120msであり、遅延時間は第2の強度閾値が増大するにつれ増大する)である。この遅延時間は、第2の応答の偶発的なトリガを回避するのに役立つ。別の実施例として、ある入力では、第1の強度閾値が満たされる時間の後に発生する、感度が低減した時間期間が存在する。感度が低減した時間期間の間、第2の強度閾値は増大する。第2の強度閾値のこの一時的な増大もまた、第2の応答の偶発的なトリガを回避するのに役立つ。他の入力では、第2の応答は、時間に基づく基準によっては決まらない。
一部の実施形態では、入力強度閾値及び/又は対応する出力のうちの1つ以上は、ユーザ設定、接触の動き、入力タイミング、実行しているアプリケーション、強度が加わる速度、同時に行われる入力の数、ユーザ履歴、環境要因(例えば、周囲ノイズ)、フォーカスセレクタの位置などの、1つ以上の要因に基づいて変化する。例示的な要因が、米国特許出願第14/399,606号及び第14/624,296号に記載されており、これらの全体が参照により本願に組み込まれている。
強度閾値Iを下回る強度から、強度閾値Iと強度閾値Iとの間の強度への、接触の特性強度の増大は、「軽い押圧」入力と称される場合がある。強度閾値Iを下回る強度から、強度閾値Iを上回る強度への、接触の特性強度の増大は、「深い押圧」入力と称される場合がある。一部の実施形態では、強度閾値Iを下回る強度から、強度閾値Iを上回る強度への、接触の特性強度の増大も、「深い押圧」入力と呼ばれる。接触検出強度閾値を下回る強度から、接触検出強度閾値と強度閾値Iとの間の強度への、接触の特性強度の増大は、タッチ面上の接触の検出と称される場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への、接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と称される場合がある。一部の実施形態では、接触検出強度閾値はゼロである。一部の実施形態では、接触検出強度閾値はゼロよりも大きい。一部の図では、タッチ感知面上の接触の強度を表すために、影付きの円又は楕円が使用される。一部の図では、それぞれの接触の強度を指定することなく、タッチ感知面上のそれぞれの接触を表すために、影なしの円又は楕円が使用される。
本明細書で説明される一部の実施形態では、1つ以上の動作は、それぞれの押圧入力を含むジェスチャの検出に応じて、又はそれぞれの接触(又は複数の接触)で実行されるそれぞれの押圧入力の検出に応じて実行され、それらのそれぞれの押圧入力は、押圧入力強度閾値を上回る接触(又は複数の接触)の強度の増大の検出に少なくとも部分的に基づいて検出される。一部の実施形態では、それぞれの動作は、押圧入力強度閾値を上回る、それぞれの接触の強度の増大の検出に応じて、実行される(例えば、それぞれの動作は、それぞれの押圧入力の「ダウンストローク」により実行される)。一部の実施形態では、押圧入力は、押圧入力強度閾値を上回る、それぞれの接触の強度の増大、及び続く押圧入力強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、その続く押圧入力閾値を下回るそれぞれの接触の強度の減少の検出に応じて実行される(例えば、それぞれの動作は、それぞれの押圧入力の「アップストローク」により実行される)。
一部の実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある不測の入力を回避するために強度ヒステリシスを採用し、この場合、デバイスは、押圧入力強度閾値との所定の関連性を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりも低いX強度単位か、又は、ヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な比率である)。それゆえ、一部の実施形態では、押圧入力は、押圧入力強度閾値を上回る、それぞれの接触の強度の増大、及び続く押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、その続くヒステリシス強度閾値を下回るそれぞれの接触の強度の減少の検出に応じて実行される(例えば、それぞれの動作は、それぞれの押圧入力の「アップストローク」により実行される)。同様に、一部の実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、続くヒステリシス強度以下の強度への接触の強度の減少を検出する場合にのみ検出され、それぞれの動作は、その押圧入力の検出(例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少)に応じて実行される。
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応じて、又はその押圧入力を含むジェスチャに応じて実行される動作の説明は、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少の検出に応じて、任意選択的にトリガされる。加えて、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて動作が実行されるとして説明される実施例では、その動作は、押圧入力強度閾値に対応しかつそれよりも低いヒステリシス強度閾値を下回る、接触の強度の減少を検出したことに応じて、任意選択的に実行される。上述のように、一部の実施形態では、これらの応答のトリガはまた、時間に基づく基準が満たされていること(例えば、低い強度閾値が満たされてから高い強度閾値が満たされるまでの間に遅延時間が経過している)によっても決まる。
ユーザインターフェース及び関連プロセス
ここで、ディスプレイとタッチ感知面とタッチ感知面との接触の強度を検出するための1つ以上のセンサとを備える、ポータブル多機能デバイス100又はデバイス300などの電子デバイス上で実装され得る、ユーザインターフェース(「UI」)及び関連プロセスの実施形態に注意を向ける。
図7A〜図7BBBは、一部の実施形態による、ウェブページ中の、タッチ入力を命令で処理するための、例示的なユーザインターフェースを示す。これらの図のユーザインターフェースは、図8A〜図8C及び図9の処理を含む、後述する処理を示すために使用される。以下の実施例のうちの一部は、ディスプレイ650とは別個のタッチ感知面651を参照して与えられるが、一部の実施形態では、デバイスは、図6Aに示すように、(タッチ感知面とディスプレイを組み合わせた)タッチスクリーンディスプレイ上の入力を検出する。
図7Aは、ディスプレイ650上のユーザインターフェース706がメールアプリケーション(例えば、電子メールクライアントモジュール140、図1A)のユーザインターフェースを含むことを示す。
図7Aは、ジェスチャレコグナイザのための状態機械704も示す。ジェスチャレコグナイザのための状態機械704並びに(ジェスチャイベントの処理を含む)イベント処理動作は、付録Aに詳細に記載されており、この付録Aはその全体が、参照により本願に組み込まれている。この実施例では、4つのジェスチャレコグナイザのための状態機械704が示され、各々が図7Aでは単一の文字、すなわち、リビールジェスチャレコグナイザ(R)、プレビュージェスチャレコグナイザ(P)、タップジェスチャレコグナイザ(T)、及びコミットジェスチャレコグナイザ(C)によって表されている。図7Aに示すように、これらのジェスチャレコグナイザのうちの3つに、異なる強度閾値が関連付けられる。すなわち、第1の強度閾値Iはリビールジェスチャレコグナイザに関連付けられ、第2の強度閾値Iはプレビュージェスチャレコグナイザに関連付けられ、第3の強度閾値Iはコミットジェスチャレコグナイザに関連付けられる。この実施例では、第3の強度閾値Iは第2の強度閾値Iよりも大きく(すなわち、高く)、第2の強度閾値Iは、第1の強度閾値Iよりも大きい(すなわち、高い)。
図7Aは、ユーザインターフェース706内のユーザインターフェースオブジェクト708又はフィーチャの上に位置付けられた、フォーカスセレクタ705の位置を示す。フォーカスセレクタ705の位置は、タッチ感知面(例えば、タッチ感知面651、又はタッチスクリーンディスプレイ650のタッチ感知面、図6B)上の、対応するユーザ入力の位置に対応する。
ユーザ入力強度のグラフ702に示すように、ユーザ入力の強度(接触強度とも呼ばれる)は、最初は第1の強度閾値Iを下回っている。
図7Bは、フォーカスセレクタ705に対応するユーザ入力がタップジェスチャであるとき結果的に生じる、新しいユーザインターフェース710を示す。強度プロファイル7102、7104、7106、及び7108はすべてタップジェスチャに対応し、したがって、時間7002で終了する時間期間によって表される第1の所定の時間期間の完了の前に、終了する。これらの4つの強度プロファイルはすべて、ジェスチャのピーク強度が3つの強度閾値のうちの1つ以上よりも大きいときであってもタップジェスチャに対応しているが、その理由は、ユーザ入力が第1の所定の時間期間の間、タッチ感知面上に留まらないからである。
一部の実施形態では、強度プロファイル7110はまた、ユーザ入力が第1の所定の時間期間の間タッチ感知面上に留まるものの、タップジェスチャに対応しているが、その理由は、ユーザ入力が第1の強度閾値Iを決して超えないからである。しかしながら、一部の他の実施形態では、強度プロファイル7110を有するユーザ入力は、どのような動作の実行も引き起こさない非イベントと解釈される。
図7Bはまた、タップジェスチャレコグナイザ(T)のための状態機械が、図7Aに示すような可能状態から、認識された状態に遷移することも示す。更に、図7Bは、リビールジェスチャレコグナイザ(R)、プレビュージェスチャレコグナイザ(P)、及びコミットジェスチャレコグナイザ(C)のための状態機械がすべて、可能状態から失敗した状態に遷移していることを示す。これは、強度プロファイル7102、7104、7106、7108、及び7110のうちのいずれの1つに関しても、これらのジェスチャレコグナイザによるジェスチャ認識のために必要な強度入力基準又は持続時間基準のいずれかを、入力が満足していないことによる。別法として又は加えて、失敗した状態に遷移するジェスチャレコグナイザの各々がそのように振る舞うのは、タップジェスチャレコグナイザ(T)によるタップジェスチャの認識が、他のすべてのジェスチャレコグナイザを失敗した状態に遷移させるためである。
図7Cは、ユーザインターフェース706の、その図7Aのユーザインターフェースの状態からの遷移を示す。特に、ユーザ入力の強度がリビールジェスチャレコグナイザ(R)に関する強度入力基準を満足するとの判定に従って、リビールジェスチャレコグナイザは、開始された状態に遷移する。一部の実施形態では、ユーザ入力の強度は、ユーザ入力の強度が第1の強度閾値Iに達するとき、リビールジェスチャレコグナイザ(R)に関する強度入力基準を満足する。一部の他の実施形態では、ユーザ入力の強度は、ユーザ入力の強度が第1の強度閾値Iを超えるとき、リビールジェスチャレコグナイザ(R)に関する強度入力基準を満足する。
任意選択的に、リビールジェスチャレコグナイザが開始された状態に遷移するとき、リビールジェスチャレコグナイザが可能状態にあるときとは異なる外観を有するフォーカスセレクタ705が、表示されるか又は表示用に提供される。
一部の実施形態では、ユーザ入力の強度がリビールジェスチャレコグナイザ(R)に関する強度入力基準を満足するとの判定に従って、ユーザ入力の強度がリビールジェスチャレコグナイザ(R)に関する強度入力基準を満足することを示す内部イベント7004が生成される。このイベントは、リビールジェスチャレコグナイザ(R)に提供され、リビールジェスチャレコグナイザ(R)は、このイベントに応じて開始された状態に遷移する。イベント7004は任意選択的に、図7Cで進度インジケータ750によって図式的に表されている、進度インジケータを含み、これは、第1の強度閾値Iと第2の強度閾値Iとの間のユーザ入力の強度の進度の量を示す。一部の実施形態では、進度インジケータ750は、例えば0〜1の値を有する正規化値であり、ユーザ入力の強度が第1の強度閾値Iに等しいか又はこれに達したとき、最初は0の値又はゼロに近い値をとる。
図7Dでは、ユーザ入力の強度は、図7Cに示すような第1の強度閾値Iに等しいか又はほぼ等しい強度から、第1の強度閾値Iを上回りかつ第2の強度閾値Iを下回る強度に変更されている。ユーザ入力の強度のこの増大に応じて、進度インジケータ750の値は、第1の強度閾値Iと第2の強度閾値Iとの間の範囲の、現在のユーザ入力強度が当てはまるところを示す値まで増大する。更に、リビールジェスチャレコグナイザ(R)の状態は変更された状態に遷移し、ユーザインターフェース706は、ユーザ入力の位置に対応する不鮮明にされていないユーザインターフェースオブジェクト708を除いて、不鮮明にされるか又は不鮮明な状態に遷移する。このようにして、ユーザがユーザ入力の強度を引き続き増大させる場合、ユーザインターフェースオブジェクト708に関するアクション又は動作が発生することが、ユーザに通知される。
図7Eでは、ユーザ入力の強度は、図7Dのユーザ入力の強度から更に増大している。リビールジェスチャレコグナイザ(R)は、変更された状態に留まる。更に、プレビュープラッタと呼ばれる場合もある、プレビュー領域712を小さくしたものが、オブジェクト708を除いて不鮮明なままであるユーザインターフェース706内に又はその上に、表示される。一部の実施形態では、プレビュー領域712のサイズは、進度インジケータ750の値に対応する。一部の実施形態では、プレビュー領域712は最初は、進度インジケータ750が0.4又は0.5などの所定の値に達するときのみ表示される。
図7Fでは、ユーザ入力の強度は、図7Eのユーザ入力の強度から更に増大している。リビールジェスチャレコグナイザ(R)は変更された状態のままであり、またユーザインターフェース706は、オブジェクト708を除いて不鮮明なままである。更に、プレビュー領域712のサイズは、ユーザインターフェース706内に又はその上に表示されているとき、ユーザ入力の強度の増大に従って又は進度インジケータ750の値の増大に従って、増大している。図7Fでは、プレビュー領域712のサイズは、ユーザがプレビュー領域712の内容を読むことを可能にするのに十分な程度に増大している。この実施例では、プレビュー領域712は、フォーカスセレクタ705が上に位置付けられるユーザインターフェースオブジェクト708に対応する情報のプレビューを含む。この実施例では、プレビューされた情報は、フォーカスセレクタ705が上に位置付けられるユーザインターフェースオブジェクト708に対応する人に関連付けられた関係先のプレビューを含む。
図7Gでは、ユーザ入力の強度は、図7Eのユーザ入力の強度から第2の強度閾値Iに等しいか又はほぼ等しい強度へと、更に増大している。進度インジケータ750はこの時点で、その最大値、例えば1を有し、これはユーザ入力の強度が、その進度インジケータに対応する範囲の最大値に達したことを示す。任意選択的に、第2の強度閾値Iと第3の強度閾値Iとの間の強度範囲に関するユーザ入力の状態を示す、第2の進度インジケータ752が生成される。図7Gでは、第2の進度インジケータ752は、ユーザ入力の強度が第2の強度閾値Iと第3の強度閾値Iとの間の強度範囲の下端にあることを示す、その最小値をとる。
ユーザ入力の強度が第2の強度閾値Iに達することに従って、リビールジェスチャレコグナイザ(R)は変更された状態に留まるか、又は別法として中止された状態に遷移し、タップジェスチャレコグナイザは失敗した状態に遷移し、プレビュージェスチャレコグナイザは開始された状態に遷移し、プレビュー領域712が、その最大サイズ(本明細書ではフルサイズと呼ばれる場合もある)か又はその最大サイズに近いサイズのいずれかで表示される。プレビュー領域712は引き続き、フォーカスセレクタ705が上に位置付けられるユーザインターフェースオブジェクト708に対応する情報のプレビューを含んでいる。
図7Hでは、ユーザ入力の強度は、図7Gのユーザ入力の強度から第2の強度閾値Iを上回りかつ第3の強度閾値Iを下回る強度へと、更に増大している。進度インジケータ750は、その最大値、例えば1のままであるが、その理由は、ユーザ入力の強度が、その進度インジケータに対応する範囲の最大値を上回っているためである。第2の進度インジケータ752はこの時点で、この進度インジケータ752に関する最小値と最大値との間の、その中間値をとり、これは、第2の強度閾値Iと第3の強度閾値Iとの間の強度範囲に関する現在のユーザ入力の状態を示す。
ユーザ入力の強度が第2の強度閾値Iを超えることに従って、リビールジェスチャレコグナイザ(R)は変更された状態に留まるか、又は別法として中止された状態に遷移し、タップジェスチャレコグナイザは失敗した状態に留まり、プレビュージェスチャレコグナイザは変更された状態に遷移し、プレビュー領域712が、その最大サイズ(本明細書ではフルサイズと呼ばれる場合もある)で表示される。プレビュー領域712は引き続き、フォーカスセレクタ705が上に位置付けられるユーザインターフェースオブジェクト708に対応する情報のプレビューを含んでいる。
図7Iでは、ユーザ入力の強度は、図7Hのユーザ入力の強度から第3の強度閾値I以上の強度へと、更に増大している。進度インジケータ750は、その最大値、例えば1のままであるが、その理由は、ユーザ入力の強度が、その進度インジケータに対応する範囲の最大値を上回っているためである。第2の進度インジケータ752はこの時点で、第2の強度閾値Iと第3の強度閾値Iとの間の強度範囲に関する現在のユーザ入力の状態を示す、その最大値をとる。任意選択的に、第3の強度閾値Iに達すると、ユーザ入力の強度を示しかつ任意選択的に進度インジケータ750、752の一方又は両方を含む、イベント7008が生成される。
ユーザ入力の強度が第3の強度閾値Iに達することに従って、リビールジェスチャレコグナイザ(R)は中止された状態に遷移し、タップジェスチャレコグナイザは失敗した状態に留まり、プレビュージェスチャレコグナイザは中止された状態に遷移し、コミットジェスチャレコグナイザは認識された状態に遷移する。更に、ユーザ入力の強度が第3の強度閾値Iに達することに従って、プレビュー領域712はもはや表示されず、代わりに、ユーザインターフェースオブジェクト708の選択に対応する新しいユーザインターフェース710が表示される。図7Iに示す実施例では、ユーザインターフェースオブジェクト708の選択により、ユーザインターフェースオブジェクト708に対応する人又はエンティティに関する関係先情報が、表示、又は表示用に提供されている。
図7Jでは、ユーザ入力の強度は、図7Hのユーザ入力の強度から第2の強度閾値Iを下回る強度へと、減少している。この実施例では、ユーザ入力の強度は第3の強度閾値Iに達しておらず、したがって、コミットジェスチャレコグナイザは可能状態に留まっている。更に、進度インジケータ750はその最大値を下回る値に遷移するが、その理由は、ユーザ入力の強度がこの時点で、この進度インジケータに対応する範囲の最大値を下回っているからである。第2の進度インジケータ752はこの時点で、第2の強度閾値Iと第3の強度閾値Iとの間の強度範囲に関する現在のユーザ入力の状態を示す、その最小値をとる。言い換えれば、ユーザ入力の強度が第2の強度閾値Iを下回っているので、第2の進度インジケータ752はその最小値をとる。任意選択的に、ユーザ入力の強度の変化によりイベント(図示せず)が生成され、この場合、このイベントは、ユーザ入力の強度を示しかつ任意選択的に進度インジケータ750、752の一方又は両方を含む情報を含む。
ユーザ入力の強度が第2の強度閾値Iを下回る強度まで減少することに従って、最初に第3の強度閾値Iに達することなく、リビールジェスチャレコグナイザ(R)は変更された状態に留まり、タップジェスチャレコグナイザは失敗した状態に留まり、プレビュージェスチャレコグナイザは変更された状態に留まり、コミットジェスチャレコグナイザは可能状態に留まる。更に、ユーザ入力の強度の減少に従って、プレビュー領域712のサイズは、ユーザ入力の強度がより高いときに表示されたサイズ(図7Hを参照)から減少する。
図7Kでは、ユーザ入力は、先に(強度プロファイル7112に対応する)第1の強度閾値I又は(強度プロファイル7114に対応する)第2の強度閾値Iに達したか又はこれを超えた後で、第3の強度閾値Iを超えることなく終了するが、この終了はユーザ入力のゼロ強度によって示されている。更に、ジェスチャの持続時間は時間7002に対応する第1の所定の期間を超えるが、これは、入力が第1の所定の時間期間の間タッチ感知面上に留まるのをやめることを含むタップ基準を、ジェスチャが満たさないことを示す。結果として、タップジェスチャレコグナイザは失敗した状態に遷移し、コミットジェスチャレコグナイザもまた、失敗した状態に遷移する。
図7Kの強度プロファイル7114に従って、プレビュージェスチャレコグナイザは、入力が第2の強度閾値Iを満足することを含む強度入力基準を入力の強度が満足しかつ第1の所定の時間期間の間入力がタッチ感知面上に留まることに応じて、ジェスチャの間に認識された状態に遷移し、次に、入力がタッチ感知面上に留まるのをやめることに応じて、失敗した状態に遷移する。
図7Kの強度プロファイル7112に従って、プレビュージェスチャレコグナイザは、最初に認識された状態に遷移することなく、可能状態から失敗した状態に遷移するが、その理由は、強度プロファイル7112を有する入力が、一時的にさえも、プレビュージェスチャレコグナイザに関する強度入力基準を満足していないからである。
任意選択的に、リビールジェスチャレコグナイザは、強度プロファイル7112又は強度プロファイル7114のいずれかを有する入力に応じて、認識された状態に遷移するが、その理由は、入力の強度が第1の強度閾値Iを超え、かつ入力が第1の所定の時間期間の間タッチ感知面上に留まるからである。一部の実施形態では、図7Kには示されていないが、リビールジェスチャレコグナイザは、入力がタッチ感知面上に留まるのをやめることに応じて、中止された状態に遷移する。
図7Lでは、アクティブジェスチャレコグナイザのセットは、リビールジェスチャレコグナイザ(R)、プレビュージェスチャレコグナイザ(P)、パン又はスクロールジェスチャレコグナイザ(S)、及びコミットジェスチャレコグナイザ(C)を含む。図7Lに示すように、これらのジェスチャレコグナイザのうちの3つに、異なる強度閾値が関連付けられる。すなわち、第1の強度閾値Iはリビールジェスチャレコグナイザに関連付けられ、第2の強度閾値Iはプレビュージェスチャレコグナイザに関連付けられ、第3の強度閾値Iはコミットジェスチャレコグナイザに関連付けられる。
図7Lは、ユーザインターフェース706内のユーザインターフェースオブジェクト708又はフィーチャの上に位置付けられた、フォーカスセレクタ707の位置を示す。フォーカスセレクタ705の位置は、タッチ感知面(例えば、タッチ感知面651、又はタッチスクリーンディスプレイ650のタッチ感知面、図6B)上の、対応するユーザ入力の位置に対応する。図7Lはまた、フォーカスセレクタ707を取り囲む点線の円又は他の形状として示される、入力移動限界区域又は入力移動限界外周714も示す。典型的には、入力移動限界外周714は実際には表示されず、代わりに、入力移動限界外周714は、ジェスチャレコグナイザのうちの1つ以上が利用する入力移動限界を表す。図7Lに示すように、ユーザ入力の強度は、3つの強度閾値I、I及びIのうちのいずれも満足しない。
フォーカスセレクタ707に対応する入力が、図7Lに示す位置から図7Mに示す位置に移動するとき、入力はタッチ感知面にわたって少なくとも所定の距離だけ移動しており、このことが、フォーカスセレクタ707が、入力移動限界外周714を少なくとも部分的に越えて移動していることによって反映されている。結果として、グラフィカルユーザインターフェース706は、タッチ感知面上の入力が移動した距離に対応する量だけ、パン又はスクロールする。より一般的には、入力がタッチ感知面にわたって少なくとも所定の距離だけ移動することに応じて、第2の動作が実行される。一部の実施形態では、第2の動作は、ユーザインターフェースの少なくとも一部をスクロールすることを含む。
更に、図7Mに示すように、入力がタッチ感知面にわたって少なくとも所定の距離だけ移動することに応じて、リビールジェスチャレコグナイザ(R)、プレビュージェスチャレコグナイザ(P)、及びコミットジェスチャレコグナイザ(C)はすべて失敗した状態に遷移し、パンジェスチャレコグナイザ(S)は開始された状態に遷移する。
図7Nでは、入力は、タッチ感知面にわたって引き続き移動し、これは、完全に入力移動限界外周714の外側にあるわけではない、フォーカスセレクタ707の更なる移動によって表される。入力のこの移動に応じて、パンジェスチャレコグナイザ(S)は変更された状態に遷移し、ユーザインターフェース706は、図7Mでのその位置と比較して上向きに更にスクロールされる。
図7L、図7M、及び図7Nでの入力の強度は、第1の強度閾値Iを下回ったままであることが留意される。入力の強度が第1の強度閾値Iを満足することの結果については、以下で図7O〜図7S及び他の後続の図を検討する際に取り扱う。
図7Oでは、ユーザ入力強度のグラフ70に示すように、フォーカスセレクタ707によって表される入力が、第1の強度閾値Iを満足しない強度で入力移動限界外周714を越えて既に移動した後で、入力の強度が増大して、第1の強度閾値Iを満足する。第1の強度閾値Iの満足は、フォーカスセレクタ707の外観の変化によって示される。ただし、ユーザ入力がこの時点で第1の強度閾値Iを満足しているにも関わらず、リビールジェスチャレコグナイザ(R)、プレビュージェスチャレコグナイザ(P)、及びコミットジェスチャレコグナイザ(C)はすべて失敗した状態に留まり、パンジェスチャレコグナイザ(S)は変更された状態に留まる。典型的には、ジェスチャレコグナイザは、失敗した状態に遷移してしまうと、ユーザ入力が終了するまで(すなわち、ユーザが自身の指又はスタイラス又は他の器具をタッチ感知面から持ち上げるまで)、認識された状態又は開始された状態などの他のいずれの状態にも遷移できない、ということが留意される。
一部の状況では、ユーザインターフェース706は、ユーザ入力がタッチ感知面にわたって少なくとも所定の距離だけ移動する前に入力の強度が第1の強度閾値Iを満足することに応じて、図7Lに示す状態から図7Pに示す状態に遷移する。例えば、図7Pでは、図7Lによって表されるタッチ感知面との最初の接触以降、入力は移動していないか、又は実質的に同じ場所に留まっている。入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足することに応じて、第1の動作が実行される。この実施例では、第1の動作は、ユーザ入力の位置に対応する不鮮明にされていないユーザインターフェースオブジェクト708を除いて、ユーザインターフェース706を不鮮明にすること又はユーザインターフェース706を不鮮明な状態に遷移させることを含む。
更に、一部の実施形態では、入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足することに応じて、プレビュージェスチャレコグナイザ(P)は可能状態から開始された状態に遷移し、上で検討した第1の動作の実行が、プレビュージェスチャレコグナイザ(P)が開始された状態に遷移することに応じて行われる。
更に、図7Pに示すように、入力が実質的にその最初の場所に留まる(すなわち、タッチ感知面にわたって少なくとも所定の距離だけ移動しない)こと、及び入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足することに応じて、プレビュージェスチャレコグナイザ(P)、コミットジェスチャレコグナイザ(C)、及びパンジェスチャレコグナイザ(S)はすべて、可能状態に留まる。
図7Pでフォーカスセレクタ707によって表されるタッチ感知面上の入力は、入力の第1の部分と呼ばれる場合があり、図7Qに示す同じ入力の後続の部分は、入力の第2の部分と呼ばれる場合がある。図7P及び図7Qに関して並びに図8A〜図8Eに示すフローチャートに関してより詳細に示す、一部の状況では、入力の第1の部分は、第1のジェスチャレコグナイザ、例えばリビールジェスチャレコグナイザを用いて処理され、入力の第2の部分は、第2のジェスチャレコグナイザ、例えばパンジェスチャレコグナイザを用いて処理される。
図7Qでは、(図7Pを参照して上で検討したように)プレビュージェスチャレコグナイザ(P)が可能状態から開始された状態に遷移した後で、入力は、入力がタッチ感知面にわたって少なくとも所定の距離だけ移動していることを含むパン基準を満足するのに十分な量だけ移動する。入力がパン基準を満足するのに十分な量だけ移動することに応じて、ユーザインターフェース706はタッチ感知面にわたる入力の移動の量に対応する量だけスクロールされ、リビールジェスチャレコグナイザ(R)は中止された状態に遷移し、プレビュージェスチャレコグナイザ(P)及びコミットジェスチャレコグナイザ(C)は失敗した状態に遷移し、パンジェスチャレコグナイザ(S)は変更された状態に遷移する。一部の実施形態では、変更された状態へのパンジェスチャレコグナイザ(S)の遷移は、ユーザインターフェース706又はユーザインターフェース706の少なくとも一部のスクロールを引き起こすか又は可能にするものである。
図7Rは図7Hに対応しているが、タップジェスチャレコグナイザ(T)の代わりにパンジェスチャレコグナイザ(S)を備える。図7Rでは、パンジェスチャレコグナイザ(S)は、タッチ感知面とのその最初の接触以降の入力の移動の不足、及び、開始された状態(図7Gを参照)又は変更された状態(図7H及び図7Rを参照)へのプレビュージェスチャレコグナイザ(P)の遷移に起因して、失敗した状態にある。フォーカスセレクタ707の上方の矢印は、入力が、この実施例では矢印が表す上向きの方向に、移動を開始したことを示す。
更に、図7Rでは、入力が第2の強度閾値Iを満足することを含む強度入力基準を入力が満足すること、及び結果として、プレビュージェスチャレコグナイザ(P)が開始された状態(図7Gを参照)又は変更された状態(図7H及び図7Rを参照)に遷移していることが留意される。
入力及びその対応するフォーカスセレクタ707の、図7Rに示す位置から図7Sに示す位置への移動を示す、図7S。ここでの検討の目的のためタッチ感知面にわたる所定の距離を超える移動と仮定され得る、この入力の移動にも関わらず、リビールジェスチャレコグナイザ(R)及びプレビュージェスチャレコグナイザ(P)は変更された状態に留まり、コミットジェスチャレコグナイザ(C)は可能状態に留まり、パンジェスチャレコグナイザ(S)は失敗した状態に留まる。一部の実施形態では、パンジェスチャレコグナイザ(S)が失敗した状態に留まる理由は、ジェスチャレコグナイザは失敗した状態に遷移してしまうと、ユーザ入力が終了するまで(すなわち、ユーザが自身の指又はスタイラス又は他の器具をタッチ感知面から持ち上げるまで)、認識された状態又は開始された状態などの他のいずれの状態にも遷移できないからである。
一部の実施形態では、プレビュー領域712を表示することと連動して(例えば、プレビュー領域712を表示することに応じて)、プレビュー領域712に関して、(新しい)第2のパンジェスチャレコグナイザが開始される。このため、かかる実施形態では、パンジェスチャレコグナイザ(S)は失敗した状態にあるものの、プレビュー領域712はパンジェスチャに応答する(例えば、プレビュー領域712は、第2のパンジェスチャレコグナイザを使用して、プレビュー領域712がディスプレイ650にわたって移動される間メールアプリケーションユーザインターフェース706が不動のままとなるように、メールアプリケーションユーザインターフェース706から独立的に、パンジェスチャに従ってディスプレイ650にわたって移動されるが、これは、図7O〜図7Pに示すようなパンジェスチャレコグナイザ(S)に関連付けられたスクロール動作とは異なっている)。
図7Tは、タップジェスチャレコグナイザ(T)が長い押圧ジェスチャレコグナイザ(L)で置き換えられていること、及びフォーカスセレクタ709によってフォーカスセレクタ705が置き換わっていることを除いて、図7Aと同様である。フォーカスセレクタ709に対応する入力の強度は、第1の強度閾値Iを満足せず(例えば、これを下回っており)、また、タッチ感知面との入力の最初の接触以降に経過した時間の量は、時間7116に対応する第1の所定の時間期間よりも少ない。
図7Uは、入力が、時間7116に対応する第1の所定の時間期間の間、タッチ感知面と接触したままであり、かつ第1の強度閾値Iを満足しない(例えば、これを下回っている)強度のままであることを示す。一部の実施形態では、図7Uに示すように、第1の所定の時間期間中の間入力が第1の強度閾値未満に留まることを含む長い押圧基準を入力が満足するとの判定に従って、長い押圧ジェスチャレコグナイザは開始された状態に遷移し、リビールジェスチャレコグナイザ(R)、プレビュージェスチャレコグナイザ(P)、及びコミットジェスチャレコグナイザ(C)は、失敗した状態に遷移する。
更に、一部の実施形態では、図7Uに示すように、第1の所定の時間期間の間入力が第1の強度閾値未満に留まることを含む長い押圧基準を入力が満足するとの判定に従って、第2の動作が実行される。図7Uに示す例では、第2の動作は、フォーカスセレクタ709の現在の位置に対応するオブジェクト708に関係する項目のメニュー716を表示することを含む。
図7Vは、第1の所定の時間期間(例えば、時間7116で終わる時間期間)の間に入力が第1の強度閾値(例えば、I)を満足することを含む強度入力基準を満足する入力に応答した、図7Tに示す図からのユーザインターフェース706の変化を示す。図7Vに示すように、入力の強度は、第1の強度閾値Iを上回って増大している。応じて、リビールジェスチャレコグナイザ(R)は、図7Tに示すような可能状態から、図7Vに示すような開始された状態に遷移する。一部の実施形態では、入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足することに応じて、第1の動作が実行される。この実施例では、第1の動作は、ユーザ入力の位置に対応する不鮮明にされていないユーザインターフェースオブジェクト708を除いて、ユーザインターフェース706を不鮮明にすること又はユーザインターフェース706を不鮮明な状態に遷移させることを含む。
図7Wは、第1の所定の時間期間(例えば、時間7116で終わる時間期間)の間入力が第2の強度閾値(例えば、I)未満に留まることを含む強度入力基準を満足する入力に応答した、図7Vに示す図からのユーザインターフェース706の変化を示す。一部の実施形態では、第1の所定の時間期間の間入力が第2の強度閾値未満に留まることを含む長い押圧基準を入力が満足するとの判定に従って、第2の動作が実行される。図7Wに示す例では、第2の動作は、フォーカスセレクタ709の現在の位置に対応するオブジェクト708に関係する項目のメニュー716を表示することを含む。
図7Xは、第1の所定の時間期間(例えば、時間7116で終わる時間期間)の間に入力が第2の強度閾値(例えば、I)を満足することを含む強度入力基準を満足する入力に応答した、図7Vに示す図からのユーザインターフェース706の変化を示す。一部の実施形態では、第1の所定の時間期間の間に入力が第2の強度閾値を満足することを含む強度入力基準を入力が満足するとの判定に従って、第3の動作が実行される。図7Xに示す実施例では、第3の動作は、フォーカスセレクタ709が上に位置付けられるユーザインターフェースオブジェクト708に対応する情報の、プレビュー712を表示することである。更に、一部の実施形態では、第1の所定の時間期間の間に入力が第2の強度閾値を満足することを含む強度入力基準を入力が満足するとの判定に従って、プレビュージェスチャレコグナイザ(P)は開始された状態に遷移し、長い押圧ジェスチャレコグナイザ(L)は失敗した状態に遷移する。一部の実施形態では、プレビュージェスチャレコグナイザ(P)の開始された状態への遷移が、長い押圧ジェスチャレコグナイザ(L)の失敗した状態への遷移を引き起こす。
図7Yは、長い押圧ジェスチャレコグナイザが失敗した状態に既に遷移し、第1の所定の時間期間(例えば、時間7116で終わる時間期間)の間入力が第1の(又は第2の)強度閾値を満足し続けた後の、ユーザインターフェース706を示す。
第1の所定の時間期間を通した入力の継続にも関わらず、長い押圧ジェスチャレコグナイザ(L)は失敗した状態に留まる。更に、この実施例では、リビールジェスチャレコグナイザ(R)は変更された状態に留まり、プレビュージェスチャレコグナイザ(P)は変更された状態に遷移し、コミットジェスチャレコグナイザ(C)は可能状態に留まる。一部の実施形態では、長い押圧ジェスチャレコグナイザ(L)が失敗した状態に留まる理由は、ジェスチャレコグナイザは失敗した状態に遷移してしまうと、ユーザ入力が終了するまで(すなわち、ユーザが自身の指又はスタイラス又は他の器具をタッチ感知面から持ち上げるまで)、認識された状態又は開始された状態などの他のいずれの状態にも遷移できないからである。
図7Zは、第1の所定の時間期間(例えば、時間7116で終わる時間期間)の間に第1の強度閾値を満足することがなく、かつ第1の所定の時間期間の間タッチ感知面上に留まるのをやめる入力に応答した、図7Tに示す図からのユーザインターフェース706の変化を示す。第1の所定の時間期間の間第1の強度閾値を満足することがなくかつ第1の所定の時間期間の間タッチ感知面上に留まるのをやめる入力に応じて、リビールジェスチャレコグナイザ(R)、プレビュージェスチャレコグナイザ(P)、コミットジェスチャレコグナイザ(C)、及び長い押圧ジェスチャレコグナイザ(L)はすべて、失敗した状態に遷移する。
図7AAは、パンジェスチャレコグナイザ(S)が長い押圧ジェスチャレコグナイザ(L)で置き換えられていること、及びフォーカスセレクタ707がフォーカスセレクタ709で置き換えられていることを除いて、図7Lに示す図と同様の、ユーザインターフェース706の図を示す。図7AAは、図7Lと同様に、フォーカスセレクタ709を取り囲む点線の円又は他の形状として示される、入力移動限界区域又は入力移動限界外周714を示す。典型的には、入力移動限界外周714は実際には表示されず、代わりに、入力移動限界外周714は、ジェスチャレコグナイザのうちの1つ以上が利用する入力移動限界を表す。
図7BBは、図7AAに示す図からの、ユーザインターフェース706の変化を示す。フォーカスセレクタ709に対応する入力が、図7AAに示す位置から図7BBに示す位置に移動するとき、入力はタッチ感知面にわたって少なくとも所定の距離だけ移動しており、このことが、フォーカスセレクタ709が、入力移動限界外周714を少なくとも部分的に越えて移動していることによって反映されている。結果として、グラフィカルユーザインターフェース706は、タッチ感知面上の入力が移動した距離に対応する量だけ、パン又はスクロールする。より一般的には、入力がタッチ感知面にわたって少なくとも所定の距離だけ移動することに応じて、第2の動作が実行される。一部の実施形態では、第2の動作は、ユーザインターフェースの少なくとも一部をスクロールすることを含む。
更に、図7AAに示すように、入力がタッチ感知面にわたって少なくとも所定の距離だけ移動することに応じて、リビールジェスチャレコグナイザ(R)、プレビュージェスチャレコグナイザ(P)、コミットジェスチャレコグナイザ(C)、及び長い押圧ジェスチャレコグナイザ(L)はすべて、失敗した状態にする。
図7CCは、図7BBに示す図からの、ユーザインターフェース706の変化を示す。図7CCでは、プレビュージェスチャレコグナイザ(P)、コミットジェスチャレコグナイザ(C)、及び長い押圧ジェスチャレコグナイザ(L)がすべて失敗した状態に遷移した後で、入力の強度は、強度プロファイル7118が示すように、増大して第1の所定の閾値Iを若しくは第1の所定の閾値Iさえも満足するか、又は、入力は、強度プロファイル7120が示すように、第1の所定の時間期間(例えば、時間7116で終わる時間期間)の間、タッチ感知スクリーンと接触しているが第1の強度閾値を下回ったままである。いずれの状況においても、リビールジェスチャレコグナイザ(R)、プレビュージェスチャレコグナイザ(P)、コミットジェスチャレコグナイザ(C)、及び長い押圧ジェスチャレコグナイザ(L)はすべて、失敗した状態に留まる。一部の実施形態では、リビールジェスチャレコグナイザ(R)、プレビュージェスチャレコグナイザ(P)、コミットジェスチャレコグナイザ(C)、及び長い押圧ジェスチャレコグナイザ(L)がすべて失敗した状態に留まる理由は、ジェスチャレコグナイザは失敗した状態に遷移してしまうと、ユーザ入力が終了するまで(すなわち、ユーザが自身の指又はスタイラス又は他の器具をタッチ感知面から持ち上げるまで)、認識された状態又は開始された状態などの他のいずれの状態にも遷移できないからである。
図7DDは、パンジェスチャレコグナイザ(S)がタップジェスチャレコグナイザ(T)で置き換えられていること、及びフォーカスセレクタ711が電子メールアドレス718上に配置されていることを除いて、図7Tに示す図と同様の、ユーザインターフェース706の図を示す。長い押圧ジェスチャレコグナイザ(L)がパンジェスチャレコグナイザ(S)を伴わずに使用される(例えば、長い押圧ジェスチャレコグナイザ(L)が電子メールアドレスに関連付けられた唯一のジェスチャレコグナイザであるか、又は、長い押圧ジェスチャレコグナイザ(L)及びパンジェスチャレコグナイザ(S)以外の1つ以上の他のジェスチャレコグナイザが、電子メールアドレスに関連付けられている)とき、長い押圧ジェスチャレコグナイザ(L)が開始された状態などの別の状態に遷移すべきであるか否かを判定する際に、時間7116で終わる時間期間の代わりに、時間7122で終わる時間期間が使用される。
図7EEでは、時間7122で終わる時間期間中に入力がタッチ感知面上に留まるとの判定に従って、時間7116で終わる時間期間の全持続時間の間入力がタッチ感知面上に留まるか否かに関係なく、オブジェクト718に関係する項目のメニュー716を表示する所定の動作が実行される。
図7FFは、フォーカスセレクタ713の強度7204が検出され、アプリケーション非依存モジュール220に送信されることを示す。強度7204の受信に応じて、アプリケーション非依存モジュール7220は、1つ以上のイベントオブジェクト194を、アプリケーション専用モジュール230に送信する。
イベントオブジェクト194は、検出された強度7204に基づく特性強度7206を含む。一部の実施形態では、イベントオブジェクト1904は基準強度7208を含む。例えば、一部の実施形態では、特性強度7206は、検出された強度7204を基準強度7208で除算したものに相当する、正規化された強度値である。一部の実施形態では、基準強度7208は、1つ以上の強度センサによって検出可能な最大強度に相当する。一部の実施形態では、基準強度7208は、検出された強度7204を正規化するための所定の強度レベルである。特性強度7206は典型的には、0〜1の範囲を有する。アプリケーション専用モジュール230は検出された強度7204の代わりに特性強度7206を受信するので、アプリケーション専用モジュール230は、強度センサ間のばらつきから独立した強度情報を受信し、これに応答するように構成される。このため、アプリケーション専用モジュール230は、強度センサ間のばらつきを処理する命令を含む必要がなく、したがって、アプリケーション専用モジュール230のサイズが低減され、アプリケーション専用モジュール230の性能が改善される。
一部の実施形態では、感度7210が設定されるとき、特性強度7206に感度値7210を乗算する。一部の実施形態では、感度7210は、1のデフォルト値を有する。しかしながら、例えば感度7210が2の値を有するときは、特性強度7206は2倍となる。
図7GGでは、例示的な設定ユーザインターフェースが、ディスプレイ650上に示されている。図7GGに示す設定ユーザインターフェースは、複数の強度設定(例えば、低い、中間の、及び高い強度設定)を有する領域720を含む。図7GGのユーザ入力強度のグラフ702は、検出された強度7302に従う特性強度7304が、低い感度設定が選択されるときに使用されることを示す。強度値の比較を容易にするために、図7GGのユーザ入力強度のグラフ702に関しては、1の基準強度が使用される。中間の設定が選択されるとき、特性強度7304よりも高い強度値を有する(例えば、特性強度7306は特性強度7304の2倍である)特性強度7306が使用され、また、高い設定が選択されるとき、特性強度7306よりも高い強度値を有する(例えば、特性強度7308は特性強度7304の3倍である)特性強度7308が使用される。
図7HHは、設定ユーザインターフェースが複数の強度設定オプション(例えば、4つ以上のレベルの強度設定オプション)を有する領域722を含むことを除いて、図7GGと同様である。4つ以上のレベルの強度設定オプションが存在するが、図7HHのユーザ入力強度のグラフ702は、ユーザ入力強度のグラフ702の理解を曖昧にしないように、3つのレベルの特性強度線(例えば、7304、7306、及び7308)を示す。
図7IIは、複数のフォーカスセレクタ(例えば、715及び717)が現在検出されており、それぞれのフォーカスセレクタの強度が個別に判定されることを示す。アプリケーション非依存モジュール220は、フォーカスセレクタ715の強度7204及びフォーカスセレクタ717の強度7212を受信し、それぞれのイベントオブジェクト194及び7194を、アプリケーション専用モジュール230に送信する。イベントオブジェクト194はフォーカスセレクタ715に対応し、フォーカスセレクタ715の特性強度7206並びに基準強度7208を含む。同じ基準強度7208が、複数のタッチの強度を正規化するために使用される。このため、フォーカスセレクタ717に対応するイベントオブジェクト7194もまた、同じ基準強度7208、並びにイベントオブジェクト194中のフォーカスセレクタ717の特性強度7214を含む。
図7JJは、メールアプリケーションユーザインターフェース706上のフォーカスセレクタ715及び717によるデピンチジェスチャを示す。図7JJでは、ジェスチャレコグナイザのための状態機械704は、メールアプリケーションユーザインターフェース706が、2つのピンチジェスチャレコグナイザ、すなわち、(例えば、図1Aの電子メールクライアントモジュール140によって)第1の強度閾値(例えば、I)が指定される、第1のピンチジェスチャレコグナイザ(N)、及び、(例えば、図1Aの電子メールクライアントモジュール140によって)強度閾値が指定されない、第2のピンチジェスチャレコグナイザ(N)に関連付けられることを示す。
図7KKのユーザ入力強度のグラフ702は、フォーカスセレクタ715及び717によるピンチ又はデピンチジェスチャが、強度閾値Iを満足することを示す。応じて、第1のピンチジェスチャレコグナイザ(N)は認識された状態に遷移し、対応する動作(例えば、メールアプリケーションユーザインターフェース724を表示すること、受信箱ビューを示すこと)が実行される。更には、第2のピンチジェスチャレコグナイザ(N)は、(例えば、第1のピンチジェスチャレコグナイザ(N)が認識された状態に遷移したために)失敗した状態に遷移する。
図7LLのユーザ入力強度のグラフ702は、フォーカスセレクタ715及び717によるピンチ又はデピンチジェスチャが、強度閾値Iを満足しない場合を示す。応じて、第2のピンチジェスチャレコグナイザ(N)は認識された状態に遷移し、対応する動作(例えば、ズームインビューを表示すること)が実行される。更には、第1のピンチジェスチャレコグナイザ(N)は、(例えば、第2のピンチジェスチャレコグナイザ(N)が認識された状態に遷移したために)失敗した状態に遷移する。
図7MMでは、状態機械704は、メールアプリケーションユーザインターフェース706が、2つのピンチジェスチャレコグナイザ(N)及び(N)、並びに、(例えば、図1Aの電子メールクライアントモジュール140によって)第2の強度閾値(例えば、I)が指定される、2指パンジェスチャレコグナイザ(2S)に関連付けられていることを示す。図7MMはまた、メールアプリケーションユーザインターフェース706上の、フォーカスセレクタ719及び721による2指パンジェスチャも示す。
図7NNのユーザ入力強度の図702は、2指パンジェスチャが第2の強度閾値を満足することを示す。2指パンジェスチャレコグナイザ(2S)は開始された状態に遷移し、対応する動作(例えば、メールアプリケーションユーザインターフェース706上にリンクされたウェブサイトのレビューを示すレビューウィンドウ726を重ねること)が実行される。第1のピンチジェスチャレコグナイザ(N)及び第2のピンチジェスチャレコグナイザ(N)は、(例えば、2指パンジェスチャレコグナイザ(2S)が認識された状態に遷移したために)失敗した状態に遷移する。
図7OOは、ブラウザアプリケーションユーザインターフェース710、並びに、ブラウザアプリケーションユーザインターフェース710のアドレスウィンドウ上の、フォーカスセレクタ723及び725によるデピンチジェスチャを示す。図7OOのジェスチャレコグナイザのための状態機械704は、ブラウザアプリケーションユーザインターフェース710のアドレスウィンドウが、(例えば、図1Aのブラウザモジュール147により)第3の強度閾値(例えば、I)が指定される、第3のピンチジェスチャレコグナイザ(N)に関連付けられていることを示す。図7OOのユーザ入力強度のグラフ702は、フォーカスセレクタ723及び725の強度が第3の強度閾値Iを満足し、第3のピンチジェスチャレコグナイザ(N)が開始された状態に遷移していることを示す。第1のピンチジェスチャレコグナイザ(N)及び第2のピンチジェスチャレコグナイザ(N)は可能状態に留まるが、その理由は、第3のピンチジェスチャレコグナイザ(N3)が、第1のピンチジェスチャレコグナイザ(N)及び第2のピンチジェスチャレコグナイザ(N)に対応するビューに関連付けられていないからである。
図7PPは、フォーカスセレクタ723及び725が検出されなくなることを示す。ただし、フォーカスセレクタ723及び725が第3の強度閾値Iを満足しているので、第3のピンチジェスチャレコグナイザ(N)は認識された状態に遷移し、対応する動作(例えば、タブ管理ビュー728を表示すること)が実行される。
図7QQのユーザ入力強度のグラフ702は、フォーカスセレクタ723及び725の強度が、第3の強度閾値(例えば、I)を満足しない場合を示す。この場合、第3のピンチジェスチャレコグナイザ(N)は失敗した状態に遷移し、第3のピンチジェスチャレコグナイザに関連付けられたアクションは何も実行されない(例えば、図7PPに示すタブ管理ビュー728は表示されない)。
図7RRは、メールアプリケーションユーザインターフェース706のユーザインターフェースオブジェクト708の上にあるフォーカスセレクタ727を示す。
図7RRのユーザ入力強度のグラフ702は、第1のタイミング基準(例えば、入力は時間7124で終わる期間の間タッチ感知面上に留まる必要がある)、及び第1の強度入力基準(例えば、入力は時間7124において又はそれ以降に、強度閾値Iを満足する必要がある)を示し、第1の所定の動作(例えば、プレビューウィンドウの表示が差し迫っていることを示唆するためにユーザインターフェースの少なくとも一部をぼやけさせるか又は不鮮明にすること、又は別法として、プレビューウィンドウを表示すること)を実行するためには、これらの両方を満足する必要がある。
図7RRでは、強度パターン7126に従う入力は、(入力が少なくとも時間7124で終わる時間期間の間留まり続けるので)第1のタイミング基準を、及び(入力が時間7124において強度閾値Iを満足するので)第1の強度入力基準を、いずれも満足する。したがって、第1の所定の動作(例えば、プレビューウィンドウの表示が差し迫っていることを示唆するためにユーザインターフェースの少なくとも一部をぼやけさせるか又は不鮮明にすること)は、時間7124において実行される。
強度パターン7128に従う入力は、(入力が少なくとも時間7124で終わる時間期間の間留まり続けるので)第1のタイミング基準を、及び(入力の強度が増大し時間7124の後で強度閾値Iを満足するので)第1の強度入力基準を、いずれも満足する。したがって、入力の強度が強度閾値Iを満足するとき、第1の所定の動作(例えば、プレビューウィンドウの表示が差し迫っていることを示唆するためにユーザインターフェースの少なくとも一部をぼやけさせるか又は不鮮明にすること)が実行される。
強度パターン7130に従う入力は、入力の強度がいずれの時間においても強度閾値Iを満足しないので、第1の強度入力基準を満足しない。(入力が少なくとも時間7124で終わる期間の間タッチ感知面上に留まるので)第1のタイミング基準は満足されるが、第1の所定の動作(例えば、プレビューウィンドウの表示が差し迫っていることを示唆するためにユーザインターフェースの少なくとも一部をぼやけさせるか又は不鮮明にすること)は実行されない。
強度パターン7131又は強度パターン7132に従う入力に関して、その入力は強度閾値Iを満足するが、この入力は、入力の強度が時間7124において又はその後で強度閾値Iを満足しないので、第1の強度入力基準を満足しない。入力が少なくとも時間7124で終わる期間の間タッチ感知面上に留まらないので、第1のタイミング基準は満足されない。したがって、第1の所定の動作(例えば、プレビューウィンドウの表示が差し迫っていることを示唆するためにユーザインターフェースの少なくとも一部をぼやけさせるか又は不鮮明にすること)は実行されない。
一部の実施形態では、強度パターン7132に従う入力は時間7134の前に解放されるので、異なる動作がユーザインターフェースオブジェクト708に関連付けられている場合に、その異なる動作(例えば、タップジェスチャ動作)が実行される。しかしながら、強度パターン7131に従う入力は時間7134の後で解放され、タップジェスチャ動作は強度パターン7131に従う入力に応じては実行されない。一部の実施形態では、時間7134は図7Bに示す時間7002に対応する。
図7SSは、少なくとも部分的にぼやけさせられるか又は不鮮明にされる、メールアプリケーションユーザインターフェース706を示す。一部の実施形態では、部分的にぼやけさせるか又は不鮮明にすることにより、入力の強度の更なる増大によりプレビューウィンドウの表示が開始されることを示す、視覚的な手がかりが提供される。
図7TTのユーザ入力強度のグラフ702は、第2のタイミング基準(例えば、入力は時間7136で終わる期間の間タッチ感知面上に留まる必要がある)、及び第2の強度入力基準(例えば、入力は時間7136において又はそれ以降に、強度閾値Iを満足する必要がある)を示し、第2の所定の動作(例えば、プレビューウィンドウを表示すること)を実行するためには、これらの両方を満足する必要がある。一部の実施形態では、時間7136は、図7TTに示す時間7124とは異なる。一部の実施形態では、時間7136及び時間7124は同一である。
強度パターン7128に従う入力は、(入力が少なくとも時間7136で終わる時間期間の間タッチ感知面上に留まるので)第2のタイミング基準を、及び(入力の強度が増大し時間7136の後で強度閾値Iを満足するので)第2の強度入力基準を、いずれも満足する。したがって、入力の強度が強度閾値Iを満足するとき、第2の所定の動作(例えば、プレビューウィンドウ712を表示すること)が実行される。
強度パターン7138に従う入力は、(入力が少なくとも時間7136で終わる時間期間の間タッチ感知面上に留まるので)第2のタイミング基準を、及び(入力が時間7136において強度閾値Iを満足するので)第2の強度入力基準を、いずれも満足する。したがって、第2の所定の動作(例えば、プレビューウィンドウ712を表示すること)は、時間7136において実行される。
しかしながら、強度パターン7140に従う入力は、入力がいずれの時間においても強度閾値Iを満足しないので、第2の強度入力基準を満足しない。入力は第2のタイミング基準(例えば、入力が時間7136で終わる時間期間の間タッチ感知面上に留まる)を満足するが、第2の強度入力基準が満足されないので、第2の所定の動作(例えば、プレビューウィンドウ712を表示すること)は実行されない。
強度パターン7142に従う入力は、第2の強度入力基準を満足しない。入力の強度は強度閾値Iを一時的に満足するが、この入力の強度は時間7136の前に強度閾値Iを下回って減少する。入力は時間7136において又はそれ以降に強度閾値Iを満足しないので、第2の強度入力基準は満足されていない。入力は第2のタイミング基準(例えば、入力が時間7136で終わる時間期間の間タッチ感知面上に留まる)を満足するが、第2の強度入力基準が満足されないので、第2の所定の動作(例えば、プレビューウィンドウ712を表示すること)は実行されない。
図7UUのユーザ入力強度のグラフ702は、一部の実施形態では、入力の強度が基準強度Iを下回って減少するとき、タイミング基準がリセットされる(例えば、最初の接触が検出されるときから時間期間を開始する代わりに、入力の強度が基準強度を下回って減少するときから時間期間が再開される)ことを示す。例えば、図7UUでは、入力が時間7124で終わる時間期間の間タッチ感知面上に留まり、入力の強度は時間7124において強度閾値Iを満足する。しかしながら、入力の強度が時間7146において基準強度Iを下回って下降するときに第1のタイミング基準がリセットされるので、第1の所定の動作は時間7124において実行されない。第1のタイミング基準は、入力が時間7148で終わる時間期間pの間タッチ感知面上に留まった後で満足され、第1の強度入力基準は、入力が時間7148において強度閾値Iを満足するので、時間7148において満足される。したがって、第1の所定の動作(例えば、プレビューウィンドウの表示が差し迫っていることを示唆するためにユーザインターフェースの少なくとも一部をぼやけさせるか又は不鮮明にすること)は、時間7148において実行される。
一部の実施形態では、基準強度Iは、入力の代表的な強度(例えば、ピーク強度)及び強度マージンImarginを使用することによって判定される。例えば、基準強度は、入力の代表的な強度(例えば、ピーク強度)を下回る強度マージンImarginに相当する。
図7VVのユーザ入力強度のグラフ702は、入力の強度が、入力の代表的な強度(例えば、ピーク強度)を下回る強度マージンImarginに相当する、第1の基準強度IR1を下回って減少することを示す。一部の実施形態では、入力の強度が第1の基準強度IR1を下回って減少するとき、第1のタイミング基準がリセットされ、新しい(第2の)基準強度IR2が、この第2の基準強度IR2が第1の基準強度IR1を下回る強度マージンImarginに相当するように決定される。入力の強度が時間7150において第2の基準強度IR2を更に下回って減少するとき、第1のタイミング基準は再びリセットされ、第1の時間期間p1は時間7152において終了する。入力が時間7152における第1の時間期間p1の終了までタッチ感知面上に留まるので、第1のタイミング基準は満足され、入力が時間7152における第1の時間期間p1の終了において強度閾値Iを満足するので、第1の強度入力基準は満足される。したがって、第1の所定の動作(例えば、プレビューウィンドウの表示が差し迫っていることを示唆するためにユーザインターフェースの少なくとも一部をぼやけさせるか又は不鮮明にすること)は、時間7152において実行される。
図7UU及び図7VVは、第1のタイミング基準をリセットすることを示すが、一部の実施形態では、第2のタイミング基準が同様の様式でリセットされる。簡潔にするために、そのような詳細はここでは省略する。
図7WWは、メールアプリケーションユーザインターフェース706のユーザインターフェースオブジェクト708の上にあるフォーカスセレクタ729を示す。
図7WWのユーザ入力強度のグラフ702は、所定の動作(例えば、メールアプリケーションユーザインターフェース706の表示をブラウザアプリケーションユーザインターフェース710と入れ替えること)に関する、第1の強度閾値成分7154を示す。第1の強度閾値成分7154は、最初は高い値Iを有し、経時的に減衰するが、これにより、最初の時間期間の間に予想外に強い入力で所定の動作が直ちに実行される可能性が低減される。しかしながら、これにより所定の動作が完全に防止されるわけではない。入力が十分な強度を有する場合、その入力は依然として第1の強度閾値成分7154を満足し、所定の動作を開始する可能性がある。第1の強度閾値成分7154を経時的に減衰(例えば、減少)させることによって、入力がしばらくの間タッチ感知面上に留まった後での所定の動作の実行が、より容易になる。
図7WWでは、強度パターン7156に従う入力は第1の強度閾値成分7154を満足し、所定の動作(例えば、メールアプリケーションユーザインターフェース706の表示をブラウザアプリケーションユーザインターフェース710と入れ替えること)の実行を開始する。
強度パターン7158に従う入力(例えば、短く強いタップジェスチャ)は第1の強度閾値成分7154を満足しないが、この理由は、入力の強度が急激に降下し、第1の強度閾値成分7154が減衰を開始する前に入力が解放されるからである。
一部の実施形態では、第1の強度閾値成分7154は、入力の最初の検出から間を置かずに減衰し始める。一部の実施形態では、第1の強度閾値成分7154は、図7WWに示すように、入力の最初の検出から所定の時間間隔p3後に減衰し始める。
図7XXのユーザ入力強度のグラフ702は、入力の強度が時間7162において基準強度Iを下回って降下するとき、第1の強度閾値成分7164は、所定の時間間隔p3が経過する前であっても、時間7162において減衰を開始することを示す。したがって、図7XXでは、強度パターン7160に従う入力は第1の強度閾値成分7164を満足し、所定の動作(例えば、メールアプリケーションユーザインターフェース706の表示をブラウザアプリケーションユーザインターフェース710と入れ替えること)が実行される。
図7YYは、(図7WWに関して上記した)第1の強度閾値成分7154と第2の強度閾値成分7168の和である、アクティブ化強度閾値7170を示す。図7YYに示すように、第2の強度閾値成分7168は、入力7166の強度に遅れて従う。第2の強度閾値成分7168は、入力7166の強度の経時的な軽微な揺らぎに起因する、所定の動作の意図しないトリガを低減する。例えば、入力7166の強度の漸進的な変化により所定の動作がトリガされる可能性は低くなる。図7YYでは、入力7166は時間7167においてアクティブ化強度閾値7170を満足し、所定の動作(例えば、メールアプリケーションユーザインターフェース706の表示をブラウザアプリケーションユーザインターフェース710と入れ替えること)が時間7167において実行される。
図7ZZは、アクティブ化強度閾値7174の第1の強度閾値成分が時間7176において減衰し始めることを除いて(図7YYの)アクティブ化強度閾値7170と同様である、アクティブ化強度閾値7174を示し、時間7176は、第1の及び第2の所定の動作が実行される時間7124の後の所定の時間間隔p3に相当する。図7ZZでは、入力7172は時間7173においてアクティブ化強度閾値7174を満足し、所定の動作(例えば、メールアプリケーションユーザインターフェース706の表示をブラウザアプリケーションユーザインターフェース710と入れ替えること)が時間7173において実行される。
図7AAAは、経時的に減衰するアクティブ化強度閾値7180を示し、このとき入力7178は、強度閾値Iを満足する(及び、第2の所定の動作が実行される)。入力の強度7178は強度閾値I及びIを下回って減少するが、一部の実施形態では、このことにより第2の所定の動作が取り消されることはないアクティブ化強度閾値7180が経時的に著しく減衰しているので、アクティブ化強度閾値7180が強度閾値Iを下回っていても、入力の強度7178の増大により、時間7179においてアクティブ化強度閾値7180が満足される。
図7BBBは、図7AAAに示す、同じアクティブ化強度閾値7180及び入力7178を示す。図7BBBはまた、アクティブ化強度閾値7180がベースライン閾値7182を下回って降下しないことも示し、このことにより、所定の動作(例えば、メールアプリケーションユーザインターフェース706の表示をブラウザアプリケーションユーザインターフェース710と入れ替えること)の意図しないトリガが低減される。
図8A〜図8Eは、一部の実施形態による、長い押圧入力及び深い押圧入力の曖昧さを除去する方法800を示すフロー図である。方法800は、ディスプレイ、タッチ感知面、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイス(例えば、デバイス300、図3、又はポータブル多機能デバイス100、図1A)において実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるか又はこれに組み込まれている。一部の実施形態では、ディスプレイはタッチ感知面とは別個である(例えば、タッチ感知面はトラックパッドである)。方法800の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
後述するように、方法800は、タッチ入力を命令で処理するための高度な方式を提供する。方法800は、タッチ入力を処理する際の効率を改善する。
デバイスは、第1のユーザインターフェースを表示する(802)。第1のユーザインターフェースの表示中に、デバイスはタッチ感知面上の入力を検出する(804)。第1のユーザインターフェース及びタッチ感知面上の入力への応答の実施例が、図7T〜図7CCを参照して上記されている。一部の実施形態では、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、入力はフォーカスセレクタ(例えば、フォーカスセレクタ709、図7T)が複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクト(例えば、オブジェクト708、図7T)の上にある間に検出され、第1のユーザインターフェースオブジェクトは、少なくとも第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)及び第2のジェスチャレコグナイザ(例えば、長い押圧ジェスチャレコグナイザ)に関連付けられている。
第1のユーザインターフェースの表示中に入力の検出に応じて(808)、デバイスは、第1の所定の時間期間の間に入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足するとの判定に従って、第1の動作(例えば、図7D及び図7Vに示すように、ユーザインターフェースを不鮮明にすること)を実行する(810)。他方で、第1のユーザインターフェースの表示中に入力を検出することに応じて(808)、デバイスは、第1の所定の時間期間の間入力が第1の強度閾値未満に留まることを含む長い押圧基準を入力が満足するとの判定に従って、第1の動作とは異なる第2の動作(例えば、メニュー又はメニュービュー716を表示すること、図7U)を実行する(812)。上述のように、一部の実施形態では、第2の動作は、メニュー又はメニュービュー(例えば、メニュービュー716、図7U)を表示することを含む(830)。
一部の実施形態では、強度入力基準は、入力が(タッチ感知面と接触したままである間に)タッチ感知面にわたって(例えば、図7L〜図7Q及び図7AA〜図7CCの入力移動限界外周714を参照して上で検討したように)所定の距離を超えて移動しないことを含み(840)、また、長い押圧基準は、入力における接触がタッチ感知面にわたって所定の距離を超えて移動しないことを含む(842)。
一部の実施形態では、方法800は、入力が強度入力基準を満足せずかつ長い押圧基準を満足しないとの判定に従って、第1の動作及び第2の動作を取り止める(814)ことを含む。
一部の実施形態では、タッチ感知面上の入力を検出すること(804)は、入力の第1の部分及び入力の第1の部分に続く入力の第2の部分を検出すること(806、850)を含む。更に、一部のかかる実施形態では、方法800は、タッチ感知面上の入力の第1の部分を検出すること(例えば、タッチ感知面との入力の最初の接触を検出すること)に応じて、入力の少なくとも第1の部分に対応するジェスチャレコグナイザの第1のセットを候補ジェスチャレコグナイザとして識別することであって、ジェスチャレコグナイザの第1のセットは第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)及び第2のジェスチャレコグナイザ(例えば、長い押圧ジェスチャレコグナイザ)を含む、識別すること(852)を含む。
更に、上述した実施形態では、タッチ感知面上の入力の第2の部分を検出することに応じて、デバイスは、入力が強度入力基準を満足するとの判定に従って、第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)を用いて入力を処理することを含む、第1の動作を実行する(854)。一部の実施形態では、第1の強度閾値(例えば、図7TのI)は、入力検出強度閾値(例えば、図7TのI)とは異なる。一部の実施形態では、第1のジェスチャレコグナイザを用いた入力の処理はまた、第2のジェスチャレコグナイザが入力に対応するジェスチャを認識しないとの判定も必要とする。一部の実施形態では、第1のジェスチャレコグナイザを用いた入力の処理はまた、第2のジェスチャレコグナイザが入力に対応するジェスチャの認識に失敗したとの(すなわち、図7X及び図7Yを参照して上で検討したように、第2のジェスチャレコグナイザが失敗した状態に遷移したとの)判定も必要とする。
更に、上述した実施形態では、タッチ感知面上の入力の第2の部分を検出することに応じて、デバイスは、入力が長い押圧基準を満足するとの判定に従って、第2のジェスチャレコグナイザを用いて(例えば、長い押圧ジェスチャレコグナイザ(L)、図7T〜図7U、を用いて)入力を処理することを含む、第2の動作を実行する(854)。一部の実施形態では、第2のジェスチャレコグナイザを用いて入力を処理することはまた、第1のジェスチャレコグナイザが入力に対応するジェスチャの認識に失敗した(例えば、1つ以上のセンサによって検出された入力の強度が、所定の時間期間の間に第1の強度閾値を満足しない)との判定も必要とする。図7Uに関して上で検討した実施例では、プレビュージェスチャレコグナイザは、1つ以上のセンサによって検出された入力の強度が所定の時間期間(例えば、時間7116で終わる時間期間、図7U)の間に第1の強度閾値(例えば、I、図7U)を満足しないとのデバイスによる判定に従って、失敗した状態に遷移している。
上で示したように、一部の実施形態では、第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)は強度に基づくジェスチャレコグナイザであり、第2のジェスチャレコグナイザは長い押圧ジェスチャレコグナイザである(860)。一部の実施形態では、第2のジェスチャレコグナイザ(例えば、長い押圧ジェスチャレコグナイザ)は、入力の強度に依存しないジェスチャの特定のタイプ又はセットを認識する。
一部の実施形態又は状況では、入力は入力の第2の部分に続く入力の第3の部分を含み、方法800は入力の第3の部分を第1のジェスチャレコグナイザを用いて処理することを含む(862)。一部の実施形態では、入力が第1の強度閾値を満足しなくなるとの判定に従って、デバイスは低減した縮尺でプレビュー領域を表示する(例えば、プレビュー領域のサイズを低減する)が、この実施例が、図7Hのユーザインターフェースから図7Jのユーザインターフェースへの遷移(すなわち、図7Iのユーザインターフェースを通って遷移することがない)において示されている。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは、リビールジェスチャレコグナイザ(例えば、図7A〜図7CCのジェスチャレコグナイザ(R))などの、第3のジェスチャレコグナイザを含む(864)。
一部の実施形態では、入力が第2の強度閾値(例えば、第1の強度閾値Iよりも高いコミット強度閾値I)を満足するとの判定に応じて、方法は、第1の動作の実行に続いて、インターフェースインターフェース第1のユーザインターフェース(例えば、ユーザインターフェース706、図7H)の表示を第2のユーザインターフェース(例えば、ユーザインターフェース710、図7I)と入れ替えること、及びプレビュー領域(例えば、プレビュー領域712、図7H)の表示を終了することを含む、第1のジェスチャレコグナイザを用いて入力を処理すること(866)を含む。一部の実施形態では、第2のユーザインターフェースは、プレビュー領域に表示された内容を含む。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは、第4のジェスチャレコグナイザ(例えば、図7A〜図7CCに示すような、コミットジェスチャレコグナイザ(C))を含み(868)、また、方法800は、入力が第2の強度閾値(例えば、第1の強度閾値Iよりも高いコミット強度閾値I)を満足すると判定することに応じて、第4のジェスチャレコグナイザ(例えば、コミットジェスチャレコグナイザ)を用いて入力を処理すること(870)を含む。一部の実施形態では、第4のジェスチャレコグナイザを用いて入力を処理することは、第1のユーザインターフェースの表示を第2のユーザインターフェースと入れ替えること(及びプレビュー領域の表示を終了すること)、例えば、ユーザインターフェース706、図7H、の表示を、ユーザインターフェース710、図7I、と入れ替えること、及び、プレビュー領域712、図7H、の表示を終了することを含む。
一部の実施形態では、方法800は、第2の入力の第1の部分及び第2の入力の第1の部分に続く第2の入力の第2の部分を検出することを含む、タッチ感知面上第2の入力を検出すること(872)を含む。例えば、このことは、デバイスが第1のユーザインターフェース又は第1のユーザインターフェース及び第2のユーザインターフェースとは異なる第3のユーザインターフェースを表示している間に発生し得る。
タッチ感知面上の第2の入力の第1の部分を検出すること(872)に応じて、方法は、少なくとも第2の入力の第1の部分に対応するジェスチャレコグナイザの第2のセットを識別すること(874)を含み、ジェスチャレコグナイザの第2のセットは、第2のジェスチャレコグナイザ(例えば、長い押圧ジェスチャレコグナイザ)を含み、第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)は有さない。例えば、第2の入力は、第1のジェスチャレコグナイザと関係のないオブジェクトの上に位置付けることができる。
更に、一部の実施形態では、方法800は、タッチ感知面上の第2の入力の第2の部分を検出することに応じて、第2の入力が第1の所定の時間期間とは異なる持続時間(例えば、第1の所定の時間期間よりも長い持続時間又はこれよりも短い持続時間)を有する第2の所定の時間期間の間タッチ感知面上に留まることを含む第2の長い押圧基準を、第2の入力が満足するとの判定に従って、第2のジェスチャレコグナイザを用いて第2の入力を処理すること(876)を含む。例えば、同じそれぞれのオブジェクト又は領域に対して強度に基づくジェスチャレコグナイザ及び長い押圧ジェスチャレコグナイザが存在する、第1のユーザインターフェースにおいては、強度に基づくジェスチャレコグナイザには、長い押圧ジェスチャレコグナイザが長い押圧ジェスチャを認識する前の遅延を大きくすることによって、強度に基づくジェスチャを認識するためのより長い時間が与えられる。対照的に、タップ/選択ジェスチャレコグナイザ及び長い押圧ジェスチャレコグナイザを有し強度に基づくジェスチャレコグナイザを有さないオブジェクト又はユーザインターフェース領域が存在する、第3のユーザインターフェースにおいては、タップ/選択ジェスチャレコグナイザは、タップ/選択ジェスチャを認識するためにそれほど長い時間を必要とせず、したがって、第3のユーザインターフェース中の長い押圧ジェスチャレコグナイザが長い押圧ジェスチャを認識する前の遅延(すなわち、第2の所定の時間期間)を、第1のユーザインターフェースに関する長い押圧ジェスチャレコグナイザが長い押圧ジェスチャを認識する前に必要とする遅延(すなわち、第1の所定の時間期間)よりも短くすることができる。
一部の実施形態では、入力の第1の部分の検出に応じて、デバイスは第3の動作を実行する(880)。一部の実施形態では、第3の動作を実行することは、第1のユーザインターフェースの少なくとも一部を第1のユーザインターフェースの他の部分と視覚的に区別すること(882)を含む。例えば、第3の動作は、図7Vに示すように、第3のジェスチャレコグナイザ(例えば、リビールジェスチャレコグナイザ)を使用することによって、フォーカスセレクタに対応するオブジェクト以外のユーザインターフェースを不鮮明にすることであってよい。一部の実施形態では、第3のジェスチャレコグナイザによって第3の動作が実行された後に、長い押圧ジェスチャレコグナイザが続く場合には、第3のジェスチャレコグナイザは中止された状態に遷移し、第3の動作は無効にされる(例えば、不鮮明化が無効にされるか又は取り消される)。後者の例の実施例が、図7Vから図7Wへの遷移において示されている。他方で、深い押圧ジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)が続く場合には、第3のジェスチャレコグナイザ(例えば、リビールジェスチャレコグナイザ)による第3の動作(不鮮明化)は中止され、深い押圧ジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)によって、第1の動作(例えば、図7Xに示すような、プレビュー領域712を表示すること)が実行される。一部の実施形態では、リビールジェスチャレコグナイザを有し長い押圧ジェスチャレコグナイザを有さないオブジェクトに関しては、リビール動作(例えば、不鮮明化)は、第1の所定の時間期間の後で自動的には中止されない。しかしながら、一部のかかる実施形態では、リビールジェスチャレコグナイザ及び長い押圧ジェスチャレコグナイザの両方を有するオブジェクトに関しては、リビール動作は、長い押圧ジェスチャレコグナイザが続くときに中止される。
一部の実施形態では、方法800は、第3の動作(例えば、不鮮明化)の実行(880)に続いて、入力が(例えば、Iに達するか又はこれを超えることによって)強度入力基準を満足するとの判定に従って、第1の動作(例えば、プレビュー領域を表示すること)を実行すること(884)、並びに、入力が長い押圧基準を満足するとの判定に従って、第2の動作(例えば、メニュー又はメニュービュー716、図7U、を表示すること)を実行すること(886)を含む。この場合、これらの判定及び動作は、入力がタッチ感知面と接触したままである間に実行される。一部の実施形態では、第3のジェスチャレコグナイザ(例えば、リビールジェスチャレコグナイザ)が入力を処理している(例えば、入力の第2の部分に対応するタッチイベントを生成している)間に、第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザは、入力がこれらのジェスチャレコグナイザに関するジェスチャ認識基準に適合するか否かを判定するために、入力の第2の部分を評価している。かかる実施形態では、第3のジェスチャレコグナイザを用いて入力を処理することは、第1のジェスチャレコグナイザを用いて入力を処理すること及び第2のジェスチャレコグナイザを用いて入力を処理することを妨げない。
上述したように、一部の実施形態では、第1の動作を実行することは、プレビュー領域(例えば、プレビュー領域712、図7H)を表示することを含む(820)。更に、一部の実施形態では、第2の動作を実行することは、メニュービュー(例えば、メニュービュー716、図7U)を表示することを含む(830)。
一部の実施形態では、第1の強度閾値は、入力における複数の接触が第1の強度閾値を満足することに応じて満足される(822)。例えば、一部のかかる実施形態では、各接触の強度が第1の強度閾値と比較される。しかしながら、一部の他の実施形態では、第1の強度閾値は、入力における複数の接触により加えられる強度を組み合わせたものが第1の強度閾値を満足する(例えば、複数の接触の強度が合計されるか又はそれ以外の方法で組み合わされ、結果として得られる組み合わされた強度が、第1の強度閾値と比較される)ことに応じて満足される(824)。
一部の実施形態では、第1の強度閾値は調節可能である(826)。例えば、一部のかかる実施形態では、方法800は、入力の強度が第1の強度閾値とは異なる第3の強度閾値を満足することに応じてアクティブ化されるように、第1のジェスチャレコグナイザを更新すること(828)を含む。一部の実施形態では、第1の強度閾値は、3つ以上の所定の強度閾値(例えば、リビール強度閾値I、プレビュー強度閾値I、及びコミット強度閾値I)のグループから選択される。一部の実施形態では、第3の強度閾値は、3つ以上の所定の強度閾値のグループから選択される。
一部の実施形態では、第1の強度閾値はどのような所定の強度閾値からも独立して選択される。一部の実施形態では、第1のユーザインターフェースは特定のソフトウェアアプリケーションのユーザインターフェースであり、第1の強度閾値は、この特定のソフトウェアアプリケーションによって選択又は指定される。一部の実施形態では、第1の強度閾値は、タッチ感知面上で接触が検出される間に変化しない固定された強度閾値である。しかしながら、一部の他の実施形態では、第1の強度閾値は、ユーザの行動及び/又はデバイスの状態及び/又は他の環境的パラメータに基づく所定の閾値調節ポリシーに基づいて経時的に変化する、動的な強度閾値である。調節可能な強度閾値については、本文献の他の箇所で更に詳細に検討されている。
図8A〜図8Eにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。例えば、一部の実施形態では、タッチ感知面、ディスプレイ、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイスにおいて実行される方法は、ディスプレイ上のウェブページの少なくとも一部に対応するユーザインターフェースの表示中に、タッチ感知面上の、ディスプレイ上のウェブページの表示された部分に対応する第1の場所におけるタッチ入力を検出することを含む。方法はまた、タッチ感知面上のタッチ入力を検出している間に、タッチ感知面上のタッチ入力の強度を(例えば、1つ以上のセンサを用いて)検出すること、タッチ感知面上のタッチ入力の強度が第1の強度閾値(例えば、マウスダウン強度閾値などの低い強度閾値)未満から第1の強度閾値を超えて変化したか否かを判定すること、並びに、タッチ感知面上のタッチ入力の強度が第1の強度閾値未満から第1の強度閾値を超えて変化したとの判定に応じて、マウスダウンイベントを生成すること(及び任意選択的に、マウスダウンイベントに対応するウェブページ中の命令を処理すること)も含む。方法は更に、タッチ感知面上のタッチ入力の強度が第1の強度閾値未満から第1の強度閾値を超えて変化したと判定することに続いて、タッチ感知面上のタッチ入力の強度を検出すること、タッチ感知面上のタッチ入力の強度が第1の強度閾値とは異なる第2の強度閾値(例えば、力ダウン強度閾値などの高い強度閾値)未満から第2の強度閾値を超えて変化したか否かを判定すること、並びに、タッチ感知面上のタッチ入力の強度が第2の強度閾値未満から第2の強度閾値を超えて変化したと判定することに応じて、マウスダウンイベントとは異なる力ダウンイベントを生成することを含む。簡潔にするために、これらの詳細は、ここでは繰り返さない。
加えて、本明細書に記載される他の方法(例えば、方法900、1000、1100、1200、1300、1400、1500、及び1600)に関して本明細書に記載される他のプロセスの詳細はまた、図8A〜図8Eに関して上記した方法800にも、類似の様式で適用可能であることに留意されたい。例えば、方法800を参照して上記したタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法900、1000、1100、1200、1300、1400、1500、及び1600)を参照して本明細書に記載されるタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図9A〜図9Dは、一部の実施形態による、パンジェスチャ入力及び深い押圧入力の曖昧さを除去する方法900を示すフロー図である。
デバイスは、第1のユーザインターフェースを表示する(902)。第1のユーザインターフェースの表示中に、デバイスはタッチ感知面上の入力を検出する(904)。第1のユーザインターフェース及びタッチ感知面上の入力への応答の実施例が、図7L〜図7Sを参照して上記されている。一部の実施形態では、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、入力はフォーカスセレクタ(例えば、フォーカスセレクタ707、図7L)が複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクト(例えば、オブジェクト708、図7L)の上にある間に検出され、第1のユーザインターフェースオブジェクトは、少なくとも第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)及び第2のジェスチャレコグナイザ(例えば、パンジェスチャレコグナイザ(S))に関連付けられている。
第1のユーザインターフェースの表示中に入力の検出に応じて(908)、デバイスは、入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足するとの判定に従って、第1の動作(例えば、図7D及び図7Pに示すように、ユーザインターフェースを不鮮明にすること)を実行する(910)。他方で、第1のユーザインターフェースの表示中に入力を検出することに応じて(908)、デバイスは、入力が(タッチ感知面と接触したままである間に)タッチ感知面にわたって少なくとも所定の距離だけ移動したことを含むパン基準を入力が満足するとの判定に従って、第1の動作とは異なる第2の動作(例えば、第1のユーザインターフェースの少なくとも一部をパン又はスクロールすること、図7M)を実行する(912)。上述のように、一部の実施形態では、第2の動作は、(例えば、図7Mに示すように)第1のユーザインターフェースの少なくとも一部をスクロールすることを含む(930)。
一部の実施形態では、第1の動作を実行することは、プレビュー領域(例えば、プレビュー領域712、図7H、図7R、図7S)を表示することを含む(920)。
一部の実施形態では、強度入力基準は、(例えば、図7L〜図7Q及び図7AA〜図7CCの入力移動限界外周714を参照して上で検討したように)入力が(タッチ感知面と接触したままである間に)タッチ感知面にわたって少なくとも所定の距離を移動しないことを含む(922)。
一部の実施形態では、第1の強度閾値は調節可能である(924)。例えば、一部のかかる実施形態では、方法900は、入力の強度が第1の強度閾値とは異なる第3の強度閾値を満足することに応じてアクティブ化されるように、第1のジェスチャレコグナイザを更新すること(926)を含む。一部の実施形態では、第1の強度閾値は、3つ以上の所定の強度閾値(例えば、リビール強度閾値I、プレビュー強度閾値I、及びコミット強度閾値I)のグループから選択される。一部の実施形態では、第3の強度閾値は、3つ以上の所定の強度閾値のグループから選択される。
一部の実施形態では、第1の強度閾値はどのような所定の強度閾値からも独立して選択される。一部の実施形態では、第1のユーザインターフェースは特定のソフトウェアアプリケーションのユーザインターフェースであり、第1の強度閾値は、この特定のソフトウェアアプリケーションによって選択又は指定される。一部の実施形態では、第1の強度閾値は、タッチ感知面上で接触が検出される間に変化しない固定された強度閾値である。しかしながら、一部の他の実施形態では、第1の強度閾値は、ユーザの行動及び/又はデバイスの状態及び/又は他の環境的パラメータに基づく所定の閾値調節ポリシーに基づいて経時的に変化する、動的な強度閾値である。調節可能な強度閾値については、本文献の他の箇所で更に詳細に検討されている。
一部の実施形態では、方法900は、第1の動作の実行に続いて、第2の動作の実行を取り止めること(914)を含む。同様に、一部の実施形態では、方法900は、第2の動作の実行に続いて、第1の動作の実行を取り止めること(916)を含む。
一部の実施形態では、タッチ感知面上の入力を検出すること(904)は、入力の第1の部分及び入力の第1の部分に続く入力の第2の部分を検出すること(906、950)を含む。更に、一部のかかる実施形態では、方法900は、タッチ感知面上の入力の第1の部分を検出すること(例えば、タッチ感知面との入力の最初の接触を検出すること)に応じて、入力の少なくとも第1の部分に対応するジェスチャレコグナイザの第1のセットを候補ジェスチャレコグナイザとして識別することであって、ジェスチャレコグナイザの第1のセットは第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)及び第2のジェスチャレコグナイザ(例えば、パンジェスチャレコグナイザ)を含む、識別すること(952)を含む。
一部の実施形態又は状況では、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、入力はフォーカスセレクタが複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクトの上にある間に検出され、第1のユーザインターフェースオブジェクトは、少なくとも第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザに関連付けられている。更に、一部の実施形態では、第1のジェスチャレコグナイザを用いて入力を処理することは、第2のジェスチャレコグナイザを失敗した状態に置くことを含む。
更に、上述した実施形態では、タッチ感知面上の入力の第2の部分を検出することに応じて、デバイスは、入力が強度入力基準を満足するとの判定に従って、第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)を用いて入力を処理することを含む、第1の動作を実行する(954)。一部の実施形態では、第1の強度閾値(例えば、図7LのI)は、入力検出強度閾値(例えば、図7LのI)とは異なる。一部の実施形態では、第1のジェスチャレコグナイザを用いた入力の処理はまた、第2のジェスチャレコグナイザが入力に対応するジェスチャを認識しないとの判定も必要とする。一部の実施形態では、第1のジェスチャレコグナイザを用いた入力の処理はまた、第2のジェスチャレコグナイザが入力に対応するジェスチャの認識に失敗したとの(すなわち、図7S及び図7Tを参照して上で検討したように、第2のジェスチャレコグナイザが失敗した状態に遷移したとの)判定も必要とする。
更に、上述した実施形態では、タッチ感知面上の入力の第2の部分を検出することに応じて、デバイスは、入力がパン基準を満足するとの判定に従って、第2のジェスチャレコグナイザを用いて(例えば、パンジェスチャレコグナイザ(S)、図7L〜図7S、を用いて)入力を処理することを含む、第2の動作を実行する(954)。一部の実施形態では、第2のジェスチャレコグナイザを用いて入力を処理することはまた、第1のジェスチャレコグナイザが入力に対応するジェスチャの認識に失敗した(例えば、1つ以上のセンサによって検出された入力の強度が、所定の時間期間の間に第1の強度閾値を満足しない)との判定も必要とする。図7Qに関して上で検討した実施例では、プレビュージェスチャレコグナイザ(P)は、1つ以上のセンサによって検出された入力の強度が第1の強度閾値(例えば、I、図7Q)を満足しないとの、及び入力がパン基準を満足するとのデバイスによる判定に従って、失敗した状態に遷移している。
上で示したように、一部の実施形態では、第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)は強度に基づくジェスチャレコグナイザであり、第2のジェスチャレコグナイザはパンジェスチャレコグナイザである(960)。一部の実施形態では、第2のジェスチャレコグナイザ(例えば、パンジェスチャレコグナイザ)は、入力の強度に依存しないジェスチャの特定のタイプ又はセットを認識する。
一部の実施形態又は状況では、入力は入力の第2の部分に続く入力の第3の部分を含み、方法900は、入力の第3の部分を第1のジェスチャレコグナイザを用いて処理することを含む(962)。一部の実施形態では、入力が第1の強度閾値を満足しなくなるとの判定に従って、デバイスは低減した縮尺でプレビュー領域を表示する(例えば、プレビュー領域のサイズを低減する)が、この実施例が、図7Hのユーザインターフェースから図7Jのユーザインターフェースへの遷移(すなわち、図7Iのユーザインターフェースを通って遷移することがない)において示されている。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは、リビールジェスチャレコグナイザ(例えば、図7A〜図7CCのジェスチャレコグナイザ(R))などの、第3のジェスチャレコグナイザを含む(964)。
一部の実施形態では、入力が第2の強度閾値(例えば、第1の強度閾値Iよりも高いコミット強度閾値I)を満足するとの判定に応じて、方法900は、(例えば、第1の動作の実行に続いて)第1のユーザインターフェース(例えば、ユーザインターフェース706、図7H)の表示を第2のユーザインターフェース(例えば、ユーザインターフェース710、図7I)と入れ替えることを含む、第1のジェスチャレコグナイザを用いて入力を処理すること(966)を含む。第1の動作がプレビュー領域を表示することを含む一部の実施形態では、第2の動作を実行することは、プレビュー領域(例えば、プレビュー領域712、図7H)の表示を終了することを含む。一部の実施形態では、第2のユーザインターフェースは、プレビュー領域に表示された内容を含む。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは、第4のジェスチャレコグナイザ(例えば、図7A〜図7CCに示すような、コミットジェスチャレコグナイザ(C))を含み(968)、また、方法900は、入力が第2の強度閾値(例えば、第1の強度閾値Iよりも高いコミット強度閾値I)を満足すると判定することに応じて、第4のジェスチャレコグナイザ(例えば、コミットジェスチャレコグナイザ)を用いて入力を処理すること(970)を含む。一部の実施形態では、第4のジェスチャレコグナイザを用いて入力を処理することは、第1のユーザインターフェースの表示を第2のユーザインターフェースと入れ替えること(及びプレビュー領域の表示を終了すること)、例えば、ユーザインターフェース706、図7H、の表示を、ユーザインターフェース710、図7I、と入れ替えること、及び、プレビュー領域712、図7H、の表示を終了することを含む。
一部の実施形態では、方法900は、入力の第1の部分の検出に応じて第3の動作を実行すること(972)を含む。一部の実施形態では、第3の動作を実行することは、第1のユーザインターフェースの少なくとも一部を第1のユーザインターフェースの他の部分と視覚的に区別すること(974)を含む。例えば、第3の動作は、図7Vに示すように、第3のジェスチャレコグナイザ(例えば、リビールジェスチャレコグナイザ)を使用することによって、フォーカスセレクタに対応するオブジェクト以外のユーザインターフェースを不鮮明にすることであってよい。一部の実施形態では、第3のジェスチャレコグナイザによって第3の動作が実行された後に、パンジェスチャレコグナイザが続く場合には、第3のジェスチャレコグナイザは中止された状態に遷移し、第3の動作は無効にされる(例えば、不鮮明化が無効にされるか又は取り消される)。後者の例の実施例が、図7Pから図7Qへの遷移において示されている。他方で、深い押圧ジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)が続く場合には、第3のジェスチャレコグナイザ(例えば、リビールジェスチャレコグナイザ)による第3の動作(不鮮明化)は中止され、深い押圧ジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)によって、第1の動作(例えば、図7Rに示すような、プレビュー領域712を表示すること)が実行される。
一部の実施形態では、方法900は、第3の動作(例えば、不鮮明化)の実行(972)に続いて、入力が(例えば、Iに達するか又はこれを超えることによって)強度入力基準を満足するとの判定に従って、第1の動作(例えば、プレビュー領域を表示すること)を実行すること(976)、並びに、入力がパン基準を満足するとの判定に従って、第2の動作(第1のユーザインターフェースの少なくとも一部をパン又はスクロールすること、図7M〜図7N、図7Qなど)を実行すること(978)を含む。典型的には、これらの判定及び動作は、入力がタッチ感知面と接触したままである間に実行される。一部の実施形態では、第3のジェスチャレコグナイザ(例えば、リビールジェスチャレコグナイザ)が入力を処理している(例えば、入力の第2の部分に対応するタッチイベントを生成している)間に、第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザは、入力がこれらのジェスチャレコグナイザに関するジェスチャ認識基準に適合するか否かを判定するために、入力の第2の部分を評価している。かかる実施形態では、第3のジェスチャレコグナイザを用いて入力を処理することは、第1のジェスチャレコグナイザを用いて入力を処理すること及び第2のジェスチャレコグナイザを用いて入力を処理することを妨げない。
一部の実施形態では、第3の動作(978)の実行に続いて第2の動作を実行することは、第3の動作を無効にすることを含む(980)。例えば、一部の実施形態では、第3の動作が無効にされる際にアニメーションが表示される(例えば、ユーザインターフェースがスクロールし始める際に短い時間の期間を経て不鮮明化がゼロにされる)。更に、一部の実施形態では、第3の動作の実行に続いて第2の動作を実行することは、第3のジェスチャレコグナイザを中止された状態に置くことを含む。
図9A〜図9Dにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。例えば、一部の実施形態では、タッチ感知面、ディスプレイ、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイスにおいて実行される方法は、ディスプレイ上のウェブページの少なくとも一部に対応するユーザインターフェースの表示中に、タッチ感知面上の、ディスプレイ上のウェブページの表示された部分に対応する第1の場所におけるタッチ入力を検出することを含む。方法はまた、タッチ感知面上のタッチ入力を検出している間に、タッチ感知面上のタッチ入力の強度を(例えば、1つ以上のセンサを用いて)検出すること、タッチ感知面上のタッチ入力の強度が第1の強度閾値(例えば、マウスダウン強度閾値などの低い強度閾値)未満から第1の強度閾値を超えて変化したか否かを判定すること、並びに、タッチ感知面上のタッチ入力の強度が第1の強度閾値未満から第1の強度閾値を超えて変化したとの判定に応じて、マウスダウンイベントを生成すること(及び任意選択的に、マウスダウンイベントに対応するウェブページ中の命令を処理すること)も含む。方法は更に、タッチ感知面上のタッチ入力の強度が第1の強度閾値未満から第1の強度閾値を超えて変化したと判定することに続いて、タッチ感知面上のタッチ入力の強度を検出すること、タッチ感知面上のタッチ入力の強度が第1の強度閾値とは異なる第2の強度閾値(例えば、力ダウン強度閾値などの高い強度閾値)未満から第2の強度閾値を超えて変化したか否かを判定すること、並びに、タッチ感知面上のタッチ入力の強度が第2の強度閾値未満から第2の強度閾値を超えて変化したと判定することに応じて、マウスダウンイベントとは異なる力ダウンイベントを生成することを含む。簡潔にするために、これらの詳細は、ここでは繰り返さない。
加えて、本明細書に記載される他の方法(例えば、方法800、1000、1100、1200、1300、1400、1500、及び1600)に関して本明細書に記載される他のプロセスの詳細はまた、図9A〜図9Dに関して上記した方法800にも、類似の様式で適用可能であることに留意されたい。例えば、方法900を参照して上記したタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800、1000、1100、1200、1300、1400、1500、及び1600)を参照して本明細書に記載されるタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図10A〜図10Dは、一部の実施形態による、タップジェスチャ入力及び深い押圧入力の曖昧さを除去する方法1000を示すフロー図である。方法1000は、ディスプレイ、タッチ感知面、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイス(例えば、デバイス300、図3、又はポータブル多機能デバイス100、図1A)において実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるか又はこれに組み込まれている。一部の実施形態では、ディスプレイはタッチ感知面とは別個である(例えば、タッチ感知面はトラックパッドである)。方法800の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
後述するように、方法1000は、タッチ入力を命令で処理するための高度な方式を提供する。方法1000は、タッチ入力を処理する際の効率を改善する。
デバイスは、第1のユーザインターフェースを表示する(1002)。第1のユーザインターフェースの表示中に、デバイスはタッチ感知面上の入力を検出する(1004)。第1のユーザインターフェース及びタッチ感知面上の入力への応答の実施例が、図7A〜図7Kを参照して上記されている。一部の実施形態では、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、入力はフォーカスセレクタ(例えば、フォーカスセレクタ705、図7A)が複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクト(例えば、オブジェクト708、図7A)の上にある間に検出され、第1のユーザインターフェースオブジェクトは、少なくとも第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)及び第2のジェスチャレコグナイザ(例えば、長い押圧ジェスチャレコグナイザ)に関連付けられている。
第1のユーザインターフェースの表示中に入力の検出に応じて(1008)、デバイスは、入力が第1の強度閾値を満足しかつ第1の所定の時間期間の間入力がタッチ感知面上に留まることを含む強度入力基準を入力が満足するとの判定に従って、第1の動作(例えば、図7Dに示すように、ユーザインターフェースを不鮮明にすること)を実行する(1010)。他方で、第1のユーザインターフェースの表示中に入力を検出することに応じて(1008)、デバイスは、第1の所定の時間期間中に入力がタッチ感知面上に留まるのをやめることを含むタップ基準を入力が満足するとの判定に従って、第1の動作とは異なる第2の動作(例えば、フォーカスセレクタ705の現在の位置に対応するオブジェクトを選択又はアプリケーションを起動すること、及びアプリケーションユーザインターフェースを表示すること、図7B)を実行する(1012)。別の言い方をすれば、入力は、第1の所定の時間期間(例えば、時間7002で終わる時間期間、図7B)の終わりの前に、入力がタッチ感知面から取り除かれる場合に、タップ基準を満たす。一部の実施形態では、入力が強度入力基準を満足するか否かに関係なく、入力がタップ基準を満足するとの判定に従って、第2の動作が実行される(1014)。
一部の実施形態では、第1の動作を実行することは、プレビュー領域(例えば、プレビュー領域712、図7G)を表示することを含む(1020)。更に、一部の実施形態では、第2の動作を実行することは、第1のユーザインターフェース(例えば、ユーザインターフェース706、図7A)の表示をタッチ感知面上の入力の場所に対応するソフトウェアアプリケーションの第3のユーザインターフェース(例えば、ユーザインターフェース710、図7B)と入れ替えることを含む(1220)。例えば、一部の実施形態では、オブジェクト上のタップジェスチャにより、そのオブジェクトに対応するソフトウェアアプリケーションのユーザインターフェースの表示が引き起こされる。
一部の実施形態では、第1の強度閾値は調節可能である(1024)。例えば、一部のかかる実施形態では、方法1000は、入力の強度が第1の強度閾値とは異なる第3の強度閾値を満足することに応じてアクティブ化されるように、第1のジェスチャレコグナイザを更新すること(1026)を含む。一部の実施形態では、第1の強度閾値は、3つ以上の所定の強度閾値(例えば、リビール強度閾値I、プレビュー強度閾値I、及びコミット強度閾値I)のグループから選択される。一部の実施形態では、第3の強度閾値は、3つ以上の所定の強度閾値のグループから選択される。
一部の実施形態では、第1の強度閾値はどのような所定の強度閾値からも独立して選択される。一部の実施形態では、第1のユーザインターフェースは特定のソフトウェアアプリケーションのユーザインターフェースであり、第1の強度閾値は、この特定のソフトウェアアプリケーションによって選択又は指定される。一部の実施形態では、第1の強度閾値は、タッチ感知面上で接触が検出される間に変化しない固定された強度閾値である。しかしながら、一部の他の実施形態では、第1の強度閾値は、ユーザの行動及び/又はデバイスの状態及び/又は他の環境的パラメータに基づく所定の閾値調節ポリシーに基づいて経時的に変化する、動的な強度閾値である。調節可能な強度閾値については、本文献の他の箇所で更に詳細に検討されている。
一部の実施形態では、方法1000は、第1のユーザインターフェースの表示中に入力を検出することに応じて、入力が第1の所定の時間期間の間タッチ感知面上に留まった後、入力がタッチ感知面上で検出されなくなり、かつ入力が強度入力基準を満足しない、との判定に従って、第2の動作を実行すること(1028)を含む。例えば、例えば、図7Bの強度プロファイル7110を有する入力はこれらの基準を満足し、このため、入力が第1の所定の時間期間よりも長くタッチ感知面上に留まることにも関わらず、タップ基準を満足する。
他方で、方法1000は、第1のユーザインターフェースの表示中に入力を検出することに応じて、入力が第1の所定の時間期間の間タッチ感知面上に留まった後、入力がタッチ感知面上で検出されなくなり、かつ入力が強度入力基準を満足する、との判定に従って、第2の動作の実行を取り止めること(1028)を含む。例えば、図7Kの強度プロファイル7112又は7114を有する入力はタップ基準を満足しないが、その理由は、いずれの入力も第1の所定の時間期間を超えて延長し、かつ強度入力基準を満足する(例えば、入力が強度閾値I又はIを超える強度を有する)からである。
一部の実施形態では、タッチ感知面上の入力を検出すること(1004)は、入力の第1の部分及び入力の第1の部分に続く入力の第2の部分を検出すること(1006、1050)を含む。更に、一部のかかる実施形態では、方法1000は、タッチ感知面上の入力の第1の部分を検出すること(例えば、タッチ感知面との入力の最初の接触を検出すること)に応じて、入力の少なくとも第1の部分に対応するジェスチャレコグナイザの第1のセットを候補ジェスチャレコグナイザとして識別することであって、ジェスチャレコグナイザの第1のセットは第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)及び第2のジェスチャレコグナイザ(例えば、タップジェスチャレコグナイザ)を含む、識別すること(1052)を含む。
一部の実施形態又は状況では、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、入力はフォーカスセレクタが複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクトの上にある間に検出され、第1のユーザインターフェースオブジェクトは、少なくとも第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザに関連付けられている。更に、一部の実施形態では、第1のジェスチャレコグナイザを用いて入力を処理することは、第2のジェスチャレコグナイザを失敗した状態に置くことを含む。
更に、上述した実施形態では、タッチ感知面上の入力の第2の部分を検出することに応じて、デバイスは、入力が強度入力基準を満足するとの判定に従って、第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)を用いて入力を処理することを含む、第1の動作を実行する(1054)。一部の実施形態では、第1の強度閾値(例えば、図7AのI)は、入力検出強度閾値(例えば、図7AのI)とは異なる。一部の実施形態では、第1のジェスチャレコグナイザを用いた入力の処理はまた、第2のジェスチャレコグナイザが入力に対応するジェスチャを認識しないとの判定も必要とする。一部の実施形態では、第1のジェスチャレコグナイザを用いた入力の処理はまた、第2のジェスチャレコグナイザが入力に対応するジェスチャの認識に失敗したとの(すなわち、図7Fのユーザインターフェースから図7Gのユーザインターフェースへの遷移において示すように、第2のジェスチャレコグナイザが失敗した状態に遷移したとの)判定も必要とする。
更に、上述した実施形態では、タッチ感知面上の入力の第2の部分を検出することに応じて、デバイスは、入力がタップ基準を満足するとの判定に従って、第2のジェスチャレコグナイザを用いて(例えば、タップジェスチャレコグナイザ(T)、図7A〜図7K、を用いて)入力を処理することを含む、第2の動作を実行する(1054)。一部の実施形態では、第2のジェスチャレコグナイザを用いて入力を処理することはまた、第1のジェスチャレコグナイザが入力に対応するジェスチャの認識に失敗した(例えば、入力が第1の所定の時間期間の間タッチ感知面上に留まるのをやめたために)との判定も必要とする。図7Bに関して上で検討した実施例では、入力が第1の所定の時間期間の間(すなわち、その全体にわたって)タッチ感知面上に留まるのをやめたとのデバイスによる判定に従って、プレビュージェスチャレコグナイザ(P)が失敗した状態に遷移している。
上述のように、一部の実施形態では、第1のジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)は強度に基づくジェスチャレコグナイザであり、第2のジェスチャレコグナイザはタップジェスチャレコグナイザである(1060)。一部の実施形態では、第2のジェスチャレコグナイザ(例えば、タップジェスチャレコグナイザ)は、入力の強度に依存しないタップジェスチャを認識する。
一部の実施形態又は状況では、入力は入力の第2の部分に続く入力の第3の部分を含み、方法1000は、入力の第3の部分を第1のジェスチャレコグナイザを用いて処理することを含む(1062)。一部の実施形態では、入力が第1の強度閾値を満足しなくなるとの判定に従って、デバイスは低減した縮尺でプレビュー領域を表示する(例えば、プレビュー領域のサイズを低減する)が、この実施例が、図7Hのユーザインターフェースから図7Jのユーザインターフェースへの遷移(すなわち、図7Iのユーザインターフェースを通って遷移することがない)において示されている。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは、リビールジェスチャレコグナイザ(例えば、図7A〜図7CCのジェスチャレコグナイザ(R))などの、第3のジェスチャレコグナイザを含む(1064)。
一部の実施形態では、入力が第2の強度閾値(例えば、第1の強度閾値Iよりも高いコミット強度閾値I)を満足するとの判定に応じて、方法1000は、(例えば、第1の動作の実行に続いて)第1のユーザインターフェース(例えば、ユーザインターフェース706、図7H)の表示を第2のユーザインターフェース(例えば、ユーザインターフェース710、図7I)と入れ替えることを含む、第1のジェスチャレコグナイザを用いて入力を処理すること(1066)を含む。第1の動作がプレビュー領域を表示することを含む一部の実施形態では、第2の動作を実行することは、プレビュー領域(例えば、プレビュー領域712、図7H)の表示を終了することを含む。一部の実施形態では、第2のユーザインターフェースは、プレビュー領域に表示された内容を含む。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは、第4のジェスチャレコグナイザ(例えば、図7A〜図7CCに示すような、コミットジェスチャレコグナイザ(C))を含み(1068)、また、方法1000は、入力が第2の強度閾値(例えば、第1の強度閾値Iよりも高いコミット強度閾値I)を満足すると判定することに応じて、第4のジェスチャレコグナイザ(例えば、コミットジェスチャレコグナイザ)を用いて入力を処理すること(1070)を含む。一部の実施形態では、第4のジェスチャレコグナイザを用いて入力を処理することは、第1のユーザインターフェースの表示を第2のユーザインターフェースと入れ替えること(及びプレビュー領域の表示を終了すること)、例えば、ユーザインターフェース706、図7H、の表示を、ユーザインターフェース710、図7I、と入れ替えること、及び、プレビュー領域712、図7H、の表示を終了することを含む。
一部の実施形態では、方法1000は、入力の第1の部分の検出に応じて第3の動作を実行すること(1072)を含む。一部の実施形態では、第3の動作を実行することは、第1のユーザインターフェースの少なくとも一部を第1のユーザインターフェースの他の部分と視覚的に区別すること(1074)を含む。例えば、第3の動作は、図7Dに示すように、第3のジェスチャレコグナイザ(例えば、リビールジェスチャレコグナイザ)を使用することによって、フォーカスセレクタに対応するオブジェクト以外のユーザインターフェースを不鮮明にすることであってよい。一部の実施形態では、第3のジェスチャレコグナイザによって第3の動作が実行された後に、タップジェスチャレコグナイザが続く場合には、第3のジェスチャレコグナイザは中止された状態に遷移し、第3の動作は無効にされる(例えば、不鮮明化が無効にされるか又は取り消される)。他方で、深い押圧ジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)が続く場合には、第3のジェスチャレコグナイザ(例えば、リビールジェスチャレコグナイザ)による第3の動作(不鮮明化)は中止され、深い押圧ジェスチャレコグナイザ(例えば、プレビュージェスチャレコグナイザ)によって、第1の動作(例えば、図7E〜図7Hに示すような、プレビュー領域712を表示すること)が実行される。
一部の実施形態では、方法1000は、第3の動作(例えば、不鮮明化)の実行(1072)に続いて、入力が(例えば、Iに達するか又はこれを超えることによって)強度入力基準を満足するとの判定に従って、第1の動作(例えば、プレビュー領域を表示すること)を実行すること(1076)、並びに、入力がタップ基準を満足するとの判定に従って、第2の動作(例えば、オブジェクトを選択すること及び選択されたオブジェクトに関連付けられたアプリケーションのユーザインターフェースを表示すること、図7I)を実行すること(1078)を含む。一部の実施形態では、第3のジェスチャレコグナイザ(例えば、リビールジェスチャレコグナイザ)が入力を処理している(例えば、入力の第2の部分に対応するタッチイベントを生成している)間に、第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザは、入力がこれらのジェスチャレコグナイザに関するジェスチャ認識基準に適合するか否かを判定するために、入力の第2の部分を評価している。かかる実施形態では、第3のジェスチャレコグナイザを用いて入力を処理することは、第1のジェスチャレコグナイザを用いて入力を処理すること及び第2のジェスチャレコグナイザを用いて入力を処理することを妨げない。
一部の実施形態では、第3の動作を実行することは、第1の所定の時間期間の間に開始される(1080)。例えば、第1の所定の時間期間が経過する前に入力の強度が入力検出強度閾値(例えば、I、図7D)を超える場合に(すなわち、超えるとの判定に従って)、第1の所定の時間期間が経過する前であっても、ヒント/リビールアニメーション(例えば、タッチ感知面上の入力の強度に従う第1のユーザインターフェースの漸進的な不鮮明化)が表示される。
図10A〜図10Dにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。例えば、一部の実施形態では、タッチ感知面、ディスプレイ、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイスにおいて実行される方法は、ディスプレイ上のウェブページの少なくとも一部に対応するユーザインターフェースの表示中に、タッチ感知面上の、ディスプレイ上のウェブページの表示された部分に対応する第1の場所におけるタッチ入力を検出することを含む。方法はまた、タッチ感知面上のタッチ入力を検出している間に、タッチ感知面上のタッチ入力の強度を(例えば、1つ以上のセンサを用いて)検出すること、タッチ感知面上のタッチ入力の強度が第1の強度閾値(例えば、マウスダウン強度閾値などの低い強度閾値)未満から第1の強度閾値を超えて変化したか否かを判定すること、並びに、タッチ感知面上のタッチ入力の強度が第1の強度閾値未満から第1の強度閾値を超えて変化したとの判定に応じて、マウスダウンイベントを生成すること(及び任意選択的に、マウスダウンイベントに対応するウェブページ中の命令を処理すること)も含む。方法は更に、タッチ感知面上のタッチ入力の強度が第1の強度閾値未満から第1の強度閾値を超えて変化したと判定することに続いて、タッチ感知面上のタッチ入力の強度を検出すること、タッチ感知面上のタッチ入力の強度が第1の強度閾値とは異なる第2の強度閾値(例えば、力ダウン強度閾値などの高い強度閾値)未満から第2の強度閾値を超えて変化したか否かを判定すること、並びに、タッチ感知面上のタッチ入力の強度が第2の強度閾値未満から第2の強度閾値を超えて変化したと判定することに応じて、マウスダウンイベントとは異なる力ダウンイベントを生成することを含む。簡潔にするために、これらの詳細は、ここでは繰り返さない。
加えて、本明細書に記載される他の方法(例えば、方法800、900、1100、1200、1300、1400、1500、及び1600)に関して本明細書に記載される他のプロセスの詳細はまた、図10A〜図10Dに関して上記した方法800にも、類似の様式で適用可能であることに留意されたい。例えば、方法900を参照して上記したタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800、900、1100、1200、1300、1400、1500、及び1600)を参照して本明細書に記載されるタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図11Aは、一部の実施形態による、アプリケーション非依存の所定の命令セット(例えば、アプリケーション非依存モジュール230)を使用してタッチ入力を処理する方法を示す、高レベルのフロー図である。
アプリケーション専用モジュール220は、ユーザインターフェース(例えば、図7Cのメールアプリケーションユーザインターフェース706)を表示する(1102)。
ユーザインターフェースが表示されている間に、アプリケーション非依存モジュール230は、入力の第1の部分(例えば、図7Cの接触705)を検出し(1104)、プレビュー動作を提供するためのアプリケーション非依存の所定の命令セットを実行する(1105)。一部の実施形態では、アプリケーション専用モジュール220の制御は、アプリケーション非依存モジュール230に与えられる。プレビュー動作のためにアプリケーション非依存モジュール230を使用することによって、アプリケーション専用モジュール220の演算負荷及びサイズが低減される。プレビュー動作を提供するために、複数のソフトウェアアプリケーションが同じアプリケーション非依存モジュール230を使用することができ、これによりメモリ使用が低減される。一部の実施形態では、アプリケーション非依存モジュール230はデバイスのオペレーティングシステム又は標準的なライブラリ内に設けられ、これによりソフトウェア開発者による開発時間も低減される。更に、アプリケーション非依存モジュール230は対話のための標準化された方法を提供し、これにより、ユーザがこれらの方法を素早く学習することが容易になり、またユーザに対する認知上の負荷が低減される。
アプリケーション非依存モジュール230は、プレビュー動作を実行する(1106)。
一部の実施形態では、アプリケーション非依存モジュール230は、アプリケーション専用モジュール220に動作情報(例えば、プレビュー動作が始まったことを示す情報)を送信する(1107)。アプリケーション専用モジュール220は、動作情報を受信し(1108)、プレビューコンテンツを生成し(1109)、プレビューコンテンツをアプリケーション非依存モジュール230に送信する(1110)。アプリケーション非依存モジュール230は、プレビューコンテンツを受信する(1111)。
アプリケーション専用モジュール230は、ユーザインターフェースオブジェクト(例えば、図7Dのメールアプリケーションユーザインターフェース706)を視覚的に区別する(1112)。
アプリケーション非依存モジュール230は、入力の第2の部分を受信する(1113)(例えば、図7Eに示すように入力の強度の増大が検出される)。
アプリケーション非依存モジュール230は、プレビュー領域(例えば、図7Gのプレビュー領域712)を表示する(1114)。
一部の実施形態では、アプリケーション非依存モジュール230は、プレビュー領域を更新する(1115)(例えば、図7Hに示すように、入力の強度の更なる増大が検出され、プレビュー領域712のサイズが大きくされる)。
一部の実施形態では、アプリケーション非依存モジュール230は、プレビュー領域の表示を終了する(1116)(例えば、図7J〜図7Kに示すように、プレビュー領域712は、入力の強度が強度閾値Iを下回って降下するとき、表示されなくなる)。
一部の実施形態では、アプリケーション非依存モジュール230は、入力の第3の部分を検出し第2のユーザインターフェースを表示する(1117)(例えば、図7Iに示すように、入力の強度が強度閾値IHに達することに応じて、ブラウザアプリケーションユーザインターフェース710が表示される)。このとき、アプリケーション専用モジュール220の制御がアプリケーション専用モジュール220に戻され、アプリケーション専用モジュール220は続く入力を処理する(1118)。
図11Aにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1200、1300、1400、1500、及び1600)に関して本明細書に記載される他のプロセスの詳細はまた、図11Aに関して上記した方法にも、類似の様式で適用可能であることに留意されたい。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図11B〜図11Cは、一部の実施形態による、アプリケーション非依存の所定の命令セットを使用してタッチ入力を処理する方法1100を示すフロー図である。方法1100は、ディスプレイ、タッチ感知面、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイス(例えば、デバイス300、図3、又はポータブル多機能デバイス100、図1A)において実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるか又はこれに組み込まれている。一部の実施形態では、ディスプレイはタッチ感知面とは別個である。方法1100の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
後述するように、方法1100は、タッチ入力をアプリケーション非依存の命令セットで処理するための高度な方式を提供する。方法1100は、タッチ入力を処理する際の効率を改善する。ソフトウェアアプリケーションのサイズを小さくすること、ソフトウェアアプリケーションの速さを改善すること、及び場合によってはメモリ使用を低減することによって、かかる方法及びインターフェースはより効率的なヒト−マシンインターフェースを提供し、これにより全体的な動作時間及びユーザエクスペリエンスが改善される。バッテリ動作デバイスの場合、かかる方法及びインターフェースにより、バッテリ電力を節約し、バッテリの充電の間の時間を増やす。更には、かかる方法は、アプリケーション開発者に対する負荷を低減し、タッチ入力をより効率的に処理できるソフトウェアアプリケーションの開発を容易にする。更に、かかる方法及びユーザインターフェースは、ユーザインターフェースと対話する際の標準化された手法を提供し、これにより、ユーザに対する認知上の負荷が低減され、動作時間及びユーザエクスペリエンスが更に改善される。
デバイスは、第1のソフトウェアアプリケーションの第1のユーザインターフェース(例えば、図7Cのメールアプリケーションユーザインターフェース706)を表示し、第1のユーザインターフェースは複数のユーザインターフェースオブジェクト(例えば、ユーザインターフェースオブジェクト708、「Integrate Us(繋がる)」及び「Subtract(削除する)」などのボタン、電子メールアドレス、並びに他のコントロール)を含み、複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクトは、プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられている(1130)(例えば、ユーザインターフェースオブジェクト708は、例えば、接触による入力を受信する前に、ユーザインターフェースオブジェクト708をプレビュー動作のためのアプリケーション非依存モジュール230に事前登録することによって、プレビュー動作のためのアプリケーション非依存の所定の命令セットを用いて動作するように構成される)。一部の実施形態では、プレビュー動作のためのアプリケーション非依存の所定の命令セットは、第1のソフトウェアアプリケーションの第1のソフトウェアアプリケーションに固有の部分とは異なる。例えば、プレビュー動作のためのアプリケーション非依存の所定の命令セットは、第1のソフトウェアアプリケーション(例えば、アプリケーション1(136−1))と統合されており、かつ第1のソフトウェアアプリケーションがこの第1のアプリケーションが実行されるオペレーティングシステムによって提供されたタッチ入力情報と相互作用するのを可能にする、ドロップインモジュール(例えば、図1Cのタッチを処理するモジュール220)としてアプリケーション開発者に提供される、アプリケーション開発フレームワークの一部であるか、又は、プレビュー動作のためのアプリケーション非依存の所定の命令セットは、第1のソフトウェアアプリケーションに一貫したユーザインターフェースを提供するAPIに従って第1のソフトウェアアプリケーションに関する第1のユーザインターフェースを更新する、オペレーティングシステムの一部であるか、のいずれかである。一部の実施形態では、デバイス上で実行される複数の異なる第三者アプリケーションは、アプリケーション非依存の所定の命令セットへの独立的なアクセス権を含む。一部の実施形態では、デバイス上で実行される複数の異なる第三者アプリケーションは、アプリケーション非依存の所定の命令セットの独立的なインスタンスを含む。一部の実施形態では、デバイス上の複数の異なるアプリケーションは、すべての第三者アプリケーションをサポートするアプリケーション非依存の所定の命令セットと対話するためのコードを含む。一部の実施形態では、プレビュー動作のためのアプリケーション非依存の所定の命令セットは、第1のソフトウェアアプリケーションとは別個である。一部の実施形態では、プレビュー動作のためのアプリケーション非依存の所定の命令セットは、第1のソフトウェアアプリケーションに含まれている。
デバイスは、ディスプレイ上でフォーカスセレクタが複数のユーザインターフェースオブジェクト中の第1のユーザインターフェースオブジェクト上にある間に、接触による入力の第1の部分(例えば、図7Cの入力705などの押圧入力)を検出する(1132)。一部の実施形態では、入力は、タッチ感知面上の単一の接触によって行われる。一部の実施形態では、入力は動かない入力である。一部の実施形態では、入力における接触は、入力中にタッチ感知面にわたって移動する。
デバイスは、入力の第1の部分の検出に応じて及び入力が第1の強度閾値(例えば、図7CのIなどの、デバイスが第1のユーザインターフェースを不鮮明にし始める「リビール」強度閾値)を満足することを含むリビール基準を入力の第1の部分が満足するとの判定に従って、アプリケーション非依存の所定の命令セットにプレビューコンテンツを提供すること(例えば、図11Aの動作1110)を含め、プレビュー動作のためのアプリケーション非依存の所定の命令セットを実行する(1134)。アプリケーション非依存の所定の命令セットを実行することによって実行されるプレビュー動作は、(例えば、図7D〜図7Gに示すように、プレビュー領域を表示する前に)第1のユーザインターフェース内の第1のユーザインターフェースオブジェクトを視覚的に区別すること(例えば、図7Dに示すように、第1のユーザインターフェースオブジェクト以外の第1のユーザインターフェースを不鮮明にすること)と、第1のユーザインターフェース内の第1のユーザインターフェースオブジェクトの視覚的区別の開始後に、入力の第1の部分に続く入力の第2の部分(例えば、図7Gのフォーカスセレクタ705の強度の増大)を受信すること、及び、入力が第2の強度閾値を満足することを含むプレビュー基準(例えば、図7GのIなどの、第1のユーザインターフェースオブジェクトをより強く押圧することによって到達可能な別のユーザインターフェースのプレビューをデバイスが表示し始める、第1の強度閾値よりも高い「プレビュー」強度閾値)を入力の第2の部分が満足するとの判定に従って、第1のユーザインターフェース上に重ねられたプレビュー領域(例えば、図7Gのプレビュー領域712)を表示することと、を含む。プレビュー領域はプレビューコンテンツを含む。一部の実施形態では、プレビューコンテンツは、第1のユーザインターフェースオブジェクトがアクティブ化されるときに提示される、ユーザインターフェースの小さくしたサイズのビューである(例えば、プレビュー領域712内のプレビューコンテンツは、図7Bに示すように、フォーカスセレクタがユーザインターフェースオブジェクト708上にある間にタップジェスチャに応じて表示される、ブラウザアプリケーションユーザインターフェース710の小さくしたサイズのビューである)。
一部の実施形態では、プレビュー動作の開始後は、プレビュー動作は、第1のソフトウェアアプリケーションから独立して(例えば、第1のソフトウェアアプリケーションの第1のソフトウェアアプリケーションに固有の部分から独立して)実行される(1136)。例えば、図11Aに示すように、プレビュー動作は、プレビューコンテンツの受信に続いて、アプリケーション非依存モジュール230によってアプリケーション専用モジュール220から独立して実行される。
一部の実施形態では、プレビュー動作は、接触の強度に従ってプレビュー領域を更新することを含む(1138)(例えば、図7Hに示すように、入力の強度の更なる増大が検出され、プレビュー領域712のサイズが大きくされる)。
一部の実施形態では、プレビュー動作は、入力の第2の部分の検出に応じて、入力の第2の部分がプレビュー領域消滅基準(例えば、接触のリフトオフなどの、入力の終わり)を満たすとの判定に従って、プレビュー領域の表示を終了すること、及び、第1のユーザインターフェースの表示を維持すること(例えば、図7J〜図7Kに示すように、入力の強度が強度閾値Iを下回って降下するとき、プレビュー領域712は表示されなくなる)を含む(1140)。一部の実施形態では、デバイスがプレビュー領域の表示を終了することに続いて、デバイスは、少なくとも第1のソフトウェアアプリケーションの第1のソフトウェアアプリケーションに固有の部分を使用して、続く入力を処理する。
一部の実施形態では、プレビュー動作は、入力の第2の部分の検出後に、接触による入力の第3の部分を検出することと、接触による入力の第3の部分を検出することに応じて、入力の第3の部分がユーザインターフェース入れ替え基準を満足するとの判定に従って、第1のユーザインターフェース(及び重ねられたプレビュー領域)の表示を第1のユーザインターフェースとは異なる第2のユーザインターフェース(例えば、図7Iに示すように、入力の強度が強度閾値Iに達することに応じて、ブラウザアプリケーションユーザインターフェース710が表示される)と入れ替えることと、を含む(1142)。
一部の実施形態では、プレビュー動作は、第2のユーザインターフェースを生成するために、アプリケーション非依存の所定の命令セットから、第1のユーザインターフェースオブジェクトに関する動作(例えば、第1のユーザインターフェースオブジェクトの選択又はアクティブ化)を示す情報を(例えば、図1Cのアプリケーションコア1(230−1)などの、第1のソフトウェアアプリケーションの第1のソフトウェアアプリケーションに固有の部分に)送信することと、アプリケーション非依存の所定の命令セットにおいて第2のユーザインターフェースを受信することと(例えば、図11Aの動作1107及び1111を利用して、図7Gに示すようにプレビュー領域内にプレビューコンテンツを提示する、及び任意選択的に、図7Iに示すような入力の強度の更なる増大に応じて第1のユーザインターフェースをプレビューコンテンツを含む第2のユーザインターフェースと置き換えるために、アプリケーション非依存モジュール230は、図7Bのブラウザアプリケーションユーザインターフェース710などのプレビューコンテンツを受信する)、を含む(1144)。プレビューコンテンツは、第2のユーザインターフェースの少なくとも一部を含む。一部の実施形態では、プレビューコンテンツは、第2のユーザインターフェースの全体を含む。
一部の実施形態では、プレビュー動作は、第1のソフトウェアアプリケーション(例えば、第1のソフトウェアアプリケーションの第1のソフトウェアアプリケーションに固有の部分)において、第1のユーザインターフェースオブジェクトに関する動作を示す情報を受信することと、第2のユーザインターフェースを生成することと、第2のユーザインターフェースをアプリケーション非依存の所定の命令セットに送信することと(例えば、図11Aに示すような、アプリケーション専用モジュール220によって実行される動作1108、1109、及び1110)、を含む(1146)。一部の実施形態では、プレビューコンテンツを提供すること以外には、アプリケーション専用モジュール220はプレビュー動作を実行することに関して使用されない。
図11B〜図11Cにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法800、900、1000、1150、1200、1300、1400、1500、及び1600)に関して本明細書に記載される他のプロセスの詳細はまた、図11B〜図11Cに関して上記した方法1100にも、類似の様式で適用可能であることに留意されたい。例えば、方法1100を参照して上記したタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800、900、1000、1150、1200、1300、1400、1500、及び1600)を参照して本明細書に記載されるタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図11Dは、一部の実施形態による、アプリケーション非依存の所定の命令セットを使用してタッチ入力を処理する方法1150を示すフロー図である。方法1150は、ディスプレイ、タッチ感知面、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイス(例えば、デバイス300、図3、又はポータブル多機能デバイス100、図1A)において実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるか又はこれに組み込まれている。一部の実施形態では、ディスプレイはタッチ感知面とは別個である。方法1150の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
後述するように、方法1150は、タッチ入力をアプリケーション非依存の命令セットで処理するための高度な方式を提供する。方法1150は、タッチ入力を処理する際の効率を改善する。ソフトウェアアプリケーションのサイズを小さくすること、ソフトウェアアプリケーションの速さを改善すること、及びメモリ使用を場合によっては低減することによって、かかる方法及びインターフェースはより効率的なヒト−マシンインターフェースを提供し、これにより全体的な動作時間及びユーザエクスペリエンスが改善される。バッテリ動作デバイスの場合、かかる方法及びインターフェースにより、バッテリ電力を節約し、バッテリの充電の間の時間を増やす。更には、かかる方法は、アプリケーション開発者に対する負荷を低減し、タッチ入力をより効率的に処理できるソフトウェアアプリケーションの開発を容易にする。更に、かかる方法及びユーザインターフェースは、ユーザインターフェースと対話する際の標準化された手法を提供し、これにより、ユーザに対する認知上の負荷が低減され、動作時間及びユーザエクスペリエンスが更に改善される。
デバイスは、第1のソフトウェアアプリケーションの第1のユーザインターフェース(例えば、図7Cのメールアプリケーションユーザインターフェース706)を表示し、第1のユーザインターフェースは複数のユーザインターフェースオブジェクト(例えば、ユーザインターフェースオブジェクト708、「Integrate Us」及び「Subtract」などのボタン、電子メールアドレス、並びに他のコントロール)を含み、複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクトは、プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられている(1152)(例えば、ユーザインターフェースオブジェクト708は、プレビュー動作のためのアプリケーション非依存の所定の命令セットを用いて動作するように構成される)。
デバイスは、ディスプレイ上でフォーカスセレクタが複数のユーザインターフェースオブジェクト中の第1のユーザインターフェースオブジェクト上にある間に、接触による入力の第1の部分(例えば、図7Gの入力705などの押圧入力)を検出する(1154)。
デバイスは、入力の第1の部分の検出に応じて及び入力の第1の部分がプレビュー基準を満たすとの判定に従って、プレビュー動作のためのアプリケーション非依存の所定の命令セット(例えば、図11Aの動作1105)を実行する(1156)。アプリケーション非依存の所定の命令セットを実行することによって実行されるプレビュー動作は、第1のユーザインターフェース上に重ねられたプレビュー領域(例えば、図7Gに示すような、メールアプリケーションユーザインターフェース706上に重ねられたプレビュー領域712)を表示することと、入力の第1の部分の検出後に入力の第2の部分を検出することと、接触による入力の第2の部分の検出に応じて、入力の第2の部分がユーザインターフェース入れ替え基準を満たすとの判定に従って、第1のユーザインターフェースの表示を第1のユーザインターフェースとは異なる第2のユーザインターフェースと入れ替えることと(例えば、接触の強度705が強度閾値Iに達することに応じて、メールアプリケーションユーザインターフェース706はプレビュー領域712とともに、図7Iに示すブラウザアプリケーションユーザインターフェース710と入れ替えられる)、を含む。
一部の実施形態では、プレビュー動作の開始後は、プレビュー動作は、第1のソフトウェアアプリケーションから独立して実行される(1158)(例えば、図11Aに示すように、アプリケーション専用モジュール220からプレビューコンテンツを受信した後は、プレビュー動作1106は、アプリケーション専用モジュール220から独立して実行される)。一部の実施形態では、プレビューコンテンツは、プレビュー動作の開始前に取得される(例えば、プレビューコンテンツは、図11Aの動作1112の前に取得される)。
一部の実施形態では、第1のユーザインターフェースの表示を第2のユーザインターフェースと入れ替えることに続いて検出されたタッチ感知面上の入力は、第1のソフトウェアアプリケーションを用いて処理される(1160)。例えば、図1117に示すように、図7Iのブラウザアプリケーションユーザインターフェース710などの第2のユーザインターフェースが表示された後で、制御は第1のソフトウェアアプリケーション(例えば、ブラウザモジュール147)に戻され、第1のソフトウェアアプリケーションは、(例えば、アプリケーションコア1(230−1)のみを使用すること、又は任意選択的に、アプリケーションコア1(230−1)をタッチ処理モジュール220と連動させて使用することによって)タッチ感知面上の続く入力を処理する。
図11Dにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1200、1300、1400、1500、及び1600)に関して本明細書に記載される他のプロセスの詳細はまた、図11Dに関して上記した方法1150にも、類似の様式で適用可能であることに留意されたい。例えば、方法1150を参照して上記したタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1200、1300、1400、1500、及び1600)を参照して本明細書に記載されるタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図12A〜図12Bは、一部の実施形態による、所定のデータ構造を使用してタッチ入力を処理する方法1200を示すフロー図である。方法1200は、ディスプレイ、タッチ感知面、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイス(例えば、デバイス300、図3、又はポータブル多機能デバイス100、図1A)において実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるか又はこれに組み込まれている。一部の実施形態では、ディスプレイはタッチ感知面とは別個である。方法1200の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
後述するように、方法1200は、タッチ入力を所定のデータ構造で処理するための高度な方式を提供する。方法1200は、タッチ入力を処理する際の効率を改善する。かかる方法及びインターフェースは、より効率的なヒト−マシンインターフェースを提供し、これにより全体的な動作時間及びユーザエクスペリエンスが改善される。バッテリ動作デバイスの場合、かかる方法及びインターフェースにより、バッテリ電力を節約し、バッテリの充電の間の時間を増やす。
デバイスは、ディスプレイ上に、ソフトウェアアプリケーションのユーザインターフェース(例えば、図7FFのメールアプリケーションユーザインターフェース706)を表示する(1202)。
デバイスは、ディスプレイ上でソフトウェアアプリケーションのユーザインターフェースを表示している間に、ソフトウェアアプリケーションのユーザインターフェースに対応する場所におけるタッチ感知面上の入力(例えば、図7FFの入力713)を検出する(1204)。
デバイスは、入力の検出に応じて、アプリケーション非依存の命令セットからソフトウェアアプリケーションに入力に対応する強度情報を送信する(1206)(例えば、図7FFに示すように、アプリケーション非依存モジュール220は、イベントオブジェクト194をアプリケーション専用モジュール230に送信する)。強度情報は、1つ以上のセンサに割り当てられた基準強度(例えば、基準強度7208)、及び検出された(例えば、測定された)入力の強度に対応する特性強度(例えば、特性強度7206)を含む。一部の実施形態では、アプリケーション非依存の命令セットは、アプリケーション非依存のソフトウェアエンティティ(例えば、図1Cのタッチ処理モジュール220)である。
一部の実施形態では、特性強度は、感度値(例えば、図7FFの感度7210)によって更に調節される(1208)。一部の実施形態では、特性強度は感度値を含む(例えば、特性強度に感度値が乗算されている)。例えば(基準強度が100gであるとき)、1x感度では、100gの強度は1.0の正規化された強度に等しく、2x強度では、50gの強度は1.0の正規化された強度に等しい。これに対して、1x強度では、50gの強度は0.5の正規化された強度に等しい。
一部の実施形態では、入力の特性強度は、基準強度に基づいて正規化される正規化された強度値である(1210)(例えば、正規化された強度1.0=特性強度100g/基準強度100g)。
一部の実施形態では、強度情報は、強度に基づく基準(例えば、測定された接触強度)と強度に基づかない基準(例えば、接触の移動、接触の持続時間、接触の場所、など)の組合せに基づく1つ以上のヒューリスティックによって判定される強度状態情報を含む(1212)。例えば、強度状態を判定するための閾値は、接触の移動、接触の持続時間、及び接触の場所に応じて変動する。一部の実施形態では、強度状態のうちの1つ以上は、(例えば、方法1500及び1600を参照して以下でより詳細に記載されるように)動的に判定された強度状態を含む。
一部の実施形態では、強度状態情報は、現在の強度状態がジェスチャレコグナイザに関する強度状態要件(例えば、方法1400を参照して以下に記載されるような、ジェスチャの第1のクラス中の第1のジェスチャに関する、第三者アプリケーションによって指定された強度基準)に適合するか否かに関するデバイスからの指示に基づいて、提供される(1214)。
一部の実施形態では、強度情報は、複数の異なる利用可能な状態値(例えば、力不在状態、ヒント/リビール状態、ピーク/プレビュー状態、ポップ/コミット状態)を有する強度状態情報を含み、強度状態間の遷移が、オペレーティングシステム駆動ユーザ対話(例えば、ピークアンドポップメニュー、クイックアクションメニューなど)をトリガするために、オペレーティングシステムの全体にわたって使用される(1216)。
一部の実施形態では、入力の特性強度は、タッチイベントに対応する接触の特性強度を各々含む1つ以上のタッチイベント(例えば、図7IIでは、2つのイベントオブジェクト194及び7194が提供される)を介して提供される(1218)。一部の実施形態では、タッチイベントは、ビューに関連付けられたジェスチャレコグナイザがジェスチャを認識した後で、そのビューに配信される。例えば、ジェスチャレコグナイザがジェスチャを認識した後で配信されるタッチイベントは、強度情報を含む。一部の実施形態では、タッチイベントはジェスチャレコグナイザに関連付けられていないビューに配信され、そのビューに対応するアプリケーションによって、それらのタッチイベントに基づいて、動作(例えば、ジェスチャにおける接触のうちの1つ以上の強度に基づいて決定される厚さを有する線を引くこと)が実行される。
一部の実施形態では、デバイスは、ディスプレイ上で、複数の強度感度設定の間でそれぞれの強度感度設定を選択するための感度コントロール(例えば、複数の強度感度設定を有する図7GGの領域720又は図7HHの領域722)を表示し(1220)、感度コントロールの表示中に、複数の強度感度設定のうちのそれぞれの強度感度設定の選択に対応するユーザ入力を受信し、それぞれの強度感度設定の選択に対応するユーザ入力を受信することに応じて、複数の続く入力に関する特性強度値をユーザが選択したそれぞれの強度感度設定に対応するそれぞれの感度値によって調節する。例えば、強度感度設定はすべての入力に関して、入力を解釈しているアプリケーションを変更することなくユーザによって調節可能であるが、その理由は、入力値が、これらがアプリケーションに配信される前に(例えば、同じアプリケーション非依存モジュール220によって)調節されるからである。
図12A〜図12Bにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1300、1400、1500、及び1600)に関して本明細書に記載される他のプロセスの詳細はまた、図12A〜図12Bに関して上記した方法1200にも、類似の様式で適用可能であることに留意されたい。例えば、方法1200を参照して上記したタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1300、1400、1500、及び1600)を参照して本明細書に記載されるタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図13A〜図13Bは、一部の実施形態による、力ジェスチャ進度インジケータを使用してタッチ入力を処理する方法を示すフロー図である。方法1300は、ディスプレイ、タッチ感知面、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイス(例えば、デバイス300、図3、又はポータブル多機能デバイス100、図1A)において実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるか又はこれに組み込まれている。一部の実施形態では、ディスプレイはタッチ感知面とは別個である。方法1300の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
方法1300は、タッチ入力を力ジェスチャ進度インジケータで処理するための高度な方式を提供する。方法1300は、タッチ入力を処理する際の効率を改善する。かかる方法及びインターフェースは、より効率的なヒト−マシンインターフェースを提供し、これにより全体的な動作時間及びユーザエクスペリエンスが改善される。バッテリ動作デバイスの場合、かかる方法及びインターフェースにより、バッテリ電力を節約し、バッテリの充電の間の時間を増やす。
デバイスは、ディスプレイ上に、ソフトウェアアプリケーションの第1のユーザインターフェース(例えば、図7Aのメールアプリケーションユーザインターフェース706)を表示する(1302)。
デバイスは、ソフトウェアアプリケーションの第1のユーザインターフェースの表示中に、タッチ感知面上の入力(例えば、図7Aのフォーカスセレクタ705)を検出する(1304)。
デバイスは、入力の検出中に、入力の強度の変化の検出に応じて、アプリケーション非依存の命令セットからソフトウェアアプリケーションに、入力の強度の変化を表す第1の進度インジケータの値を提供し(例えば、図7FFに示すような、アプリケーション非依存モジュール220からアプリケーション専用モジュール230に送達されるイベントオブジェクト194)、アプリケーション非依存の命令セットとは異なるソフトウェアアプリケーション中の命令セット及び第1の進度インジケータ(例えば、図7Dの進度インジケータ750)の値に従って、第1のユーザインターフェースを更新する(1306)(例えば、第1のユーザインターフェースは、例えば図7Dに示すような視覚的区別を示すために、図7FFのアプリケーション専用モジュール230を使用して更新される)。一部の実施形態では、方法は、第1の進度インジケータの値をモニタすることと、第1の進度インジケータの変化に応じて第1の進度インジケータの値に基づいて第1のユーザインターフェースを更新することと、を含む。一部の実施形態では、ソフトウェアアプリケーション中の命令セットは、アプリケーション専用命令である。
一部の実施形態では、第1の進度インジケータの値は、第1の最初の状態(例えば、ヒント/リビール強度状態)と第1の最終状態(例えば、ピーク/プレビュー強度状態)との間の入力の状態を示す正規化値である(1308)。例えば、第1の進度インジケータは0〜1の値を有し、この場合、0は最初の状態(例えば、図7Cに示すようなヒント/リビール強度状態の始まりなどの、最初の強度)を表し、1は最後の状態(例えば、図7Gに示すようなピーク/プレビュー強度状態などの、最終又は標的強度、)を表す。
一部の実施形態では、第1の最初の状態及び第1の最終状態は、ソフトウェアアプリケーション(例えば、図1Cのアプリケーション1(136−1))によって指定される(1310)。一部の実施形態では、アプリケーション1(136−1)のアプリケーションコア1(230−1)は、第1の最初の状態及び第1の最終状態を指定する(例えば、ソフトウェアアプリケーションは、第1の最終状態がピーク/プレビュー強度状態に対応するかそれともポップ/コミット強度状態に対応するかを指定する。
一部の実施形態では、異なる状態間の進度は、強度に基づく基準(例えば、測定された接触強度)と強度に基づかない基準(例えば、接触の移動、接触の持続時間、接触の場所、など)の組合せに基づく1つ以上のヒューリスティックによって判定される(1312)。一部の実施形態では、強度状態のうちの1つ以上は、(例えば、方法1500及び1600を参照して以下でより詳細に記載されるように)動的に判定された強度状態である。
一部の実施形態では、状態は、デバイスのオペレーティングシステムによって提供される状態値(例えば、力不在状態、ヒント/リビール状態、ピーク/プレビュー状態、ポップ/コミット状態)のセットから選択され、これらの状態間の遷移が、オペレーティングシステム駆動ユーザ対話(例えば、ピークアンドポップメニュー、クイックアクションメニューなど)をトリガするために、オペレーティングシステムの全体にわたって使用される(1314)。
一部の実施形態では、デバイスは、入力の検出中に、第1の最終状態を超える(又は第1の最終状態への)入力の強度の変化の検出に応じて、アプリケーション非依存の命令セットからソフトウェアアプリケーションに、入力の変化を表す第2の進度インジケータ(例えば、図7Gの第2の進度インジケータ752)の値を提供する(1316)。第2の進度インジケータの値は、第2の最初の状態と第2の最終状態との間の(例えば、ピーク/プレビュー強度状態とポップ/コミット強度状態との間の)入力の状態を示す正規化値である。デバイスは、アプリケーション非依存の命令セットとは異なるソフトウェアアプリケーション中の命令セット及び第2の進度インジケータの値に従って、第1のユーザインターフェースを更新する。一部の実施形態では、第2の最初の状態は、第1の最終状態に対応する。これにより、デバイスが入力の強度の変化を、第1の最初の状態から第2の最終状態まで間を開けず連続的にモニタすることが可能になる。
一部の実施形態では、ソフトウェアアプリケーション中の命令セット及び第2の進度インジケータの値に従って第1のユーザインターフェースを更新することは、第1のユーザインターフェースを第2のユーザインターフェースと入れ替えることを含む(1318)(例えば、図7Iでは、第2の進度インジケータ752が第2の最終状態に達するとき、メールアプリケーションユーザインターフェース706はブラウザアプリケーションユーザインターフェース710と入れ替えられる)。
一部の実施形態では、ソフトウェアアプリケーション中の命令セットは、(1320)入力の強度の変化を図式的に表すカスタマイズされたアニメーションを提供するように構成される。一部の実施形態では、ソフトウェアアプリケーション中の命令セットは、入力の開始を図式的に表すカスタマイズされたアニメーションを提供するように構成される。例えば、ソフトウェアアプリケーション中の命令セットは、第1のユーザインターフェースの少なくとも一部を不鮮明にするために使用される。一部の実施形態では、ソフトウェアアプリケーション中の命令セットは、入力の完了(例えば、入力が最終状態に達する)を図式的に表すカスタマイズされたアニメーションを提供するように構成される。例えば、ソフトウェアアプリケーション中の命令セットは、プレビューウィンドウを表示するために使用される。一部の実施形態では、プレビューウィンドウはカスタマイズされたアニメーション中では、矩形でない形状(例えば、円形)を有する。カスタマイズされたアニメーションの使用により、デバイスがアプリケーション非依存モジュール220によって事前に規定されていないアニメーションを提供することが可能になる。
一部の実施形態では、デバイスは、入力の検出中に、入力が第1の強度基準(例えば、第1の最初の状態)を満足することを検出することに応じて、第1の進度インジケータの値が(第1の最初の状態と第1の最終状態との間の)入力の強度の変化を表すように、第1の進度インジケータを開始する(1322)。例えば、図7B〜図7Cでは、第1の進度インジケータ750は、入力が強度閾値Iに達するときにだけ開始される。これにより、第1の進度インジケータが必要とされないときに(例えば、入力の強度が第1の進度インジケータによって表される強度範囲を下回るときに)第1の進度インジケータを更新及び追跡することが回避される。
図13A〜図13Bにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1200、1400、1500、及び1600)に関して本明細書に記載される他のプロセスの詳細はまた、図13A〜図13Bに関して上記した方法1300にも、類似の様式で適用可能であることに留意されたい。例えば、方法1300を参照して上記したタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1200、1400、1500、及び1600)を参照して本明細書に記載されるタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図14A〜図14Cは、一部の実施形態による、第三者アプリケーションによって指定された強度基準に基づいてタッチ入力を処理する方法を示すフロー図である。方法1400は、ディスプレイ、タッチ感知面、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイス(例えば、デバイス300、図3、又はポータブル多機能デバイス100、図1A)において実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるか又はこれに組み込まれている。一部の実施形態では、ディスプレイはタッチ感知面とは別個である。方法1400の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
後述するように、方法1400は、タッチ入力を動的閾値で処理するための高度な方式を提供する。方法1400は、タッチ入力を処理する際の効率を改善する。不要な/無関係の/重複する入力を低減することにより、かかる方法及びインターフェースはより効率的なヒト−マシンインターフェースを提供し、これにより、全体的な動作時間及びユーザエクスペリエンスが改善される。バッテリ動作デバイスの場合、かかる方法及びインターフェースにより、バッテリ電力を節約し、バッテリの充電の間の時間を増やす。
デバイスは、ディスプレイ上に、オペレーティングシステム内で実行される第1の第三者アプリケーションのユーザインターフェース(例えば、図7JJのメールアプリケーションユーザインターフェース706)を表示する(1402)。デバイスの機能は、オペレーティングシステムのオペレーティングシステムフレームワーク(例えば、UI Kit中のTouch Event API)を通して、第1の第三者アプリケーションに曝される。例えば、第1の第三者アプリケーションに、利用可能なジェスチャクラスについての情報が提供される。オペレーティングシステムフレームワークは、デバイスが認識できる複数のジェスチャクラスを定義する。第1のジェスチャクラスは、第1のジェスチャ認識基準が満たされるときに、タッチ感知面上で検出された入力を第1のジェスチャとして認識するための、第1のジェスチャ認識基準に関連付けられている。第1の第三者アプリケーションは、第1の動作に関して、ユーザインターフェースの第1の部分を、第1のジェスチャクラスからの第1のジェスチャ(例えば、第1のピンチジェスチャレコグナイザ(N))に関連付けている。第1の第三者アプリケーションは、第1の動作に関してユーザインターフェースの第1の部分に関連付けられた第1のジェスチャに関する第1の強度基準を指定している。一部の実施形態では、第1のジェスチャ認識基準及び第1の強度基準の両方が満足されるとき、第1の動作が実行される。
一部の実施形態では、第1の強度基準は、強度閾値(例えば、図7JJの強度閾値I)を含む(1404)。例えば、第1の強度基準は、入力の強度が強度閾値に達するとき(少なくとも部分的に)満足される。
一部の実施形態では、強度閾値は、所定の閾値のセットから選択される(1406)(例えば、強度閾値は、ヒント/リビール閾値、ピーク/プレビュー閾値、及びポップ/コミット閾値などの所定の閾値、又は100g、200g、及び300gなどのこれらの対応する強度値のセットから選択される)。
一部の実施形態では、強度閾値は、デバイスが検出可能な値の範囲から選択される(1408)(例えば、一部の実施形態では、強度閾値は、1g、10g、100g、450gなどのような、1g〜500gの任意の値とすることができる)。
一部の実施形態では、第1の強度基準は、経時的な強度の変化の比率、複数の接触の強度、入力の持続時間、入力がタッチ感知面にわたって移動した距離、入力における接触の回数、入力の移動の方向、入力における接触のタッチダウンの相対的タイミング、入力における接触の動き、などを含む。一部の実施形態では、第1の強度基準は、(例えば、方法1500及び1600を参照して以下でより詳細に記載されるように)動的な強度閾値を含む。
ディスプレイ上で第1の第三者アプリケーションのユーザインターフェースを表示している間に、デバイスは、第1の第三者アプリケーションのユーザインターフェースの第1の部分に対応する場所におけるタッチ感知面上の入力(例えば、図7JJのフォーカスセレクタ715及び717によって表されるデピンチジェスチャ)を検出する(1410)。
入力の検出に応じて、デバイスは、入力が第1のジェスチャ認識基準を満たすとの及び入力が第1の第三者アプリケーションによって指定された第1の強度基準を満たすとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第1の動作を実行し(1412)(例えば、図7JJ〜図7KKでは、メールアプリケーションユーザインターフェース706は、フォーカスセレクタ715及び717によって表されるデピンチジェスチャが強度閾値Iを満足するとき、メールアプリケーションユーザインターフェース724と入れ替えられる)、入力が第1のジェスチャ認識基準を満たすが第1の第三者アプリケーションによって指定された第1の強度基準は満たさないとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第1の動作の実行を取り止める(1414)(例えば、図7LLでは、メールアプリケーションユーザインターフェース706は、フォーカスセレクタ715及び717によって表されるデピンチジェスチャが強度閾値Iを満足しないとき、メールアプリケーションユーザインターフェース724と入れ替えられないが、任意選択的に、強度に基づかないデピンチジェスチャに関連付けられたズームイン動作が、フォーカスセレクタ715及び717によって表されるデピンチジェスチャに応じて実行される)。
一部の実施形態では、第1の第三者アプリケーションは、第2の動作に関して、ユーザインターフェースの第1の部分を第1のジェスチャクラスからの第1のジェスチャに関連付けている(1416、図14B)(例えば、強度に基づかないピンチジェスチャレコグナイザは、ズームイン/ズームアウト動作に対して関連付けられている)。第1の第三者アプリケーションは、第2の動作に関してユーザインターフェースの第1の部分に関連付けられた第1のジェスチャに関する第1の強度基準を指定していない。一部の実施形態では、第1の第三者アプリケーションは、第2の動作に関してユーザインターフェースの第1の部分に関連付けられた第1のジェスチャに関するどのような強度基準も指定していない。入力の検出に応じて、デバイスは、入力が第1のジェスチャ認識基準を満たすが第1の第三者アプリケーションによって指定された第1の強度基準は満たさないとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第2の動作を実行し(例えば、図7LLでは、フォーカスセレクタ715及び717によって表されるデピンチジェスチャが強度閾値Iを満足しないとき、メールアプリケーションユーザインターフェース706はズームインされる)、入力が第1のジェスチャ認識基準を満たすとの及び入力が第1の第三者アプリケーションによって指定された第1の強度基準を満たすとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第2の動作の実行を取り止める(例えば、図7KKでは、フォーカスセレクタ715及び717によって表されるデピンチジェスチャが強度閾値Iを満足するとき、メールアプリケーションユーザインターフェース724はズームインされない)。
一部の実施形態では、第2のジェスチャクラスは、第2のジェスチャ認識基準が満たされるときに、タッチ感知面上で検出された入力を第2のジェスチャとして認識するための、第2のジェスチャ認識基準に関連付けられている(1418)。第1の第三者アプリケーションは、ユーザインターフェースの第1の部分を第3の動作に関する第2のジェスチャクラスからの第2のジェスチャに関連付けている(例えば、図7MMでは、2指パンジェスチャレコグナイザ(2S)は、メールアプリケーションユーザインターフェース706の第1の部分に関連付けられている)。第1の第三者アプリケーションは、第3の動作に関するユーザインターフェースの第1の部分に関連付けられた第2のジェスチャに関する第2の強度基準(例えば、強度閾値I)を指定している。入力の検出に応じて、デバイスは、入力が第2のジェスチャ認識基準を満たすとの及び入力が第1の第三者アプリケーションによって指定された第2の強度基準を満たすとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第3の動作を実行し(例えば、図7NNに示すように、メールアプリケーションユーザインターフェース706上のリンクされたウェブサイトのレビューを示すレビューウィンドウ726を表示すること)、入力が第2のジェスチャ認識基準を満たすが第1の第三者アプリケーションによって指定された第2の強度基準は満たさないとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第3の動作の実行を取り止める(例えば、入力が強度閾値Iを満たさないとき、レビューウィンドウ726は表示されない)。
一部の実施形態では、デバイスは、ディスプレイ上で、オペレーティングシステム内で実行されかつ第1の第三者アプリケーションとは異なる第2の第三者アプリケーション(例えば、図1Aのブラウザモジュール147)のユーザインターフェースを表示する(1420、図14C)。第2の第三者アプリケーションは、第1の動作に関して、第2の第三者アプリケーションのユーザインターフェースの第2の部分を第1のジェスチャクラスからの第1のジェスチャに関連付けている(例えば、ブラウザアプリケーションユーザインターフェース710のアドレスウィンドウは、ブラウザアプリケーションユーザインターフェース710を図7PPに示すタブ管理ビュー728と入れ替えるための第3のピンチジェスチャレコグナイザ(N)に関連付けられている)。第2の第三者アプリケーションは、第1の動作に関してユーザインターフェースの第2の部分に関連付けられた第1のジェスチャに関する第3の強度基準(例えば、図7PPの強度閾値I)を指定している。第3の強度基準は第1の強度基準とは異なる(及び、任意選択的に、第3の強度基準は第2の強度基準とは異なる)。ディスプレイ上で第2の第三者アプリケーションのユーザインターフェースを表示している間に、デバイスは、第2の第三者アプリケーションのユーザインターフェースの第2の部分に対応する場所におけるタッチ感知面上の入力を検出する(例えば、図7OOでは、フォーカスセレクタ723及び725によって表されるデピンチジェスチャが、ブラウザアプリケーションユーザインターフェース710のアドレスウィンドウ上で検出される)。第2の第三者アプリケーションのユーザインターフェースの第2の部分に対応する場所における入力の検出に応じて、デバイスは、第2の第三者アプリケーションのユーザインターフェースの第2の部分に対応する場所における入力が第1のジェスチャ認識基準を満たすとの及び入力が第2の第三者アプリケーションによって指定された第3の強度基準を満たすとの判定に従って、第2の第三者アプリケーションのユーザインターフェースの第2の部分に関連付けられた第1の動作を実行し(例えば、ブラウザアプリケーションユーザインターフェース710は、図7PPに示すようなタブ管理ビュー728と入れ替えられる)、第2の第三者アプリケーションのユーザインターフェースのこの部分に対応する場所における入力が第1のジェスチャ認識基準を満たすが第2の第三者アプリケーションによって指定された第3の強度基準は満たさないとの判定に従って、第2の第三者アプリケーションのユーザインターフェースの第2の部分に関連付けられた第1の動作の実行を取り止める。例えば、フォーカスセレクタ723及び725によって表されるデピンチジェスチャの強度が強度閾値Iを下回っているとき、図7QQに示すように、アクションは実行されない(例えば、図7PPに示すタブ管理ビュー728は表示されない)。
図14A〜図14Bにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1200、1300、1500、及び1600)に関して本明細書に記載される他のプロセスの詳細はまた、図14A〜図14Bに関して上記した方法1400にも、類似の様式で適用可能であることに留意されたい。例えば、方法1400を参照して上記したタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1200、1300、1500、及び1600)を参照して本明細書に記載されるタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
15A〜図15Bは、一部の実施形態による、動的閾値に基づいてタッチ入力を処理する方法を示すフロー図である。方法1500は、ディスプレイ、タッチ感知面、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイス(例えば、デバイス300、図3、又はポータブル多機能デバイス100、図1A)において実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるか又はこれに組み込まれている。一部の実施形態では、ディスプレイはタッチ感知面とは別個である。方法1500の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
後述するように、方法1500は、タッチ入力を動的閾値で処理するための高度な方式を提供する。方法1500は、タッチ入力を処理する際の効率を改善する。不要な/無関係の/重複する入力を低減することにより、かかる方法及びインターフェースはより効率的なヒト−マシンインターフェースを提供し、これにより、全体的な動作時間及びユーザエクスペリエンスが改善される。バッテリ動作デバイスの場合、かかる方法及びインターフェースにより、バッテリ電力を節約し、バッテリの充電の間の時間を増やす。
デバイスは、ディスプレイ上に、ユーザインターフェース(例えば、図7RRのメールアプリケーションユーザインターフェース706)を表示する(1502)。
ユーザインターフェースの表示中に、デバイスは、タッチ感知面上の入力(例えば、図7RRのフォーカスセレクタ727)を検出する(1504)。
第1のユーザインターフェースの表示中に入力を検出することに応じて、入力の検出中に、デバイスは、入力が第1のタイミング基準及び第1の強度入力基準を満足するとの判定に従って、第1の動作(例えば、図7SSに示すように、ユーザインターフェースオブジェクト708を視覚的に区別すること)を実行する(1506)。第1のタイミング基準は、第1の時間期間が経過する間(例えば、図7SSに示すような、時間7124において終わる時間期間p1を通して)入力がタッチ感知面上に留まることを要求する。第1の強度入力基準は、第1の時間期間の終わりに又はこれに続いて(例えば、第1の時間期間に続く又はこれの終わりの時間において)、入力が第1の強度閾値(例えば、図7SSに示すような強度閾値I)を満足することを要求する。
一部の実施形態では、第1の時間期間は、タッチ感知面上の入力の検出に応じて始まる(1508)(例えば、図7SSでは、時間期間p1はフォーカスセレクタ727の最初の検出から始まる)。
一部の実施形態では、入力の検出中に、デバイスは、入力の強度が基準強度閾値を下回って減少したとの判定に従って、第1の時間期間をリセットする(1510)(例えば、図7UUに示すように、入力の強度が基準強度閾値Iを下回って減少するとき、第1の時間期間は、入力の強度が基準強度閾値Iを下回って降下した時間7146から再開する)。一部の実施形態では、基準強度閾値は、所定の検出時間期間中に検出された最大強度、及び、図7UUのImarginなどの強度減少マージン(例えば、10g、20g、30g、又は40gなどの固定されたマージン、又は接触の最大強度の5%、10%、20%、又は30%などの動的なマージン)に基づいて決定される。一部の実施形態では、基準強度閾値は、時間期間が始まって以降に(例えば、入力が検出された瞬間以降に、又は最後に時間期間が再開した時間以降に)検出された最大強度、及び強度減少マージンに基づいて決定される。例えば、基準強度閾値は、最大検出強度から強度減少マージン(例えば、図7UUのImargin)を減算したものに相当する。一部の実施形態では、基準強度閾値は、入力が検出される間継続して更新される(例えば、図7VVに示すように、基準強度閾値は、入力の強度の変化に基づいて更新される)。
一部の実施形態では、入力の検出中に、デバイスは、入力の強度が基準強度閾値を下回って減少したとの判定に従って、基準強度閾値をリセットする(1512)(例えば、図7VVでは、入力の強度が第1の基準強度IR1を下回って減少するとき、基準強度は第2の基準強度IR2にリセットされる)。一部の実施形態では、基準強度閾値は、基準強度閾値がリセットされるときに検出された入力の強度に基づいて変更される(例えば、第2の基準強度IR2は、基準強度閾値がリセットされるときの入力の強度、IR1に基づいて決定される)。例えば、基準強度閾値は、基準強度閾値がリセットされるときに(又はその直前に)検出された入力の強度から、強度減少マージンを減算したものにリセットされる(例えば、図7VVでは、第2の基準強度IR2は、第1の基準強度IR1から強度マージンImarginを減算したものである)。
一部の実施形態では、第1のユーザインターフェースの表示中に入力を検出することに応じて、入力が第1のタイミング基準及び/又は第1の強度入力基準を満足しないとの判定に従って、デバイスは第1の動作を取り止める(1514)(例えば、入力が図7RRの強度パターン7130又は強度パターン7132に従うとき、図7SSに示すようなユーザインターフェースオブジェクト708を視覚的に区別することなどの第1の動作は実行されない)。
一部の実施形態では、第1のユーザインターフェースの表示中に入力を検出することに応じて、デバイスは、入力が第2のタイミング基準及び第2の強度入力基準を満足するとの判定に従って、第1の動作とは異なる第2の動作を実行する(1516、図15B)(例えば、図5TTに示すように、入力が、時間7136において終わる時間期間p2に基づく第2のタイミング基準及び強度閾値Iに基づく第2の強度入力基準を満足するとき、プレビュー領域712が表示される)。第2のタイミング基準は、第2の時間期間が経過する間、入力がタッチ感知面上に留まることを要求する。一部の実施形態では、第2の時間期間は第1の時間期間と同一である。一部の実施形態では、第2の時間期間は第1の時間期間とは異なる。第2の強度入力基準は、第2の時間期間の終わりに又はこれに続いて(例えば、第2の時間期間に続く又はこれの終わりの時間において)、入力が第1の強度閾値とは異なる第2の強度閾値(例えば、第2の強度閾値は第1の強度閾値よりも高い)を満足することを要求する。
一部の実施形態では、デバイスは、入力の検出に応じて及び入力が第1のタイミング基準及び第1の入力基準を満足するとの判定に従って、第1のジェスチャレコグナイザ(例えば、図7A〜図7CCに関して上記したリビールジェスチャレコグナイザ(R))を用いて入力を処理することを含め、第1の動作を実行し、入力の検出に応じて及び入力が第2のタイミング基準及び第2の強度入力基準を満足するとの判定に従って、第2のジェスチャレコグナイザ(例えば、図7A〜図7CCに関して上記したリビールジェスチャレコグナイザ(R))を用いて入力を処理することを含め、第2の動作を実行する(1518)。一部の実施形態では、第2のジェスチャレコグナイザを用いて入力を処理することは、第1のジェスチャレコグナイザを失敗した状態に置くことを含む。
一部の実施形態では、第1のジェスチャレコグナイザを用いて入力を処理することにより、タップジェスチャレコグナイザを中止された状態に置くことが開始される。一部の実施形態では、タップジェスチャレコグナイザを用いて入力を処理することにより、第1のジェスチャレコグナイザを中止された状態に置くことが開始される。一部の実施形態では、長い押圧ジェスチャレコグナイザを用いて入力を処理することにより、第1のジェスチャレコグナイザを中止された状態に置くことが開始される。
一部の実施形態では、デバイスは入力の終わりを検出し(1520)(例えば、タッチ感知面からの入力に対応する接触のリフトオフを検出する)、入力の終わりの検出に応じて、入力が第1のタイミング基準とは(及び第2のタイミング基準とは)異なる第3のタイミング基準を満足するとの判定に従って、第1の動作とは(及び第2の動作とは)異なる第3の動作を実行する。例えば、デバイスが素早いタップ入力(例えば、図7RRの入力パターン7132に従う入力)を検出する場合、そのタップ入力が第1の強度閾値を満足する場合であっても、デバイスは、第1の強度閾値に関連付けられる(例えば、マッピングされる又は割り当てられる)動作を実行するのではなく、そのタップ入力に関連付けられる(例えば、マッピングされる又は割り当てられる)動作を実行する(例えば、図7Bに示すブラウザアプリケーションユーザインターフェース710を表示する)。
一部の実施形態では、入力の終わりの検出に応じて、入力が第3のタイミング基準又は第1のタイミング基準を満足しないとの判定に従って、デバイスはどのような動作の実行も取り止める(1522)。例えば、デバイスが、第3のタイミング基準よりも長くかつ第1の強度閾値を満足するが第1のタイミング基準は満足しない、長い接触(例えば、図7RRの入力パターン7131に従う入力)を検出する場合、デバイスは、タップ入力に関連付けられる(例えば、マッピングされる若しくは割り当てられる)動作又は第1の強度閾値に関連付けられる(例えば、マッピングされる若しくは割り当てられる)動作のいずれも、実行しない。
図15A〜図15Bにおける動作について記載された特定の順序は単なる例示あり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1200、1300、1400、及び1600)に関して本明細書に記載される他のプロセスの詳細はまた、図15A〜図15Bに関して上記した方法1500にも、類似の様式で適用可能であることに留意されたい。例えば、方法1500を参照して上記したタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1200、1300、1400、及び1600)を参照して本明細書に記載されるタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
図16A〜図16Bは、一部の実施形態による、動的閾値に基づいてタッチ入力を処理する方法1600を示すフロー図である。方法1600は、ディスプレイ、タッチ感知面、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイス(例えば、デバイス300、図3、又はポータブル多機能デバイス100、図1A)において実行される。一部の実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるか又はこれに組み込まれている。一部の実施形態では、ディスプレイはタッチ感知面とは別個である。方法1600の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
後述するように、方法1600は、タッチ入力を動的閾値で処理するための高度な方式を提供する。方法1600は、タッチ入力を処理する際の効率を改善する。不要な/無関係の/重複する入力を低減することにより、かかる方法及びインターフェースはより効率的なヒト−マシンインターフェースを提供し、これにより、全体的な動作時間及びユーザエクスペリエンスが改善される。バッテリ動作デバイスの場合、かかる方法及びインターフェースにより、バッテリ電力を節約し、バッテリの充電の間の時間を増やす。
デバイスは、ディスプレイ上に、ユーザインターフェース(例えば、図7WWのメールアプリケーションユーザインターフェース706)を表示する(1602)。
ユーザインターフェースの表示中に、デバイスは、タッチ感知面上の入力(例えば、図7WWのフォーカスセレクタ729)を検出する(1604)。
第1のユーザインターフェースの表示中に入力を検出することに応じて、入力の検出中に、入力がアクティブ化強度閾値を満足するとの判定に従って、デバイスは第1の動作を実行する(1606)(例えば、入力7156の強度が第1の強度閾値成分7154を超えるとき、メールアプリケーションユーザインターフェース706は、ブラウザアプリケーションユーザインターフェース710と入れ替えられる)。アクティブ化強度閾値は、第1の強度値(例えば、最初の強度閾値I)から経時的に減少する、第1の強度閾値成分(例えば、図7WWの第1の強度閾値成分7154)を含む。
一部の実施形態では、アクティブ化強度閾値は、入力の強度に遅れて従う第2の強度閾値成分(例えば、図7YYの第2の強度閾値成分7168)を含む(1608)。一部の実施形態では、第2の強度閾値成分は、入力の強度にローパスフィルタを適用することによって取得される。
一部の実施形態では、アクティブ化強度閾値は、第1の強度閾値成分と第2の強度閾値成分の和である(1610)(例えば、図7YYでは、アクティブ化強度閾値7170は、第1の強度閾値成分7154と第2の強度閾値成分7168の和である)。一部の実施形態では、アクティブ化強度閾値は、これが最小アクティブ化強度閾値以上となるようにして設定される(例えば、図7BBBに示すように、アクティブ化強度閾値7180はベースライン閾値7182以上である)。
一部の実施形態では、第1の強度閾値成分は、入力が検出される瞬間から所定の時間間隔後に減少する(1612)(例えば、図7WWでは、第1の強度閾値成分7154は、入力が最初に検出されるときから所定の時間間隔p3後に減少する)。
一部の実施形態では、第1の強度閾値成分が基準強度閾値を下回っていないとの判定に従って、第1の強度閾値成分は、所定の時間間隔後に(例えば、図7WWに示すように入力が検出される瞬間から、又はピーク動作が実行された瞬間から)減少する減衰曲線に従い、また、第1の強度閾値成分が基準強度閾値を下回っているとの判定に従って、第1の強度閾値成分は、所定の時間間隔を参照せずに決定される時間において始まる減少する減衰曲線に従う(1614)(例えば、図7XXに示すように、第1の強度閾値成分7164は、入力の強度が基準強度閾値Iを下回って降下するとき減衰し始める)。一部の実施形態では、基準強度閾値は、所定の検出時間期間中に検出された最大強度及び強度減少マージンに基づいて決定される。一部の実施形態では、基準強度閾値は、入力が検出される瞬間以降に検出された最大強度及び強度減少マージンに基づいて決定される。例えば、基準強度閾値は、最大検出強度から強度減少マージンを減算したものに相当する。一部の実施形態では、基準強度閾値は、入力が検出される間継続して更新される。
一部の実施形態では、第1のユーザインターフェースの表示中に入力を検出することに応じて、入力の検出中に、入力が第1のタイミング基準及び第1の強度入力基準を満足するとの判定に従って、デバイスは第2の動作(例えば、ピーク/プレビュー動作)を実行する(1616、図16B)。例えば、図16Bに示すように、入力7172が時間7124において第1のタイミング基準及び第1の強度入力基準を満足するとき、第1の動作(例えば、図7G〜図7Iに示すように、メールアプリケーションユーザインターフェース706をブラウザアプリケーションユーザインターフェース710と入れ替えること)を実行する前に、第2の動作(例えば、図7Gに示すように、プレビュー領域712を表示すること)が実行される。第1のタイミング基準は、第1の時間期間が経過する間、入力がタッチ感知面上に留まることを要求する。第1の強度入力基準は、第1の時間期間の終わりに又はこれに続いて(例えば、第1の時間期間に続く又はこれの終わりの時間において)、入力が第1の強度閾値を満足することを要求する。
一部の実施形態では、第1の強度閾値成分は、入力が第1のタイミング基準及び第1の強度入力基準を満足する瞬間から所定の時間間隔後に減少する減衰曲線に従う(1618)。例えば、図7ZZに示すように、アクティブ化強度閾値7174中の第1の強度閾値成分の減衰は時間7176に始まり、この時間は、入力が第1のタイミング基準及び第1の強度入力基準を満足する時間7124後の所定の時間間隔p3に相当する。
一部の実施形態では、入力は、強度の第1の増大及び強度の第1の増大に続く強度の第2の増大、並びに強度の第1の増大と強度の第2の増大との間の強度の減少を含む連続的なジェスチャであり(例えば、図7AAAでは、入力7178は、入力7178を解放しない状態での、I未満からI超への強度の第1の増大、続くI超からI未満への強度の減少、続くIL未満からI超(及びI超)への強度の第2の増大を含む)、このとき入力は、強度の第1の増大と強度の第2の増大との間はタッチ感知面と接触したままである(1620)。デバイスは、入力の強度の第1の増大の検出に応じて、第2の動作を実行し(例えば、入力7178は、時間7124において第1のタイミング基準及び第1の強度入力基準を満足し、図7Gに示すようにプレビュー領域712を表示することなどの、第2の動作を開始する)、入力の強度の第2の増大の検出に応じて、第1の動作を実行する(例えば、入力7178は、時間7179においてアクティブ化強度閾値7180を満足し、図7G〜図7Iに示すようにメールアプリケーションユーザインターフェース706をブラウザアプリケーションユーザインターフェース710と入れ替えることなどの、第1の動作開始する)。
図16A〜図16Bにおける動作について記載された特定の順序は単なる例示あり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で記載される動作の順序を変えるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1200、1300、1400、及び1500)に関して本明細書に記載される他のプロセスの詳細はまた、図16A〜図16Bに関して上記した方法1600にも、類似の様式で適用可能であることに留意されたい。例えば、方法1600を参照して上記したタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800、900、1000、1100、1150、1200、1300、1400、及び1500)を参照して本明細書に記載されるタッチ入力、ユーザインターフェースオブジェクト、強度閾値、及びアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、これらの詳細は、ここでは繰り返さない。
一部の実施形態によれば、図17は、説明される様々な実施形態の原理に従って構成された、電子デバイス1700の機能ブロック図を示す。デバイス1700の機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せによって、任意選択的に実装される。図17で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書に記載される機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図17に示すように、電子デバイス1700は、1つ以上のユーザインターフェースを表示するように構成されたディスプレイユニット1702と、ユーザの入力を受けるように構成された、タッチ感知面ユニット1704と、タッチ感知面ユニット1704上の接触の強度を検出するように構成された1つ以上のセンサユニット1706と、ディスプレイユニット1702、タッチ感知面ユニット1704、及び1つ以上のセンサユニット1706に結合された、処理ユニット1708と、を含む。一部の実施形態では、処理ユニット1708は、表示可能化ユニット1710、入力評価ユニット1712、ジェスチャレコグナイザユニット1714、及び動作実行ユニット1716を含む。
一部の実施形態では、電子デバイス1700は、長い押圧ジェスチャと深い押圧入力との間の区別を行うように、並びに長い押圧ジェスチャ及び深い押圧入力に応じて個別の動作を実行するように、構成されている。かかる実施形態では、処理ユニット1708は、第1のユーザインターフェースの表示を可能にするように構成され、また処理ユニット1708は、第1のユーザインターフェースの表示を(例えば、表示可能化ユニット1710を用いて)可能にしている間にタッチ感知面ユニット上の入力を(例えば、入力評価ユニット1712を用いて)検出し、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力が第1の所定の時間期間の間第1の強度閾値を満足することを含む強度入力基準を入力が満足するとの判定に従って、第1の動作を(例えば、動作実行ユニット1716を用いて)実行し、及び、入力が第1の所定の時間期間の間第1の強度閾値未満に留まることを含む長い押圧基準を入力が満足するとの判定に従って、第2の動作を(例えば、動作実行ユニット1716を用いて)実行する、ように更に構成されている。これらの実施形態の一部の実装形態では、第1のユーザインターフェースは第1のソフトウェアアプリケーションのユーザインターフェースであり、第1のユーザインターフェースは、(例えば、表示可能化ユニット1710及び/又は動作実行ユニット1716を用いた)プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられた第1のユーザインターフェースオブジェクトを含む、複数のユーザインターフェースオブジェクトを含む。一部の実施形態では、電子デバイス1700は、図8A〜図8Eを参照して上記した方法のいずれかを実行するように構成されている。
一部の実施形態では、処理ユニット1708の入力評価ユニット1712は、入力の第1の部分及び入力の第1の部分に続く入力の第2の部分の検出を含め、タッチ感知面上の入力を検出するように、並びに、タッチ感知面上の入力の第1の部分を検出することに応じて、入力の少なくとも第1の部分に対応するジェスチャレコグナイザの第1のセットを候補ジェスチャレコグナイザとして識別するように、構成されており、ジェスチャレコグナイザの第1のセットは、第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザを含む。更に、処理ユニット1708の動作実行ユニット1716は、タッチ感知面上の入力の第2の部分を検出することに応じて、入力が強度入力基準を満足するとの判定に従って、第1のジェスチャレコグナイザを用いて入力を処理することを含む第1の動作を実行するように、及び、入力が長い押圧基準を満足するとの判定に従って、第2のジェスチャレコグナイザを用いて入力を処理することを含む第2の動作を実行するように、構成されている。
一部の実施形態では、第1のジェスチャレコグナイザは強度に基づくジェスチャレコグナイザであり、第2のジェスチャレコグナイザは長い押圧ジェスチャレコグナイザである。
一部の状況では、入力は、入力の第2の部分に続く入力の第3の部分を含み、また一部の実施形態では、動作実行ユニット1716は、第1のジェスチャレコグナイザを用いて入力の第3の部分を処理するように構成されている。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは、第3のジェスチャレコグナイザを含む。
一部の実施形態では、動作実行ユニット1716は、入力が第2の強度閾値を満足すると判定することに応じて、第1のユーザインターフェースの表示を第2のユーザインターフェースと入れ替えることを含めて、第1のジェスチャレコグナイザを用いて入力を処理することように構成されている。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは第4のジェスチャレコグナイザを含み、動作実行ユニット1716は、入力が第2の強度閾値を満足すると判定することに応じて、第4のジェスチャレコグナイザを用いて入力を処理するように構成されている。
一部の実施形態では、動作実行ユニット1716は、入力の第1の部分の検出に応じて、第3の動作を処理するように構成されている。更に、一部の実施形態では、第3の動作を実行することは、第1のユーザインターフェースの少なくとも一部を第1のユーザインターフェースの他の部分と視覚的に区別することを含む。また、一部のかかる実施形態では、動作実行ユニット1716は、第3の動作を実行することに続いて、入力が強度入力基準を満足するとの判定に従って、第1の動作を実行するように、及び、第3の動作を実行することに続いて、入力が長い押圧基準を満足するとの判定に従って、第2の動作を実行するように、構成されている。
一部の実施形態では、第1の動作を実行することは、プレビュー領域を表示することを含む。
一部の実施形態では、第2の動作を実行することは、メニュービューを表示することを含む。
一部の実施形態では、第1の強度閾値は、入力における複数の接触が第1の強度閾値を満足することに応じて満足される。
一部の実施形態では、第1の強度閾値は、入力における複数の接触により加えられる強度を組み合わせたものが第1の強度閾値を満足することに応じて満足される。
一部の実施形態では、第1の強度閾値は調節可能である。一部のかかる実施形態では、処理ユニット1708は、入力の強度が第1の強度閾値とは異なる第3の強度閾値を満足することに応じてアクティブ化されるように第1のジェスチャレコグナイザを更新するように構成される。
一部の実施形態では、処理ユニットは、入力が強度入力基準を満足せずかつ長い押圧基準を満足しないとの判定に従って、第1の動作及び第2の動作を取り止めるように構成されている。
一部の実施形態では、強度入力基準は、入力がタッチ感知面にわたって所定の距離を超えて移動しないことを含み、また、長い押圧基準は、入力における接触がタッチ感知面にわたって所定の距離を超えて移動しないことを含む。
一部の実施形態では、入力評価ユニットは、第2の入力の第1の部分及び第2の入力の第1の部分に続く第2の入力の第2の部分の検出を含め、タッチ感知面上の第2の入力を検出するように、並びに、タッチ感知面上の第2の入力の第1の部分を検出することに応じて、少なくとも第2の入力の第1の部分に対応するジェスチャレコグナイザの第2のセットを識別するように、構成されており、ジェスチャレコグナイザの第2のセットは、第2のジェスチャレコグナイザを含むが第1のジェスチャレコグナイザは含まない。更に、これらの実施形態では、処理ユニットは、タッチ感知面上の第2の入力の第2の部分を検出することに応じて、第2の入力が第1の所定の時間期間とは異なる持続時間を有する第2の所定の時間期間の間タッチ感知面上に留まることを含む第2の長い押圧基準を、第2の入力が満足するとの判定に従って、第2のジェスチャレコグナイザを用いて第2の入力を処理することを含む。
一部の実施形態では、電子デバイス1700(図17)は、パンジェスチャと深い押圧入力との間の区別を行うように、並びにパンジェスチャ及び深い押圧入力に応じて個別の動作を実行するように、構成されている。かかる実施形態では、処理ユニット1708は、第1のユーザインターフェースの表示を可能にするように構成され、また処理ユニット1708は、第1のユーザインターフェースの表示を(例えば、表示可能化ユニット1710を用いて)可能にしている間にタッチ感知面ユニット上の入力を(例えば、入力評価ユニット1712を用いて)検出し、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力が第1の強度閾値を満足することを含む強度入力基準を入力が満足するとの判定に従って、第1の動作を(例えば、動作実行ユニット1716を用いて)実行し、及び、入力がタッチ感知面にわたって少なくとも所定の距離だけ移動したことを含むパン基準を入力が満足するとの判定に従って、第2の動作を(例えば、動作実行ユニット1716を用いて)実行する、ように更に構成されている。これらの実施形態の一部の実装形態では、第1のユーザインターフェースは第1のソフトウェアアプリケーションのユーザインターフェースであり、第1のユーザインターフェースは、(例えば、表示可能化ユニット1710及び/又は動作実行ユニット1716を用いた)プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられた第1のユーザインターフェースオブジェクトを含む、複数のユーザインターフェースオブジェクトを含む。一部の実施形態では、電子デバイス1700は、図9A〜図9Dを参照して上記した方法のいずれかを実行するように構成されている。
一部の実施形態では、処理ユニット1708の入力評価ユニット1712は、入力の第1の部分及び入力の第1の部分に続く入力の第2の部分の検出を含め、タッチ感知面上の入力を検出するように、並びに、タッチ感知面上の入力の第1の部分を検出することに応じて、入力の少なくとも第1の部分に対応するジェスチャレコグナイザの第1のセットを候補ジェスチャレコグナイザとして識別するように、構成されており、ジェスチャレコグナイザの第1のセットは、第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザを含む。更に、処理ユニット1708の動作実行ユニット1716は、タッチ感知面上の入力の第2の部分を検出することに応じて、入力が強度入力基準を満足するとの判定に従って、第1のジェスチャレコグナイザを用いて入力を処理することを含む第1の動作を実行するように、及び、入力がパン基準を満足するとの判定に従って、第2のジェスチャレコグナイザを用いて入力を処理することを含む第2の動作を実行するように、構成されている。
一部の実施形態では、強度入力基準は、入力がタッチ感知面にわたって少なくとも所定の距離を移動しないことを含む。
一部の実施形態では、第1のジェスチャレコグナイザは強度に基づくジェスチャレコグナイザであり、第2のジェスチャレコグナイザはパンジェスチャレコグナイザである。
一部の状況では、入力は、入力の第2の部分に続く入力の第3の部分を含み、また一部の実施形態では、動作実行ユニット1716は、第1のジェスチャレコグナイザを用いて入力の第3の部分を処理するように構成されている。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは、第3のジェスチャレコグナイザを含む。
一部の実施形態では、動作実行ユニット1716は、入力が第2の強度閾値を満足すると判定することに応じて、第1のユーザインターフェースの表示を第2のユーザインターフェースと入れ替えることを含めて、第1のジェスチャレコグナイザを用いて入力を処理することように構成されている。
一部の実施形態では、動作実行ユニット1716は、入力の第1の部分の検出に応じて、第3の動作を処理するように構成されている。更に、一部のかかる実施形態では、第3の動作を実行することは、第1のユーザインターフェースの少なくとも一部を第1のユーザインターフェースの他の部分と視覚的に区別することを含む。また、一部のかかる実施形態では、動作実行ユニット1716は、第3の動作を実行することに続いて、入力が強度入力基準を満足するとの判定に従って、第1の動作を実行するように、及び、第3の動作を実行することに続いて、入力がパン基準を満足するとの判定に従って、第2の動作を実行するように、構成されている。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは第4のジェスチャレコグナイザを含み、動作実行ユニット1716は、入力が第2の強度閾値を満足すると判定することに応じて、第4のジェスチャレコグナイザを用いて入力を処理するように構成されている。
一部の実施形態では、第1の動作を実行することは、プレビュー領域を表示することを含む。
一部の実施形態では、第2の動作を実行することは、第1のユーザインターフェースの少なくとも一部をスクロールすることを含む。
一部の実施形態では、第3の動作の実行に続いて第2の動作を実行することは、第3の動作を無効にすることを含む。
一部の実施形態では、第1の強度閾値は調節可能である。一部のかかる実施形態では、処理ユニット1708は、入力の強度が第1の強度閾値とは異なる第3の強度閾値を満足することに応じてアクティブ化されるように第1のジェスチャレコグナイザを更新するように構成される。
一部の実施形態では、処理ユニット1708は、第1の動作の実行を開始することに続いて、第2の動作の実行を取り止めるように構成されている。同様に、一部の実施形態では、処理ユニット1708は、第2の動作の実行を開始することに続いて、第1の動作の実行を取り止めるように構成されている。
一部の実施形態では、電子デバイス1700(図17)は、タップジェスチャ入力と深い押圧入力との間の区別を行うように、並びにタップジェスチャ及び深い押圧入力に応じて個別の動作を実行するように、構成されている。かかる実施形態では、処理ユニット1708は、第1のユーザインターフェースの表示を可能にするように構成され、また処理ユニット1708は、第1のユーザインターフェースの表示を(例えば、表示可能化ユニット1710を用いて)可能にしている間にタッチ感知面ユニット上の入力を(例えば、入力評価ユニット1712を用いて)検出し、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力が第1の強度閾値を満足しかつ入力が第1の所定の時間期間の間タッチ感知面上に留まることを含む強度入力基準を入力が満足するとの判定に従って、第1の動作を(例えば、動作実行ユニット1716を用いて)実行し、及び、入力が第1の所定の時間期間の間タッチ感知面上に留まるのをやめることを含む長い押圧基準を入力が満足するとの判定に従って、第2の動作を(例えば、動作実行ユニット1716を用いて)実行する、ように更に構成されている。これらの実施形態の一部の実装形態では、第1のユーザインターフェースは第1のソフトウェアアプリケーションのユーザインターフェースであり、第1のユーザインターフェースは、(例えば、表示可能化ユニット1710及び/又は動作実行ユニット1716を用いた)プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられた第1のユーザインターフェースオブジェクトを含む、複数のユーザインターフェースオブジェクトを含む。一部の実施形態では、電子デバイス1700は、図10A〜図10Dを参照して上記した方法のいずれかを実行するように構成されている。
一部の実施形態では、処理ユニット1708の入力評価ユニット1712は、入力の第1の部分及び入力の第1の部分に続く入力の第2の部分の検出を含め、タッチ感知面上の入力を検出するように、並びに、タッチ感知面上の入力の第1の部分を検出することに応じて、入力の少なくとも第1の部分に対応するジェスチャレコグナイザの第1のセットを候補ジェスチャレコグナイザとして識別するように、構成されており、ジェスチャレコグナイザの第1のセットは、第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザを含む。更に、処理ユニット1708の動作実行ユニット1716は、タッチ感知面上の入力の第2の部分を検出することに応じて、入力が強度入力基準を満足するとの判定に従って、第1のジェスチャレコグナイザを用いて入力を処理することを含む第1の動作を実行するように、及び、入力がタップ基準を満足するとの判定に従って、第2のジェスチャレコグナイザを用いて入力を処理することを含む第2の動作を実行するように、構成されている。
一部の実施形態では、第1のジェスチャレコグナイザは強度に基づくジェスチャレコグナイザであり、第2のジェスチャレコグナイザはタップジェスチャレコグナイザである。
一部の状況では、入力は、入力の第2の部分に続く入力の第3の部分を含み、また一部の実施形態では、動作実行ユニット1716は、第1のジェスチャレコグナイザを用いて入力の第3の部分を処理するように構成されている。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは、第3のジェスチャレコグナイザを含む。
一部の実施形態では、動作実行ユニット1716は、入力が第2の強度閾値を満足すると判定することに応じて、第1のユーザインターフェースの表示を第2のユーザインターフェースと入れ替えることを含めて、第1のジェスチャレコグナイザを用いて入力を処理することように構成されている。
一部の実施形態では、ジェスチャレコグナイザの第1のセットは第4のジェスチャレコグナイザを含み、動作実行ユニット1716は、入力が第2の強度閾値を満足すると判定することに応じて、第4のジェスチャレコグナイザを用いて入力を処理するように構成されている。
一部の実施形態では、動作実行ユニット1716は、入力の第1の部分の検出に応じて、第3の動作を処理するように構成されている。更に、一部のかかる実施形態では、第3の動作を実行することは、第1のユーザインターフェースの少なくとも一部を第1のユーザインターフェースの他の部分と視覚的に区別することを含む。また、一部のかかる実施形態では、動作実行ユニット1716は、第3の動作を実行することに続いて、入力が強度入力基準を満足するとの判定に従って、第1の動作を実行するように、及び、第3の動作を実行することに続いて、入力がタップ基準を満足するとの判定に従って、第2の動作を実行するように、構成されている。また、一部のかかる実施形態では、入力評価ユニット1710は、第1の所定の時間期間の間に第3の動作の実行を開始するように構成されている。
一部の実施形態では、第1の動作を実行することは、プレビュー領域を表示することを含む。
一部の実施形態では、第2の動作を実行することは、第1のユーザインターフェースの表示をタッチ感知面上の入力の場所に対応するソフトウェアアプリケーションの第3のユーザインターフェースと入れ替えることを含む。
一部の実施形態では、第1の強度閾値は調節可能である。更に、一部のかかる実施形態では、処理ユニット1708は、入力の強度が第1の強度閾値とは異なる第3の強度閾値を満足することに応じてアクティブ化されるように第1のジェスチャレコグナイザを更新するように構成される。
一部の実施形態では、処理ユニット1708は、入力が強度入力基準を満足するか否かに関係なく、入力がタップ基準を満足するとの判定に従って、第2の動作を実行するように構成される。
一部の実施形態では、処理ユニット1708は、第1のユーザインターフェースの表示中に入力を検出することに応じて、入力が第1の所定の時間期間の間タッチ感知面上に留まった後、入力がタッチ感知面上で検出されなくなり、かつ入力が強度入力基準を満足しない、との判定に従って、第2の動作を実行するように構成される。更に、かかる実施形態では、処理ユニット1708は、第1のユーザインターフェースの表示中に入力を検出することに応じて、入力が第1の所定の時間期間の間タッチ感知面上に留まった後、入力がタッチ感知面上で検出されなくなり、かつ入力が強度入力基準を満足する、との判定に従って、第2の動作の実行を取り止めるように構成される。
上述の情報処理方法での動作は、汎用プロセッサ(例えば、図1A及び図3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。
一部の実施形態によれば、図18は、説明される様々な実施形態の原理に従って構成された、電子デバイス1800の機能ブロック図を示す。デバイス1800の機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せによって、任意選択的に実装される。図18で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書に記載される機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図18に示すように、電子デバイス1800は、1つ以上のユーザインターフェースを表示するように構成されたディスプレイユニット1802と、ユーザの入力を受けるように構成された、タッチ感知面ユニット1804と、タッチ感知面ユニット1804上の接触の強度を検出するように構成された1つ以上のセンサユニット1806と、ディスプレイユニット1802、タッチ感知面ユニット1804、及び1つ以上のセンサユニット1806に結合された、処理ユニット1808と、を含む。一部の実施形態では、処理ユニット1808は、表示可能化ユニット1810、検出ユニット1812、及びプレビュー動作ユニット1814を含む。
処理ユニット1808は、第1のソフトウェアアプリケーションの第1のユーザインターフェースであって、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクトは、プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられている、第1のユーザインターフェースの表示を(例えば、表示可能化ユニット1810を用いて)可能にし、ディスプレイユニット1802上でフォーカスセレクタが複数のユーザインターフェースオブジェクト中の第1のユーザインターフェースオブジェクト上にある間に、接触による入力の第1の部分を(例えば、検出ユニット1812を用いて)検出し、入力の第1の部分の検出に応じて及び入力が第1の強度閾値を満足することを含むリビール基準を入力の第1の部分が満足するとの判定に従って、アプリケーション非依存の所定の命令セットにプレビューコンテンツを提供することを含めて、(例えば、プロビジョニング動作ユニット1814を用いた)プレビュー動作のためのアプリケーション非依存の所定の命令セットを実行する、ように構成されている。アプリケーション非依存の所定の命令セットを実行することによって実行されるプレビュー動作は、第1のユーザインターフェース内の第1のユーザインターフェースオブジェクトを視覚的に区別することと、第1のユーザインターフェース内の第1のユーザインターフェースオブジェクトの視覚的区別の開始後に、入力の第1の部分に続く入力の第2の部分を受信すること、及び、入力が第2の強度閾値を満足することを含むプレビュー基準を入力の第2の部分が満足するとの判定に従って、第1のユーザインターフェース上に重ねられたプレビュー領域の表示を可能にすることと、を含む。プレビュー領域はプレビューコンテンツを含む。
一部の実施形態では、プレビュー動作の開始後は、プレビュー動作は、第1のソフトウェアアプリケーションから独立して実行される。
一部の実施形態では、プレビュー動作は、接触の強度に従ってプレビュー領域を更新することを含む。
一部の実施形態では、プレビュー動作は、入力の第2の部分の検出に応じて、入力の第2の部分がプレビュー領域消滅基準を満たすとの判定に従って、プレビュー領域の表示を終了し第1のユーザインターフェースの表示を維持することを含む。
一部の実施形態では、プレビュー動作は、入力の第2の部分の検出後に、接触による入力の第3の部分を検出することと、接触による入力の第3の部分の検出に応じて、入力の第3の部分がユーザインターフェース入れ替え基準を満たすとの判定に従って、第1のユーザインターフェースの表示を第1のユーザインターフェースとは異なる第2のユーザインターフェースと入れ替えることと、を含む。
一部の実施形態では、プレビュー動作は、第2のユーザインターフェースを生成するために、アプリケーション非依存の所定の命令セットから第1のユーザインターフェースオブジェクトに関する動作を示す情報を送信すること、及び、アプリケーション非依存の所定の命令セットにおいて第2のユーザインターフェースを受信することを含む。プレビューコンテンツは、第2のユーザインターフェースの少なくとも一部を含む。
一部の実施形態では、プレビュー動作は、第1のソフトウェアアプリケーションにおいて、第1のユーザインターフェースオブジェクトに関する動作を示す情報を受信すること、第2のユーザインターフェースを生成すること、及び第2のユーザインターフェースをアプリケーション非依存の所定の命令セットに送信することを含む。
処理ユニット1808は、第1のソフトウェアアプリケーションの第1のユーザインターフェースであって、第1のユーザインターフェースは複数のユーザインターフェースオブジェクトを含み、複数のユーザインターフェースオブジェクトのうちの第1のユーザインターフェースオブジェクトは、プレビュー動作のためのアプリケーション非依存の所定の命令セットに関連付けられている、第1のユーザインターフェースの表示を(例えば、表示可能化ユニット1810を用いて)可能にし、ディスプレイユニット1802上でフォーカスセレクタが複数のユーザインターフェースオブジェクト中の第1のユーザインターフェースオブジェクト上にある間に、接触による入力の第1の部分を(例えば、検出ユニット1812を用いて)検出し、入力の第1の部分の検出に応じて及び入力の第1の部分がプレビュー基準を満たすとの判定に従って、プレビュー動作のためのアプリケーション非依存の所定の命令セットを(例えば、プレビュー動作ユニット1814を用いて)実行する、ように構成されている。アプリケーション非依存の所定の命令セットを実行することによって実行されるプレビュー動作は、第1のユーザインターフェース上に重ねられたプレビュー領域の表示を可能にすることと、入力の第1の部分の検出後に入力の第2の部分を検出することと、接触による入力の第2の部分の検出に応じて、入力の第2の部分がユーザインターフェース入れ替え基準を満たすとの判定に従って、第1のユーザインターフェースの表示を第1のユーザインターフェースとは異なる第2のユーザインターフェースと入れ替えることと、を含む。
一部の実施形態では、プレビュー動作の開始後は、プレビュー動作は、第1のソフトウェアアプリケーションから独立して実行される。
一部の実施形態では、第1のユーザインターフェースの表示を第2のユーザインターフェースと入れ替えることに続いて検出されたタッチ感知面ユニット1804上の入力は、第1のソフトウェアアプリケーションを用いて処理される。
一部の実施形態によれば、図19は、説明される様々な実施形態の原理に従って構成された、電子デバイス1900の機能ブロック図を示す。デバイス1900の機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せによって、任意選択的に実装される。図19で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書に記載される機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図19に示すように、電子デバイス1900は、ユーザインターフェースを表示するように構成されたディスプレイユニット1902と、ユーザの入力を受けるように構成された、タッチ感知面ユニット1904と、タッチ感知面ユニット1904上の接触の強度を検出するように構成された1つ以上のセンサユニット1906と、ディスプレイユニット1902、タッチ感知面ユニット1904、及び1つ以上のセンサユニット1906に結合された、処理ユニット1908と、を含む。一部の実施形態では、処理ユニット1908は、表示可能化ユニット1910、検出ユニット1912、送信ユニット1914、受信ユニット1916、及び調節ユニット1918を含む。
処理ユニット1908は、ディスプレイユニット1902上でのソフトウェアアプリケーションのユーザインターフェースの表示を(例えば、表示可能化ユニット1910を用いて)可能にする、ディスプレイユニット1902上でのソフトウェアアプリケーションのユーザインターフェースの表示を可能にしている間に、ソフトウェアアプリケーションのユーザインターフェースに対応する場所におけるタッチ感知面ユニット1904上の入力を(例えば、検出ユニット1912を用いて)検出する、及び、入力の検出に応じて、アプリケーション非依存の命令セットからソフトウェアアプリケーションに入力に対応する強度情報を(例えば、送信ユニット1914を用いて)送るように、構成されている。強度情報は、1つ以上のセンサに割り当てられた基準強度、及び検出された入力の強度に対応する特性強度を含む。
一部の実施形態では、特性強度は、感度値によって更に調節される。
一部の実施形態では、処理ユニット1908は、ディスプレイユニット1902上での、複数の強度感度設定の間でそれぞれの強度感度設定を選択するための感度コントロールの表示を(例えば、表示可能化ユニット1910を用いて)可能にする、感度コントロールの表示を可能にしている間に、複数の強度感度設定のうちのそれぞれの強度感度設定の選択に対応するユーザ入力を(例えば、受信ユニット1916を用いて)受信する、及び、それぞれの強度感度設定の選択に対応するユーザ入力を受信することに応じて、複数の続く入力に関する特性強度値をユーザが選択したそれぞれの強度感度設定に対応するそれぞれの感度値によって(例えば、調節ユニット1918を用いて)調節するように、更に構成されている。
一部の実施形態では、入力の特性強度は、基準強度に基づいて正規化される正規化された強度値である。
一部の実施形態では、強度情報は、強度に基づく基準と強度に基づかない基準の組合せに基づく1つ以上のヒューリスティックによって判定される強度状態情報を含む。
一部の実施形態では、強度情報は複数の異なる利用可能な状態値を有する強度状態情報を含み、強度状態間の遷移が、オペレーティングシステム駆動ユーザ対話をトリガするために、オペレーティングシステムの全体にわたって使用される。
一部の実施形態では、強度状態情報は、現在の強度状態がジェスチャレコグナイザに関する強度状態要件に適合するか否かに関するデバイスからの指示に基づいて提供される。
一部の実施形態では、入力の特性強度は、タッチイベントに対応する接触の特性強度を各々含む1つ以上のタッチイベントを介して提供される。
一部の実施形態によれば、図20は、説明される様々な実施形態の原理に従って構成された、電子デバイス2000の機能ブロック図を示す。デバイス2000の機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せによって、任意選択的に実装される。図20で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書に記載される機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図20に示すように、電子デバイス2000は、ユーザインターフェースを表示するように構成されたディスプレイユニット2002と、ユーザの入力を受けるように構成された、タッチ感知面ユニット2004と、タッチ感知面ユニット2004上の接触の強度を検出するように構成された1つ以上のセンサユニット2006と、ディスプレイユニット2002、タッチ感知面ユニット2004、及び1つ以上のセンサユニット2006に結合された、処理ユニット2008と、を含む。一部の実施形態では、処理ユニット2008は、表示可能化ユニット2010、検出ユニット2012、提供ユニット2014、更新ユニット2016、及び開始ユニット2018を含む。
処理ユニット2008は、ディスプレイユニット2002上でのソフトウェアアプリケーションの第1のユーザインターフェースの表示を(例えば、表示可能化ユニット2010を用いて)可能にする、ソフトウェアアプリケーションの第1のユーザインターフェースの表示を可能にしている間に、タッチ感知面ユニット2004上の入力を(例えば、検出ユニット2012を用いて)検出する、並びに、入力の検出中に、入力の強度の変化の検出に応じて、アプリケーション非依存の命令セットからソフトウェアアプリケーションに入力の強度の変化を表す第1の進度インジケータの値を(例えば、提供ユニット2014を用いて)提供する、並びに、アプリケーション非依存の命令セットとは異なるソフトウェアアプリケーション中の命令セット及び第1の進度インジケータの値に従って、第1のユーザインターフェースを(例えば、更新ユニット2016を用いて)更新すること、を含む。
一部の実施形態では、第1の進度インジケータの値は、第1の最初の状態と第1の最終状態との間の入力の状態を示す正規化値である。
一部の実施形態では、第1の最初の状態及び第1の最終状態は、ソフトウェアアプリケーションによって指定される。
一部の実施形態では、処理ユニット2008は、入力の検出中に、第1の最終状態を超える入力の強度の変化の検出に応じて、アプリケーション非依存の命令セットからソフトウェアアプリケーションに入力の変化を表す第2の進度インジケータの値を(例えば、提供ユニット2014を用いて)提供するように構成されており、この場合第2の進度インジケータの値は、第2の最初の状態と第2の最終状態との間の入力の状態を示す正規化値であり、処理ユニット2008はまた、アプリケーション非依存の命令セットとは異なるソフトウェアアプリケーション中の命令セット及び第2の進度インジケータの値に従って、第1のユーザインターフェースを(例えば、更新ユニット2016を用いて)更新するように構成されている。
一部の実施形態では、異なる状態間の進度は、強度に基づく基準と強度に基づかない基準の組合せに基づく1つ以上のヒューリスティックによって判定される。
一部の実施形態では、これらの状態は、デバイスのオペレーティングシステムによって提供される状態値のセットから選択され、これらの状態間の遷移が、オペレーティングシステム駆動ユーザ対話をトリガするために、オペレーティングシステムの全体にわたって使用される。
一部の実施形態では、ソフトウェアアプリケーション中の命令セット及び第2の進度インジケータの値に従って第1のユーザインターフェースを更新することは、第1のユーザインターフェースを第2のユーザインターフェースと入れ替えることを含む。
一部の実施形態では、ソフトウェアアプリケーション中の命令セットは、入力の強度の変化を図式的に表すカスタマイズされたアニメーションを提供するように構成される。
一部の実施形態では、処理ユニット2008は、入力の検出中に、入力が第1の強度基準を満足することを検出することに応じて、第1の進度インジケータの値が入力の強度の変化を表すように、(例えば、開始ユニット2018を用いて)第1の進度インジケータを開始するように構成されている。
図21は、一部の実施形態による、電子デバイスの機能ブロック図である。
一部の実施形態によれば、図21は、説明される様々な実施形態の原理に従って構成された、電子デバイス2100の機能ブロック図を示す。デバイス2100の機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せによって、任意選択的に実装される。図21で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書に記載される機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図21に示すように、電子デバイス2100は、ユーザインターフェースを表示するように構成されたディスプレイユニット2102と、接触を検出するように構成されたタッチ感知面ユニット2104と、タッチ感知面ユニット2104との接触の強度を検出するように構成された1つ以上のセンサユニット2106と、ディスプレイユニット2102、タッチ感知面ユニット2104、及び1つ以上のセンサユニット2106に結合された処理ユニット2108と、を含む。一部の実施形態では、処理ユニット2108は、表示可能化ユニット2110、検出ユニット2112、第1の動作ユニット2114、時間期間再開ユニット2116、基準強度リセットユニット2118、取り止めユニット2120、第2の動作ユニット2122、及び第3の動作ユニット2124を含む。
処理ユニット2108は、ディスプレイユニット2102上での、オペレーティングシステム内で実行される第1の第三者アプリケーションのユーザインターフェースの表示を(例えば、表示可能化ユニット2110を用いて)可能にするように構成されている。デバイスの機能は、オペレーティングシステムのオペレーティングシステムフレームワークを通して、第1の第三者アプリケーションに曝される。オペレーティングシステムフレームワークは、デバイスが認識できる複数のジェスチャクラスを定義する。第1のジェスチャクラスは、第1のジェスチャ認識基準が満たされるときに、タッチ感知面ユニット2104上で検出された入力を第1のジェスチャとして認識するための、第1のジェスチャ認識基準に関連付けられている。第1の第三者アプリケーションは、第1の動作に関して、ユーザインターフェースの第1の部分を、第1のジェスチャクラスからの第1のジェスチャに関連付けている。第1の第三者アプリケーションは、第1の動作に関してユーザインターフェースの第1の部分に関連付けられた第1のジェスチャに関する第1の強度基準を指定している。処理ユニット2108は、ディスプレイユニット2102上で第1の第三者アプリケーションのユーザインターフェースの表示を可能にしている間に、第1の第三者アプリケーションのユーザインターフェースの第1の部分に対応する場所におけるタッチ感知面2104上の入力を(例えば、検出ユニット2112を使用して)検出する、並びに、入力の検出に応じて、入力が第1のジェスチャ認識基準を満たすとの及び入力が第1の第三者アプリケーションによって指定された第1の強度基準を満たすとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第1の動作を(例えば、第1の動作実行ユニット2114を用いて)実行する、並びに、入力が第1のジェスチャ認識基準を満たすが第1の第三者アプリケーションによって指定された第1の強度基準は満たさないとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第1の動作の実行を(例えば、取り止めユニット2116を用いて)取り止めるように、構成されている。
一部の実施形態では、第1の第三者アプリケーションは、第2の動作に関して、ユーザインターフェースの第1の部分を第1のジェスチャクラスからの第1のジェスチャに関連付けており、また、第1の第三者アプリケーションは、第2の動作に関して、ユーザインターフェースの第1の部分に関連付けられた第1のジェスチャに関する第1の強度基準を指定していない。処理ユニット2108は、入力の検出に応じて、入力が第1のジェスチャ認識基準を満たすが第1の第三者アプリケーションによって指定された第1の強度基準は満たさないとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分と関連付けられた第2の動作を(例えば、第2の動作実行ユニット2118を用いて)実行する、並びに、入力が第1のジェスチャ認識基準を満たすとの及び入力が第1の第三者アプリケーションによって指定された第1の強度基準を満たすとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第2の動作の実行を(例えば、取り止めユニット2116を用いて)取り止めるように、構成されている。
一部の実施形態では、第2のジェスチャクラスは、第2のジェスチャ認識基準が満たされるときに、タッチ感知面ユニット2104上で検出された入力を第2のジェスチャとして認識するための、第2のジェスチャ認識基準に関連付けられている。第1の第三者アプリケーションは、第3の動作に関して、ユーザインターフェースの第1の部分を、第2のジェスチャクラスからの第2のジェスチャに関連付けている。第1の第三者アプリケーションは、第3の動作に関してユーザインターフェースの第1の部分に関連付けられた第2のジェスチャに関する第2の強度基準を指定している。処理ユニット2108は、入力の検出に応じて、入力が第2のジェスチャ認識基準を満たすとの及び入力が第1の第三者アプリケーションによって指定された第2の強度基準を満たすとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第3の動作を(例えば、第3の動作実行ユニット2120を用いて)実行する、並びに、入力が第2のジェスチャ認識基準を満たすが第1の第三者アプリケーションによって指定された第2の強度基準は満たさないとの判定に従って、第1の第三者アプリケーションのユーザインターフェースの第1の部分に関連付けられた第3の動作の実行を(例えば、取り止めユニット2116を用いて)取り止めるように、構成されている。
一部の実施形態では、第1の強度基準は強度閾値を含む。
一部の実施形態では、強度閾値は所定の閾値のセットから選択される。
一部の実施形態では、強度閾値は、デバイス(例えば、デバイス2100又はセンサユニット2106)が検出可能な値の範囲から選択される。
一部の実施形態では、処理ユニット2108は、ディスプレイユニット2102上での、オペレーティングシステム内で実行されかつ第1の第三者アプリケーションとは異なる第2の第三者アプリケーションのユーザインターフェースの表示を(例えば、表示可能化ユニット2110を用いて)可能にするように構成されている。第2の第三者アプリケーションは、第1の動作に関して、第2の第三者アプリケーションのユーザインターフェースの第2の部分を、第1のジェスチャクラスからの第1のジェスチャに関連付けている。第2の第三者アプリケーションは、第1の動作に関してユーザインターフェースの第2の部分に関連付けられた第1のジェスチャに関する第3の強度基準を指定している。第3の強度基準は、第1の強度基準とは異なる。処理ユニット2108は、ディスプレイユニット2102上での第2の第三者アプリケーションのユーザインターフェースの表示を可能にしている間に、第2の第三者アプリケーションのユーザインターフェースの第2の部分に対応する場所におけるタッチ感知面ユニット2104上の入力を(例えば、検出ユニット2112を使用して)検出する、並びに、第2の第三者アプリケーションのユーザインターフェースの第2の部分に対応する場所における入力の検出に応じて、第2の第三者アプリケーションのユーザインターフェースの第2の部分に対応する場所における入力が第1のジェスチャ認識基準を満たすとの及び入力が第2の第三者アプリケーションによって指定された第3の強度基準を満たすとの判定に従って、第2の第三者アプリケーションのユーザインターフェースの第2の部分に関連付けられた第1の動作を(例えば、第1の動作ユニット2114を用いて)実行する、並びに、第2の第三者アプリケーションのユーザインターフェースのこの部分に対応する場所における入力が第1のジェスチャ認識基準を満たすが第2の第三者アプリケーションによって指定された第3の強度基準は満たさないとの判定に従って、第2の第三者アプリケーションのユーザインターフェースの第2の部分に関連付けられた第1の動作の実行を(例えば、取り止めユニット2116を使用して)取り止めるように、構成されている。
一部の実施形態によれば、図22は、説明される様々な実施形態の原理に従って構成された、電子デバイス2200の機能ブロック図を示す。デバイス2200の機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せによって、任意選択的に実装される。図22で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書に記載される機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図22に示すように、電子デバイス2200は、ユーザインターフェースを表示するように構成されたディスプレイユニット2202と、接触を検出するように構成されたタッチ感知面ユニット2204と、タッチ感知面ユニット2204との接触の強度を検出するように構成された1つ以上のセンサユニット2206と、ディスプレイユニット2202、タッチ感知面ユニット2204、及び1つ以上のセンサユニット2206に結合された処理ユニット2208と、を含む。一部の実施形態では、処理ユニット2208は、表示可能化ユニット2210、検出ユニット2212、第1の動作ユニット2214、時間期間再開ユニット2216、基準強度リセットユニット2218、取り止めユニット2220、第2の動作ユニット2222、及び第3の動作ユニット2224を含む。
処理ユニット2208は、ディスプレイユニット2202上でのユーザインターフェースの表示を(例えば、表示可能化ユニット2210を用いて)可能にする、ユーザインターフェースの表示を可能にしている間に、タッチ感知面ユニット2204上の入力を(例えば、検出ユニット2212を用いて)検出する、並びに、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力の検出中に、入力が第1のタイミング基準及び第1の強度入力基準を満足するとの判定に従って、第1の動作を(例えば、第1の動作ユニット2214を使用して)を実行するように、構成されている。第1のタイミング基準は、第1の時間期間が経過する間、入力がタッチ感知面ユニット2204上に留まることを要求する。第1の強度入力基準は、入力が第1の時間期間の終わりに又はこれに続いて第1の強度閾値を満足することを要求する。
一部の実施形態では、第1の時間期間は、タッチ感知面ユニット2204上の入力の検出に応じて始まる。
一部の実施形態では、処理ユニット2208は、入力の検出中に、入力の強度が基準強度閾値を下回って減少したとの判定に従って、第1の時間期間を(例えば、時間期間再開ユニット2216を使用して)再開するように構成されている。
一部の実施形態では、処理ユニット2208は、入力の検出中に、入力の強度が基準強度閾値を下回って減少したとの判定に従って、基準強度閾値を(例えば、基準強度リセットユニット2218を使用して)リセットするように構成されている。
一部の実施形態では、処理ユニット2208は、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力が第1のタイミング基準及び/又は第1の強度入力基準を満足しないとの判定に従って、第1の動作を(例えば、取り止めユニット2220を使用して)取り止めるように構成されている。
一部の実施形態では、処理ユニット2208は、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力が第2のタイミング基準及び第2の強度入力基準を満足するとの判定に従って、第1の動作とは異なる第2の動作を(例えば、第2の動作ユニット2222を使用して)取り止めるように構成されている。第2のタイミング基準は、第2の時間期間が経過する間、入力がタッチ感知面ユニット2204上に留まることを要求する。第2の強度入力基準は、第2の時間期間の終わりに又はこれに続いて入力が第1の強度閾値とは異なる第2の強度閾値を満足することを要求する。
一部の実施形態では、処理ユニット2208は、入力の検出に応じて及び入力が第1のタイミング基準及び第1の入力基準を満足するとの判定に従って、第1のジェスチャレコグナイザを用いて入力を処理することを含む第1の動作を(例えば、第1の動作ユニット2214を使用して)実行する、並びに、入力の検出に応じて及び入力が第2のタイミング基準及び第2の強度入力基準を満足するとの判定に従って、第2のジェスチャレコグナイザを用いて入力を処理することを含む第2の動作を(例えば、第2の動作ユニット2222を使用して)実行するように、構成されている。
一部の実施形態では、処理ユニット2208は、入力の終わりを(例えば、検出ユニット2212を使用して)検出する、並びに、入力の終わりの検出に応じて、入力が第1のタイミング基準とは異なる第3のタイミング基準を満足するとの判定に従って、第1の動作とは異なる第3の動作を(例えば、第3の動作ユニット2224を使用して)実行するように、構成されている。
一部の実施形態では、処理ユニット2208は、入力の終わりの検出に応じて、入力が第3のタイミング基準又は第1のタイミング基準を満足しないとの判定に従って、どのような動作の実行も(例えば、取り止めユニット2220を使用して)取り止めるように構成されている。
一部の実施形態によれば、図23は、説明される様々な実施形態の原理に従って構成された、電子デバイス2300の機能ブロック図を示す。デバイス2300の機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せによって、任意選択的に実装される。図23で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書に記載される機能ブロックのあらゆる可能な組合せ若しくは分割、又は更なる定義を任意選択的に支持する。
図23に示すように、電子デバイス2300は、ユーザインターフェースを表示するように構成されたディスプレイユニット2302と、接触を検出するように構成されたタッチ感知面ユニット2304と、タッチ感知面ユニット2304との接触の強度を検出するように構成された1つ以上のセンサユニット2306と、ディスプレイユニット2302、タッチ感知面ユニット2304、及び1つ以上のセンサユニット2306に結合された処理ユニット2308と、を含む。一部の実施形態では、処理ユニット2308は、表示可能化ユニット2310、検出ユニット2312、第1の動作ユニット2314、及び第2の動作ユニット2316を含む。
処理ユニット2308は、ディスプレイユニット2302上でのユーザインターフェースの表示を(例えば、表示可能化ユニット2310を用いて)可能にする、ユーザインターフェースの表示を可能にしている間に、タッチ感知面ユニット2304上の入力を(例えば、検出ユニット2312を用いて)検出する、並びに、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力の検出中に、入力がアクティブ化強度閾値を満足するとの判定に従って、第1の動作を(例えば、第1の動作ユニット2314を使用して)を実行するように、構成されている。アクティブ化強度閾値は、第1の強度値から時間とともに減少する第1の強度閾値成分を含む。
一部の実施形態では、アクティブ化強度閾値は、入力の強度に遅れて従う第2の強度閾値成分を含む。
一部の実施形態では、アクティブ化強度閾値は、第1の強度閾値成分と第2の強度閾値成分の和である。
一部の実施形態では、第1の強度閾値成分は、入力が検出される瞬間から所定の時間間隔後に減少する。
一部の実施形態では、第1の強度閾値成分が基準強度閾値を下回っていないとの判定に従って、第1の強度閾値成分は所定の時間間隔後に減少する減衰曲線に従い、また、第1の強度閾値成分が基準強度閾値を下回っているとの判定に従って、第1の強度閾値成分は、所定の時間間隔を参照せずに決定される時間において始まる減少する減衰曲線に従う。
一部の実施形態では、処理ユニット2308は、第1のユーザインターフェースの表示を可能にしている間に入力を検出することに応じて、入力の検出中に、入力が第1のタイミング基準及び第1の強度入力基準を満足するとの判定に従って、第2の動作を(例えば、第2の動作ユニット2316を使用して)実行するように構成されている。第1のタイミング基準は、第1の時間期間が経過する間、入力がタッチ感知面ユニット2304上に留まることを要求する。第1の強度入力基準は、入力が第1の時間期間の終わりに又はこれに続いて第1の強度閾値を満足することを要求する。
一部の実施形態では、第1の強度閾値成分は、入力が第1のタイミング基準及び第1の強度入力基準を満足する瞬間から所定の時間間隔後に減少する減衰曲線に従う。
一部の実施形態では、入力は、強度の第1の増大及び強度の第1の増大に続く強度の第2の増大、並びに強度の第1の増大と強度の第2の増大との間の強度の減少を含む、連続的なジェスチャであり、この場合、入力は、強度の第1の増大と強度の第2の増大との間はタッチ感知面ユニット2304と接触したままである、処理ユニット2308は、入力の強度の第1の増大の検出に応じて、第2の動作を(例えば、第2の動作ユニット2316を使用して)実行する、及び、入力の強度の第2の増大の検出に応じて、第1の動作を(例えば、第1の動作ユニット2314を使用して)実行するように、構成されている。
上述の情報処理方法での動作は、汎用プロセッサ(例えば、図1A及び図3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。
図8A〜図8E、図9A〜図9D、図10A〜図10D、図11A〜図11D、図12A〜図12B、図13A〜図13B、図14A〜図14C、図15A〜図15B、及び図16A〜図16Bを参照して上述された動作は、任意選択的に、図1A〜図1Bに示される構成要素によって実施される。例えば、強度検出動作804、第1の動作810、及び第2の動作812は、イベントソート部170、イベントレコグナイザ180、及びイベント処理部190によって、任意選択的に実施される。例えば、入力検出動作1410、第1の動作実行動作1412、及び第2の動作実行動作1414は、イベントソート部170、イベントレコグナイザ180、及びイベント処理部190によって、任意選択的に実施される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配信する。アプリケーション136−1の対応するイベントレコグナイザ180は、そのイベント情報を対応するイベント定義186に比較し、タッチ感知面上の第1の場所での第1の接触(又は、デバイスの回転)が、ユーザインターフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、所定のイベント又はサブイベントに対応するか否かを判定する。対応する所定のイベント又はサブイベントが検出されると、イベントレコグナイザ180は、イベント又はサブイベントの検出に関連するイベント処理部190をアクティブ化する。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を、任意選択的に用いるか又は呼び出す。一部の実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が図1A〜図1Bに示されるコンポーネントに基づいてどのように実施されるかは明らかであるだろう。
上述の説明は、説明の目的上、特定の実施形態を参照して説明されている。しかしながら、上記の例示的な論考は、網羅的であること、又は本発明を、開示される厳密な形態に限定することを意図するものではない。上記の教示を鑑みて、多くの修正及び変形が可能である。本発明の原理及びその実際的な応用を最良の形で説明し、それによって他の当業者が、想到される特定の用途に好適な様々な改良で本発明及び様々な実施形態を最良の形で使用することを可能とするために、これらの実施形態を選択し説明した。
付録A
iOS向けイベントハンドリングガイド
開発者用
目次
iOS内のイベントについて 7
概要 7
UIKitはアプリがジェスチャを検出することを容易にする 7
イベントはオブジェクトを処理するためにオブジェクトを探す特定の経路に沿って移動する 8
UIEventはタッチ、シェイクモーション、又はリモートコントロールイベントをカプセル化する 8
アプリはユーザがそのビューにタッチするとマルチタッチイベントを受け取る 8
アプリはユーザが自分のデバイスを動かすとモーションイベントを受け取る 9
アプリはユーザがマルチメディアコントロールを操作するとリモートコントロールイベントを受け取る 9
前提条件 9
参考図書 10
ジェスチャレコグナイザ 11
ジェスチャレコグナイザを使用してイベントハンドリングを簡略化する 11
内蔵ジェスチャレコグナイザは一般的なジェスチャを認識する 12
ジェスチャレコグナイザはビューにアタッチされる 12
ジェスチャはアクションメッセージをトリガする 12
ジェスチャレコグナイザを用いてイベントに応答する 13
インターフェースビルダを使用してジェスチャレコグナイザをアプリに追加する 14
プログラムでジェスチャレコグナイザを追加する 14
不連続ジェスチャに応答する 15
連続ジェスチャに応答する 17
ジェスチャレコグナイザがどのように対話するかを定義する 18
ジェスチャレコグナイザは有限状態機械内で動作する 18
他のジェスチャレコグナイザと対話する 20
他のユーザインターフェースコントロールと対話する 24
ジェスチャレコグナイザは生のタッチイベントを解釈する 24
イベントは現在のマルチタッチシーケンス用のすべてのタッチを含む 24
アプリはタッチハンドリングメソッドにおいてタッチを受け取る 25
ビューへのタッチの配信を規定する 26
ジェスチャレコグナイザはタッチを認識する最初の機会を取得する 26
ビューへのタッチの配信に作用する 27
カスタムジェスチャレコグナイザを作成する 28
カスタムジェスチャレコグナイザ用のタッチイベントハンドリングメソッドを実装する 29
ジェスチャレコグナイザの状態をリセットする 31
イベント配信:レスポンダチェーン 32
ヒットテスティングはタッチが発生したビューを返す 32
レスポンダチェーンはレスポンダオブジェクトから構成される 34
レスポンダチェーンは特定の配信経路に従う 35
マルチタッチイベント 38
UIResponderのサブクラスを作成する 38
サブクラス内にタッチイベントハンドリングメソッドを実装する 39
タッチイベントのフェーズ及び位置を追跡する 40
タッチオブジェクトを取り出し照会する 40
タップジェスチャを処理する 43
スワイプジェスチャ及びドラッグジェスチャを処理する 43
複合マルチタッチシーケンスを処理する 46
カスタムタッチイベントの挙動を指定する 50
ヒットテスティングをオーバーライドすることによってタッチを横取りする 52
タッチイベントを転送する 52
マルチタッチイベントを処理するためのベストプラクティス 54
モーションイベント 56
UIDeviceを用いて現在のデバイスの方向を取得する 56
UIEventを用いてシェイクモーションイベントを検出する 58
モーションイベント用のファーストレスポンダを指定する 58
モーションハンドリングメソッドを実装する 58
モーションイベントに必要なハードウェア能力を設定及びチェックする 59
コアモーションを用いてデバイスの動きを取り込む 60
モーションイベント更新間隔を選ぶ 61
コアモーションを使用して加速度計イベントを処理する 62
回転速度データを処理する 64
処理デバイスのモーションデータを処理する 67
リモートコントロールイベント 70
リモートコントロールイベントに対してアプリを準備する 70
リモートコントロールイベントを処理する 70
再生中情報を提供する 71
デバイス上のリモートコントロールイベントをテストする 72
文書改訂履歴 73
Objective−C 6
図、表、及びリスト
ジェスチャレコグナイザ 11
図1−1 ビューにアタッチされたジェスチャレコグナイザ 11
図1−2 不連続ジェスチャ及び連続ジェスチャ 13
図1−3 ジェスチャレコグナイザ用の状態機械 19
図1−4 マルチタッチシーケンス及びタッチフェーズ 25
図1−5 タッチイベント用のデフォルト配信経路 26
図1−6 タッチ用メッセージのシーケンス 27
表1−1 UIKitフレームワークのジェスチャレコグナイザクラス 12
リスト1−1 インターフェースビルダを用いてアプリにジェスチャレコグナイザを追加する 14
リスト1−2 プログラムでシングルタップジェスチャレコグナイザを作成する 14
リスト1−3 ダブルタップジェスチャを処理する 15
リスト1−4 左又は右のスワイプジェスチャに応答する 16
リスト1−5 回転ジェスチャに応答する 17
リスト1−6 パンジェスチャレコグナイザはスワイプジェスチャレコグナイザが失敗することを必要とする 21
リスト1−7 ジェスチャレコグナイザがタッチを受け取ることを防止する 22
リスト1−8 チェックマークジェスチャレコグナイザの実装 29
リスト1−9 ジェスチャレコグナイザをリセットする 31
イベント配信:レスポンダチェーン 32
図2−1 ヒットテスティングはタッチされたサブビューを返す 33
図2−2 iOS上のレスポンダチェーン 36
マルチタッチイベント 38
図3−1 UIEventオブジェクト及びそのUITouchオブジェクトの関係 40
図3−2 所与のタッチイベント用のすべてのタッチ 41
図3−3 特定のウィンドウに属するすべてのタッチ 42
図3−4 特定のビューに属するすべてのタッチ 42
図3−5 排他的タッチビューを用いてイベント配信を制限する 51
リスト3−1 ダブルタップジェスチャを検出する 43
リスト3−2 ビュー内のスワイプジェスチャを追跡する 44
リスト3−3 シングルタッチを使用してビューをドラッグする 45
リスト3−4 マルチタッチの開始位置を記憶する 47
リスト3−5 タッチオブジェクトの初期位置を取り出す 47
リスト3−6 複合マルチタッチシーケンスを処理する 48
リスト3−7 マルチタッチシーケンス内の最後のタッチがいつ終了したかを判定する 50
リスト3−8 ヘルパレスポンダオブジェクトにタッチイベントを転送する 53
モーションイベント 56
図4−1 加速度計がx軸、y軸、及びz軸に沿った速度を測定する 62
図4−2 ジャイロスコープがx軸、y軸、及びz軸のまわりの回転を測定する 64
表4−1 加速度イベント用の一般的な更新間隔 61
リスト4−1 デバイス方向における変化に応答する 57
リスト4−2 ファーストレスポンダになる 58
リスト4−3 モーションイベントを処理する 59
リスト4−4 MotionGraphs内で加速度計データにアクセスする 63
リスト4−5 MotionGraphs内でジャイロスコープデータにアクセスする 65
リスト4−6 デバイスモーションの更新を開始及び停止する 68
リスト4−7 レンダリングより前に姿勢における変化を取得する 69
リモートコントロールイベント 70
リスト5−1 リモートコントロールイベントハンドラを登録する 71
リスト5−2 メディアアイテムについての再生中情報を収集する 72
Objective−CSwift
iOS内のイベントについて
ユーザは、画面にタッチすること又はデバイスを振ることなどの、いくつかの方法で自分のiOSデバイスを操作する。iOSは、ユーザがいつどのようにハードウェアを操作しているかを解釈し、この情報をアプリに渡す。アプリが自然で直感的な方法でアクションに応答すればするほど、ユーザがその体験に引き付けられる。
概要
イベントは、アプリにユーザアクションを知らせるためにアプリに送られるオブジェクトである。iOSでは、イベントは多くの形態:マルチタッチイベント、モーションイベント、及びマルチメディアを制御するためのイベントを取ることができる。この最後のタイプのイベントは、外部アクセサリを発生源とすることができるので、リモートコントロールイベントとして知られる。
UIKitはアプリがジェスチャを検出することを容易にする
iOSアプリは、タッチの組合せを認識し、ピンチングジェスチャに応じてコンテンツ上でズームすること、及びフリッキングジェスチャに応じてコンテンツを通してスクロールすることなどの、ユーザに直感的な方法でそれらに応答する。実際には、いくつかのジェスチャは、一般的なのでUIKitに内蔵されている。たとえば、UIButton及びUISliderなどのUIControlサブクラスは、特定のジェスチャ−ボタンのタップ及びスライダのドラッグに応答する。これらのコントロールを構成すると、そのタッチが発生するとき、UIControlサブクラスはターゲットオブジェクトにアクションメッセージを送る。ジェスチャレコグナイザを使用することにより、ビュー上でターゲットアクション機構を利用することもできる。ジェスチャレコグナイザをビューにアタッチすると、ビュー全体は、指定するどんなジェスチャにも応答するコントロールのように働く。ジェスチャレコグナイザは、複雑なイベントハンドリングロジックのための高水準の抽象化を実現する。ジェスチャレコグナイザは、強力、再使用可能、かつ適合可能なので、アプリの中にタッチイベントハンドリングを実装する好ましい方法である。内蔵されたジェスチャレコグナイザのうちの1つを使用し、その挙動をカスタマイズすることができる。又は、ユーザ定義のジェスチャレコグナイザを作成して、新しいジェスチャを認識することができる。
関連する章:ジェスチャレコグナイザ(ページ11)
イベントはオブジェクトを処理するためにオブジェクトを探す特定の経路に沿って移動する
iOSがイベントを認識すると、iOSは、タッチが発生したビューなどの、そのイベントを処理することに最も適切なように見える初期オブジェクトにそのイベントを渡す。初期オブジェクトがそのイベントを処理することができない場合、iOSは、そのイベントを処理するのに十分なコンテキストを有するオブジェクトを見つけるまで、そのイベントをより広範囲にオブジェクトに渡し続ける。このオブジェクトのシーケンスはレスポンダチェーンとして知られ、iOSがそのチェーンに沿ってイベントを渡すとき、iOSはイベントに応答する責務も譲渡する。この設計パターンにより、イベントハンドリングが協調的かつ動的になる。
関連する章:イベント配信:レスポンダチェーン(ページ32)
UIEventはタッチ、シェイクモーション、又はリモートコントロールイベントをカプセル化する
多くのイベントはUIKitのUIEventクラスのインスタンスである。UIEventオブジェクトは、アプリがイベントにどのように応答するかを判断するために使用する、イベントについての情報を含んでいる。ユーザアクションが発生するとき、たとえば、指が画面にタッチし、その表面の端から端まで移動するとき、iOSは処理用のアプリにイベントオブジェクトを継続的に送る。各イベントオブジェクトは、タイプ−タッチ、「シェイキング」モーション、又はリモートコントロール−及びサブタイプを有する。
関連する章:マルチタッチイベント(ページ38)、モーションイベント(ページ56)、及びリモートコントロールイベント(ページ70)
アプリは、ユーザがそのビューにタッチすると、マルチタッチイベントを受け取る
アプリに応じて、UIKitコントロール及びジェスチャレコグナイザは、アプリのタッチイベントハンドリングのすべてに対して十分であるかもしれない。アプリがカスタムビューを有する場合でも、ジェスチャレコグナイザを使用することができる。おおまかなやり方として、タッチ中のドローイングなどの、タッチに対するアプリの応答がビュー自体と密接に結合されるとき、ユーザ定義のカスタムタッチイベントハンドリングを書く。これらの場合、低水準イベントハンドリングに関与する。タッチメソッドを実装し、これらのメソッドにおいて、生のタッチイベントを分析し、適切に応答する。
関連する章:マルチタッチイベント(ページ38)
アプリはユーザが自分のデバイスを動かすとモーションイベントを受け取る
モーションイベントは、デバイスの位置、方向、及び動きについての情報を提供する。モーションイベントに反応することにより、アプリにわずかだが強力な機能を追加することができる。加速度計データ及びジャイロスコープデータにより、傾斜、回転、及び振動を検出することが可能になる。
モーションイベントは様々な形態で生じるので、様々なフレームワークを使用してモーションイベントを処理することができる。ユーザがデバイスを振ると、UIKitはUIEventオブジェクトをアプリに配信する。アプリに高速で連続する加速度計データ及びジャイロスコープデータを受け取ってほしい場合、コアモーションフレームワークを使用する。
関連する章:モーションイベント(ページ56)
アプリはユーザがマルチメディアコントロールを操作するとリモートコントロールイベントを受け取る
iOSコントロール及び外部アクセサリは、リモートコントロールイベントをアプリに送る。これらのイベントにより、ヘッドセットを介して音量を調整することなどの、ユーザがオーディオ及びビデオを制御することが可能になる。マルチメディアリモートコントロールイベントを処理して、アプリをこれらのタイプのコマンドに応答するようにする。
関連する章:リモートコントロールイベント(ページ70)
前提条件
この文書は、
・iOSアプリ開発の基本概念
・アプリのユーザインターフェースを作成する様々な態様
・ビュー及びビューコントローラがどのように働くか、並びにそれらをどのようにカスタマイズするか
に精通していることを想定する。
それらの概念に精通していない場合、Start Developing iOS Apps Todayを読むことから始めるとよい。次いで、View Programming Guide for iOS若しくはView Controller Programming Guide for iOSのいずれか、又は両方を読むこと。
参考図書
iOSデバイスがタッチ及びデバイスモーションのデータを提供するのと同じ方法で、ほとんどのiOSデバイスは、アプリが関心をもつかもしれない低水準データを生成するGPS及びコンパスハードウェアを有する。Location and Maps Programming Guideは、位置データをどのように受け取り処理するかを説明する。
カーブスムージング及びローパスフィルタの適用などの高度ジェスチャレコグナイザ技法については、WWDC 2012:Building Advanced Gesture Recognizersを参照されたい。
iOSレファレンスライブラリ内の多くのサンプルコードプロジェクトは、ジェスチャレコグナイザを使用し、イベントを処理するコードを有する。これらの中には以下のプロジェクトがある。
・Simple Gesture Recognizersは、ジェスチャ認識を理解するための完全な出発点である。このアプリは、タップジェスチャ、スワイプジェスチャ、及び回転ジェスチャをどのように認識するかを実演する。このアプリは、タッチ位置において画像を表示及びアニメ化することによって各ジェスチャに応答する。
・Handling Touches Using Responder Methods and Gesture Recognizersは、複数のタッチをどのように処理して画面上のまわりの正方形をドラッグするかを実演する2つのプロジェクトを含む。あるバージョンはジェスチャレコグナイザを使用し、他のバージョンはカスタムタッチイベントハンドリングメソッドを使用する。後者のバージョンは、タッチが発生したときに画面上に現在のタッチフェーズを表示するので、タッチフェーズを理解するために特に有用である。
・MoveMeは、タッチイベントに応じてビューをどのようにアニメ化するかを示す。このサンプルを調べて、カスタムタッチイベントハンドリングの理解を進めること。
ジェスチャレコグナイザ
SwiftObjective−C
ジェスチャレコグナイザは、低水準のイベントハンドリングコードを高水準のアクションに変換する。ジェスチャレコグナイザは、ビューにアタッチするオブジェクトであり、それらにより、コントロールが行う方法でビューがアクションに応答することが可能になる。ジェスチャレコグナイザは、タッチを解釈して、タッチがスワイプ、ピンチ、又は回転などの特定のジェスチャに対応するかどうかを判定する。ジェスチャレコグナイザがそれらの割り当てられたジェスチャを認識する場合、ジェスチャレコグナイザはターゲットオブジェクトにアクションメッセージを送る。ターゲットオブジェクトは、通常、ビューのビューコントローラであり、ビューコントローラは、図1−1に示されたようにジェスチャに応答する。この設計パターンは強力及び簡潔の両方であり、どのアクションにビューが応答するかを動的に決定することができ、ビューを下位分類する必要なしにジェスチャレコグナイザをビューに追加することができる。
ジェスチャレコグナイザを使用してイベントハンドリングを簡略化する
UIKitフレームワークは、一般的なジェスチャを検出する、あらかじめ定義されたジェスチャレコグナイザを提供する。それらの簡潔さにより書く必要があるコードの量が削減されるので、可能なときあらかじめ定義されたジェスチャレコグナイザを使用することが最も良い。加えて、ユーザ定義のジェスチャレコグナイザを書く代わりに標準のジェスチャレコグナイザを使用すると、ユーザが予想するようにアプリが挙動することが保証される。
アプリがチェックマーク又は渦巻きモーションなどのユニークなジェスチャを認識することを望む場合、ユーザ定義のカスタムジェスチャレコグナイザを作成することができる。ユーザ定義のジェスチャレコグナイザをどのように設計及び実装するかを学ぶために、カスタムジェスチャレコグナイザを作成する(ページ28)を参照されたい。
内蔵ジェスチャレコグナイザは一般的なジェスチャを認識する
アプリを設計するとき、どのジェスチャを有効にしたいかを考慮すること。次いで、ジェスチャごとに、表1−1に列挙された、あらかじめ定義されたジェスチャレコグナイザのうちの1つが十分であるかどうかを判定すること。
アプリは、ユーザが予想する方法でのみ、ジェスチャに応答しなければならない。たとえば、ピンチはズームイン及びズームアウトするべきであり、タップは何かを選択するべきである。ジェスチャをどのように正しく使用するかについてのガイドラインについては、アプリがクリックではなくジェスチャに応答するを参照されたい。
ジェスチャレコグナイザはビューにアタッチされる
あらゆるジェスチャレコグナイザは1つのビューに関連付けられる。それに反して、単一のビューは多くの異なるジェスチャに応じてもよいので、ビューは複数のジェスチャレコグナイザを有することができる。ジェスチャレコグナイザが特定のビュー内で発生したタッチを認識するために、そのビューにジェスチャレコグナイザをアタッチしなければならない。ユーザがそのビューをタッチすると、ジェスチャレコグナイザは、タッチが発生したことのメッセージをビューオブジェクトが受け取る前に受け取る。結果として、ジェスチャレコグナイザはビューの代わりにタッチに応答することができる。
ジェスチャはアクションメッセージをトリガする
ジェスチャレコグナイザがその指定されたジェスチャを認識すると、ジェスチャレコグナイザはそのターゲットにアクションメッセージを送る。ジェスチャレコグナイザを作成するために、ターゲット及びアクションを用いてジェスチャレコグナイザを初期化する。
不連続ジェスチャ及び連続ジェスチャ
ジェスチャは不連続又は連続のいずれかである。タップなどの不連続ジェスチャは、1度発生する。ピンチングなどの連続ジェスチャは、ある期間にわたって起こる。不連続ジェスチャの場合、ジェスチャレコグナイザは単一のアクションメッセージをそのターゲットに送る。連続ジェスチャ用のジェスチャレコグナイザは、図1−2に示されたように、マルチタッチシーケンスが終了するまで、そのターゲットにアクションメッセージを送り続ける。
ジェスチャレコグナイザを用いてイベントに応答する
アプリに内蔵ジェスチャレコグナイザを追加するために行う3つのことがある。
1.ジェスチャレコグナイザのインスタンスを作成し構成する。
このステップは、ターゲット、アクションを割り当てること、及び、時々(number0fTapsRequiredなどの)ジェスチャ固有の属性を割り当てることを含む。
2.ジェスチャレコグナイザをビューにアタッチする。
3.ジェスチャを処理するアクションメソッドを実装する。
インターフェースビルダを使用してジェスチャレコグナイザをアプリに追加する
Xcode内のインターフェースビルダ内で、ユーザインターフェースに任意のオブジェクトを追加するのと同じ方法−オブジェクトライブラリからジェスチャレコグナイザをビューにドラッグする−で、アプリにジェスチャレコグナイザを追加する。これを行うと、ジェスチャレコグナイザは自動的にそのビューにアタッチされるようになる。どのビューにジェスチャレコグナイザがアタッチされたかをチェックし、必要な場合、nibファイル内の接続を変更することができる。
ジェスチャレコグナイザオブジェクトを作成した後、アクションメソッドを作成し接続する必要がある。このメソッドは、接続されたジェスチャレコグナイザがそのジェスチャを認識するときはいつでもコールされる。このアクションメソッドの外部でジェスチャレコグナイザを参照する必要がある場合、ジェスチャレコグナイザ用のアウトレットも作成し接続するべきである。コードはリスト1−1に類似するように見えるべきである。
リスト1−1 インターフェースビルダを用いてアプリにジェスチャレコグナイザを追加する
@interface APLGestureRecognizerViewController ( )
@property(nonatomic, strong) IBOutlet UITapGestureRecognizer *tapRecognizer;
@end
@implementation
- (IBAction)displayGestureForTapRecognizer:(UITapGestureRecognizer *)recognizer
//後でメソッドを実装する...
}
@end
プログラムでジェスチャレコグナイザを追加する
UIPinchGestureRecognizerなどの実在するUIGestureRecognizerサブクラスのインスタンスを割り振り初期化することにより、プログラムでジェスチャレコグナイザを作成することができる。ジェスチャレコグナイザを初期化するとき、リスト1−2のように、ターゲットオブジェクト及びアクションセレクタを指定する。しばしば、ターゲットオブジェクトはビューのビューコントローラである。
プログラムでジェスチャレコグナイザを作成する場合、addGestureRecognizer:メソッドを使用してビューにジェスチャレコグナイザをアタッチする必要がある。リスト1−2は、シングルタップジェスチャレコグナイザを作成し、ジェスチャが認識されるために1つのタップが必要であることを指定し、次いで、ジェスチャレコグナイザオブジェクトをビューにアタッチする。通常、リスト1−2に示されたように、ビューコントローラのviewDidLoadメソッド内にジェスチャレコグナイザを作成する。
リスト1−2 プログラムでシングルタップジェスチャレコグナイザを作成する
- (void)viewDidLoad {
[super viewDidLoad];
//タップジェスチャを作成し初期化する
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(respondToTapGesture:)];
//ビューにタップジェスチャレコグナイザを追加する
tapRecognizer.numberOfTapsRequired = 1;
//ビューにタップジェスチャレコグナイザを追加する
[self.view addGestureRecognizer:tapRecognizer];
//通常nibからビューをローディングした後、任意の追加セットアップを行う
不連続ジェスチャに応答する
ジェスチャレコグナイザを作成するとき、アクションメソッドにレコグナイザを接続する。このアクションメソッドを使用して、ジェスチャレコグナイザのジェスチャに応答する。リスト1−3は、不連続ジェスチャに応答する一例を提供する。ジェスチャレコグナイザがアタッチされたビューをユーザがタップすると、ビューコントローラは「タップ」と言う画像ビューを表示する。ShowGestureForTapRecognizer:メソッドは、レコグナイザのIocationInView:プロパティからビュー内のジェスチャの位置を特定し、次いで、その位置に画像を表示する。
注:次の3つのコード例は、Simple Gesture Recognizersサンプルコードプロジェクトからであり、より多くのコンテキストについてそれを調べることができる。
リスト1−3 ダブルタップジェスチャを処理する
- (IBAction)showGestureForTapRecognizer:(UITapGestureRecognizer *)recognizer {
//ジェスチャの位置を取得する
CGPoint location = [recognizer locationInView:self.view];
//その位置に画像ビューを表示する
[self drawImageForGestureRecognizer:recognizer atPoint:location];
//画像がフェードアウトするようにアニメ化する
[UIView animateWithDuration:0.5 animations:^{
self.imageView.alpha = 0.0;
}];
}
各ジェスチャレコグナイザはそれ自体のプロパティのセットを有する。たとえば、リスト1−4では、ShowGestureForSwipeRecognizer:メソッドは、スワイプジェスチャレコグナイザのdirectionプロパティを使用して、ユーザが左にスワイプしたか又は右にスワイプしたかを判定する。次いで、ShowGestureForSwipeRecognizer:メソッドは、その値を使用してスワイプと同じ方向に画像をフェードアウトさせる。
リスト1−4 左又は右のスワイプジェスチャに応答する
//スワイプジェスチャに応答する
- (IBAction)ShowGestureForSwipeRecognizer:(UISwipeGestureRecognizer *)recognizer
{
//ジェスチャの位置を取得する
CGPoint location = [recognizer locationInView:self.view];
//その位置に画像ビューを表示する
[self drawImageForGestureRecognizer:recognizer atPoint:location];
//ジェスチャが左スワイプである場合、
//現在位置の左に終了位置を指定する
if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) {
location.x -= 220.0;
} else {
location.x += 220.0;
}
//スワイプの方向にフェードアウトするように画像ビューをアニメ化する
[UIView animateWithDuration:0.5 animations:^{
self.imageView.alpha = 0.0;
self.imageView.center = location;
}];
}
連続ジェスチャに応答する
連続ジェスチャにより、ジェスチャが発生しているときにアプリがジェスチャに応答することが可能になる。たとえば、アプリは、ユーザがピンチしている間にズームし、画面のまわりのオブジェクトをユーザがドラッグすることを可能にすることができる。
リスト1−5は、ジェスチャと同じ回転角にある「回転」画像を表示し、ユーザが回転を停止すると、水平方向に後ろに回転しながら適当な位置でフェードアウトするように画像をアニメ化する。ユーザが自分の指を回転させるとき、両方の指が上がるまで、ShowGestureForRotationRecognizer:メソッドが継続的にコールされる。
リスト1−5 回転ジェスチャに応答する
//回転ジェスチャに応答する
-(IBAction)showGestureForRotationRecognizer:(UIRotationGestureRecognizer *)recognizer {
//ジェスチャの位置を取得する
CGPoint location = [recognizer locationInView:self.view];
//ジェスチャの回転と一致するように
//画像ビューの回転角を設定する
CGAffineTransform transform = CGAffineTransformMakeRotation([recognizer rotation]);
self.imageView.transform = transform;
//その位置に画像ビューを表示する
[self drawImageForGestureRecognizer:recognizer atPoint:location];
//ジェスチャが終了するか、又は取り消された場合、
//水平方向に後にフェードアウトするアニメーションを始める
if(([recognizer state] == UIGestureRecognizerStateEnded) || ([recognizer state] == UIGestureRecognizerStateCancelled)) {
[UIView animateWithDuration:0.5 animations:^{
self.imageView.alpha = 0.0;
self.imageView.transform = CGAffineTransformIdentity;
}];
}
}
メソッドがコールされるたびに、画像はdrawImageForGestureRecognizer:メソッド内で不透明になるように設定される。ジェスチャが完了すると、画像はanimateWithDuration:メソッド内で透明になるように設定される。showGestureForRotationRecognizer:メソッドは、ジェスチャレコグナイザの状態をチェックすることにより、ジェスチャが完了したかどうかを判定する。これらの状態は、ジェスチャレコグナイザは有限状態機械内で動作する(ページ18)において、より詳細に説明される。
ジェスチャレコグナイザがどのように対話するかを定義する
しばしば、ジェスチャレコグナイザをアプリに追加するとき、レコグナイザが互いに、又はアプリ内の任意の他のタッチイベントハンドリングコードとどのように対話することを望むかについて明確にする必要がある。これを行うために、最初に、ジェスチャレコグナイザがどのように動作するかについてもう少し理解する必要がある。
ジェスチャレコグナイザは有限状態機械内で動作する
ジェスチャレコグナイザは、あらかじめ定義された方法である状態から別の状態に遷移する。各状態から、ジェスチャレコグナイザは、それらがある特定の条件を満たすかどうかに基づいて、いくつかの可能な次の状態のうちの1つに移行することができる。精密な状態機械は、図1−3に示されたように、ジェスチャレコグナイザが不連続か連続かに応じて変化する。すべてのジェスチャレコグナイザは、可能状態(LllGestureRecognizerStatePossible)から始まる。ジェスチャレコグナイザは受け取った任意のマルチタッチシーケンスを分析し、分析中、ジェスチャレコグナイザはジェスチャを認識するか、又はジェスチャの認識に失敗する。ジェスチャの認識に失敗することは、ジェスチャレコグナイザが失敗状態(UIGestureRecognizerStateFailed)に遷移することを意味する。
不連続ジェスチャレコグナイザがそのジェスチャを認識すると、ジェスチャレコグナイザは可能から認識(UIGestureRecognizerStateRecognized)に遷移し、認識は完了する。
連続ジェスチャの場合、ジェスチャが最初に認識されると、ジェスチャレコグナイザは可能から開始(UIGestureRecognizerStateBegan)に遷移する。次いで、ジェスチャレコグナイザは開始から変更(UIGestureRecognizerStateChanged)に遷移し、ジェスチャが発生するにつれて変更から変更に移行し続ける。ユーザの最後の指がビューから上がると、ジェスチャレコグナイザは終了状態(UIGestureRecognizerStateEnded)に遷移し、認識は完了する。終了状態は認識状態用のエイリアスであることに注意されたい。
連続ジェスチャ用のレコグナイザは、ジェスチャが予想されたパターンにもはや適合しないと判断した場合、変更から取消(UIGestureRecognizerStateCancelled)に遷移することもできる。
ジェスチャレコグナイザが状態を変更するたびに、ジェスチャレコグナイザは、失敗又は取消に遷移しないかぎり、そのターゲットにアクションメッセージを送る。したがって、不連続ジェスチャレコグナイザは、可能から認識に遷移したときに単一のアクションメッセージのみを送る。連続ジェスチャレコグナイザは、状態を変更するにつれて、多くのアクションメッセージを送る。
ジェスチャレコグナイザが認識(又は終了)状態に達すると、ジェスチャレコグナイザはその状態をリセットして可能に戻る。可能に戻る遷移はアクションメッセージをトリガしない。
他のジェスチャレコグナイザと対話する
ビューは、それにアタッチされた2つ以上のジェスチャレコグナイザを有することができる。ビューのgestureRecognizersプロパティを使用して、どのジェスチャレコグナイザがビューにアタッチされているかを判定する。それぞれ、addGestureRecognizer:メソッド及びremoveGestureRecognizer:メソッドを用いて、ジェスチャレコグナイザをビューに追加したり、又はビューから除去することにより、ビューがどのようにジェスチャを処理するかを動的に変更することもできる。
ビューがそれにアタッチされた複数のジェスチャレコグナイザを有するとき、競合するジェスチャレコグナイザがタッチイベントをどのように受け取り分析するかを変更したい場合がある。デフォルトでは、どのジェスチャレコグナイザが最初にタッチを受け取るかについて設定された順序はなく、この理由で、毎回異なる順序でジェスチャレコグナイザにタッチを渡すことができる。このデフォルトの挙動を、
・あるジェスチャレコグナイザが別のジェスチャレコグナイザより前にタッチを分析するべきであると指定する
・2つのジェスチャレコグナイザが同時に動作することを可能にする
・ジェスチャレコグナイザがタッチを分析することを防止する
ようにオーバーライドすることができる。
UIGestureRecognizerクラスのメソッド、デリゲートメソッド、及びサブクラスによってオーバーライドされたメソッドを使用して、これらの挙動を有効にする。
2つのジェスチャレコグナイザに対する特定の順序を宣言する
スワイプジェスチャ及びパンジェスチャを認識することを望み、これら2つのジェスチャが別個のアクションをトリガすることを望むと想像する。デフォルトでは、ユーザがスワイプしようと試みると、ジェスチャはパンとして解釈される。これは、スワイピングジェスチャが、スワイプ(非連続ジェスチャ)として解釈されるために必要な条件を満たす前に、パン(連続ジェスチャ)として解釈されるために必要な条件を満たすからである。
ビューがスワイプとパンの両方を認識するために、パンジェスチャレコグナイザがタッチイベントを分析する前に、スワイプジェスチャレコグナイザがタッチイベントを分析することを望む。タッチがスワイプであるとスワイプジェスチャレコグナイザが判定した場合、パンジェスチャレコグナイザはタッチを分析する必要が決してない。タッチがスワイプではないとスワイプジェスチャレコグナイザが判定した場合、スワイプジェスチャレコグナイザは失敗状態に移行し、パンジェスチャレコグナイザがタッチイベントの分析を開始するべきである。
リスト1−6のように、遅らせたいジェスチャレコグナイザに対してrequireGestureRecognizerToFail:メソッドをコールすることにより、2つのジェスチャレコグナイザ間のこのタイプの関係を示す。このリストでは、両方のジェスチャレコグナイザは同じビューにアタッチされている。
リスト1−6 パンジェスチャレコグナイザはスワイプジェスチャレコグナイザが失敗することを必要とする
-(void)viewDidLoad {
[super viewDidLoad];
//通常nibからビューをローディングした後、任意の追加セットアップを行う
[self.panRecognizer requireGestureRecognizerToFail:self.swipeRecognizer];
}
requireGestureRecognizerToFail:メソッドは受取り側にメッセージを送り、受け取るレコグナイザが開始することができる前に、失敗しなければならないいくつかのOtherGestureRecognizerを指定する。他のジェスチャレコグナイザが失敗状態に遷移するのを待っている間、受け取るレコグナイザは可能状態に留まる。他のジェスチャレコグナイザが失敗した場合、受け取るレコグナイザはタッチイベントを分析し、その次の状態に移行する。一方、他のジェスチャレコグナイザが認識又は開始に遷移した場合、受け取るレコグナイザは失敗状態に移行する。状態遷移の詳細については、ジェスチャレコグナイザは有限状態機械内で動作する(ページ18)を参照されたい。
注:アプリがシングルタップとダブルタップの両方を認識し、ダブルタップレコグナイザが失敗することをシングルタップジェスチャレコグナイザが必要としない場合、ユーザがダブルタップするときでも、ダブルタップアクションの前にシングルタップアクションを受け取ることを予想するべきである。最良のユーザ体験は、一般に、複数のタイプのアクションを可能にするので、この挙動は意図的である。
これら2つのアクションが相互に排他的であることを望む場合、シングルタップレコグナイザは、ダブルタップレコグナイザが失敗することを必要としなければならない。しかしながら、ダブルタップレコグナイザが失敗するまでシングルタップレコグナイザは遅延するので、シングルタップアクションはユーザ入力の後少し遅れる。
ジェスチャレコグナイザがタッチを分析することを防止する
ジェスチャレコグナイザにデリゲートオブジェクトを追加することにより、ジェスチャレコグナイザの挙動を変更することができる。UIGestureRecognizerDelegateプロトコルは、ジェスチャレコグナイザがタッチを分析することを防止することができる2〜3の方法を提供する。両方ともUIGestureRecognizerDelegateプロトコルのオプションメソッドである、gestureRecognizer:shouldReceiveTouch:メソッド又はgestureRecognizerShouldBegin:メソッドのいずれかを使用する。
タッチが始まると、ジェスチャレコグナイザがそのタッチを考慮するべきか否かを直ちに判定することができる場合、gestureRecognizer:shouldReceiveTouch:メソッドを使用する。このメソッドは、新しいタッチがあるたびにコールされる。NOを返すことは、タッチが発生したことをジェスチャレコグナイザが通知されることを防止する。デフォルトの値はYESである。このメソッドはジェスチャレコグナイザの状態を変更しない。
リスト1−7は、gestureRecognizer:shouldReceiveTouch:デリゲートメソッドを使用して、ジェスチャレコグナイザがカスタムサブビュー内にあるタッチを受け取ることを防止する。タッチが発生すると、gestureRecognizer:shouldReceiveTouch:メソッドがコールされる。gestureRecognizer:shouldReceiveTouch:メソッドは、ユーザがカスタムビューにタッチしたかどうかを判定し、そうである場合、タップジェスチャレコグナイザがタッチイベントを受け取ることを防止する。
リスト1−7 ジェスチャレコグナイザがタッチを受け取ることを防止する
- (void)viewDidLoad {
[super viewDidLoad];
//タップジェスチャレコグナイザにデリゲートを追加する
self.tapGestureRecognizer.delegate = self;
}
//UIGestureRecognizerDelegateメソッドを実装する
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizershouldReceiveTouch:(UITouch *)touch{
//タッチがカスタムサブビューの内部であるどうかを判定する
if([touch view] == self.customSubview){
//そうである場合、デリゲートのジェスチャレコグナイザのすべてが
//タッチを受け取ることを防止する
return NO;
}
return YES;
}
ジェスチャレコグナイザがタッチを分析するべきか否かを判断する前に、可能なかぎり待つ必要がある場合、gestureRecognizerShouldBegin:デリゲートメソッドを使用する。一般に、ジェスチャレコグナイザと競合するカスタムタッチイベントハンドリングを有するUIViewサブクラス又はUIControlサブクラスを有する場合、このメソッドを使用する。NOを返すと、ジェスチャレコグナイザは直ちに失敗し、他のタッチハンドリングが進むことが可能になる。このメソッドは、ビュー又はコントロールがタッチを受け取ることをジェスチャレコグナイザが防止する場合、ジェスチャレコグナイザ が可能状態から遷移するように試みるときにコールされる。
ビュー又はビューコントローラがジェスチャレコグナイザのデリゲートになることができない場合、gestureRecognizerShouldBegin:UIViewメソッドを使用することができる。このメソッドのシグネチャ及び実装は同じである。
同時ジェスチャ認識を許可する
デフォルトでは、2つのジェスチャレコグナイザは、それらそれぞれのジェスチャを同時に認識することはできない。しかし、たとえば、ユーザが同時にビューをピンチ及び回転できることを望むと仮定する。UIGestureRecognizerDelegateプロトコルのオプションメソッドである、gestureRecognizer:shouldRecognizeSimuItaneouslyWithGestureRecognizer:メソッドを実装することにより、デフォルトの挙動を変更する必要がある。このメソッドは、あるジェスチャレコグナイザのジェスチャの分析が、別のジェスチャレコグナイザがそのジェスチャを認識することをブロックするはずであるとき、又はその逆のときにコールされる。このメソッドはデフォルトでNOを返す。2つのジェスチャレコグナイザがそれらのジェスチャを同時に認識することを望むとき、YESを返す。
注:デリゲートを実装し、ジェスチャレコグナイザのうちの1つのみにYESを返して同時認識を可能にする必要がある。しかしながら、それは、他のジェスチャレコグナイザのデリゲートがYESを返す可能性があるので、NOを返すことが必ずしも同時認識を防止するとはかぎらないことも意味する。
2つのジェスチャレコグナイザ間の一方向関係を指定する
2つのレコグナイザが互いとどのように対話するかを制御したいが、一方向関係を指定する必要がない場合、canPreventGestureRecognizer:サブクラスメソッド又はcanBePreventedByGestureRecognizer:サブクラスメソッドのいずれかをオーバーライドして、NO(デフォルトはYES)を返すことができる。たとえば、回転ジェスチャがピンチジェスチャを防止することを望むが、ピンチジェスチャが回転ジェスチャを防止することを望まない場合、
[rotationGestureRecognizer canPreventGestureRecognizer:pinchGestureRecognizer];
を指定し、NOを返すように回転ジェスチャレコグナイザのサブクラスメソッドをオーバーライドするはずである。サブクラスUIGestureRecognizerをどのように下位分類するかの詳細については、カスタムジェスチャレコグナイザを作成する(ページ28)を参照されたい。
いずれのジェスチャも他のジェスチャを防止しない場合、同時ジェスチャ認識を許可する(ページ23)に記載されたように、gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:メソッドを使用する。デフォルトでは、2つのジェスチャを同時に認識することはできないので、ピンチジェスチャが回転を防止し、その逆もそうである。
他のユーザインターフェースコントロールと対話する
iOS6.0以降では、デフォルトのコントロールアクションは、ジェスチャレコグナイザの挙動を重複させることを防止する。たとえば、ボタン用のデフォルトアクションはシングルタップである。ボタンの親ビューにアタッチされたシングルタップジェスチャレコグナイザを有し、ユーザがボタンをタップする場合、ボタンのアクションメソッドは、ジェスチャレコグナイザの代わりにタッチイベントを受け取る。これは、以下を含むデフォルトのコントロール用アクションと重複するジェスチャレコグナイザのみに適用される。
・UIButton、UISwitch、UIStepper、UISegmentedControI、及びUIPageControlに対する1本指のシングルタップ
・スライダに平行な方向へのUISliderのノブに対する1本指のスワイプ
・スイッチに平行な方向へのUISwitchのノブに対する1本指のパンジェスチャ
これらのコントロールのうちの1つのカスタムサブクラスを有し、デフォルトアクションを変更したい場合、親ビューの代わりにコントロールに直接ジェスチャレコグナイザをアタッチする。次いで、ジェスチャレコグナイザは最初にタッチイベントを受け取る。いつものように、特に標準コントロールのデフォルト挙動をオーバーライドするときに、アプリが直感的なユーザ体験を提供することを保証するために、iOS Human Interface Guidelinesを必ず読むこと。
ジェスチャレコグナイザは生のタッチイベントを解釈する
今までのところ、ジェスチャ、及びアプリがどのようにジェスチャを認識し、ジェスチャに応答するかについて学んできた。しかしながら、カスタムジェスチャレコグナイザを作成するために、又はジェスチャレコグナイザがビューのタッチイベントハンドリングとどのように対話するかを制御するために、タッチ及びイベントに関してより詳細に考える必要がある。
イベントは現在のマルチタッチシーケンス用のすべてのタッチを含む
iOSでは、タッチは、画面上の指の存在又は動きである。ジェスチャは、UITouchオブジェクトによって表される1つ又は複数のタッチを有する。たとえば、ピンチクローズジェスチャは、2つのタッチ−反対方向から互いに向かう画面上の2本の指を有する。
イベントは、マルチタッチシーケンスの間に発生するすべてのタッチを包含する。マルチタッチシーケンスは、指が画面にタッチしたときに始まり、最後の指が上がったときに終わる。指が動くにつれて、iOSはイベントにタッチオブジェクトを送る。マルチタッチイベントは、タイプUIEventTypeTouchesのUIEventオブジェクトによって表される。
各タッチオブジェクトは1本の指のみを追跡し、マルチタッチシーケンスの長さだけ続く。シーケンスの間、UIKitは指を追跡し、タッチオブジェクトの属性を更新する。これらの属性としては、タッチのフェーズ、ビュー内のタッチの位置、タッチの前の位置、及びタッチのタイムスタンプが挙げられる。
タッチフェーズは、タッチが動いているか静止しているかにかかわらず、タッチがいつ始まったか、及びタッチがいつ終わったが−すなわち、指が画面をもはやタッチしていないときを示す。図1−4に描写されたように、アプリは、任意のタッチの各フェーズの間にイベントオブジェクトを受け取る。
注:指はマウスポインタよりも厳密ではないユーザが画面にタッチすると、接触領域は実際には楕円形であり、ユーザが予想するよりも少し低くなる傾向がある。この「接触パッチ」は、指のサイズ及び方向、圧力量、どの指が使用されるか、並びに他の要因に基づいて変化する。基礎をなすマルチタッチシステムは、ためにこの情報を分析し、シングルタッチポイントを算出し、その結果、これを行うためにユーザ定義のコードを書く必要がない。
アプリはタッチハンドリングメソッドにおいてタッチを受け取る
マルチタッチシーケンスの間、アプリは、所与のタッチフェーズの間の新しい又は変化したタッチが存在するとき、これらのメッセージを送る。アプリは、
・1つ又は複数の指が画面上をタッチダウンしたとき、touchesBegan:withEvent:メソッドをコールし、
・1つ又は複数の指が動いたとき、touchesMoved:withEvent:メソッドをコールし、
・1つ又は複数の指が画面から上がったとき、touchesEnded:withEvent:メソッドをコールし、
・着信電話呼出しなどのシステムイベントによってタッチシーケンスが取り消されたとき、touchesCancelled:withEvent:メソッドをコールする。
これらのメソッドの各々はタッチフェーズに関連付けられ、たとえば、touchesBegan:withEvent:メソッドはUITouchPhaseBeganに関連付けられる。タッチオブジェクトのフェーズは、そのphaseプロパティに記憶される。
注:これらのメソッドは、UIGestureRecognizerStateBegan及びUIGestureRecognizerStateEndedなどのジェスチャレコグナイザの状態には関連付けられない。ジェスチャレコグナイザの状態は、厳密には、認識されているタッチオブジェクトのフェーズではなく、ジェスチャレコグナイザ自体のフェーズを表記する。
ビューへのタッチの配信を規定する
ジェスチャレコグナイザより前にビューがタッチを受け取ることを望むときがあり取る。しかし、ビューへのタッチの配信経路を変更することができる前に、デフォルトの挙動を理解する必要がある。簡単なケースでは、タッチが発生すると、UIApplicationオブジェクトからUIWindowオブジェクトにタッチオブジェクトが渡される。次いで、ウィンドウは、ビューオブジェクト自体にタッチを渡す前に、タッチが発生したビュー(又はそのビューのスーパービュー)にアタッチされた任意のジェスチャレコグナイザにタッチを最初に送る。
ジェスチャレコグナイザはタッチを認識する最初の機会を取得する
ウィンドウは、ジェスチャレコグナイザが最初にタッチを分析することができるように、ビューへのタッチオブジェクトの配信を遅らせる。遅延の間、ジェスチャレコグナイザがタッチジェスチャを認識した場合、ウィンドウはビューにタッチオブジェクトを決して配信せず、また、認識されたシーケンスの一部であった、ウィンドウが前に送った任意のタッチオブジェクトを取り消す。
たとえば、2本指のタッチを必要とする不連続ジェスチャ用のジェスチャレコグナイザを有する場合、これは2つの別々のタッチオブジェクトに変換する。タッチが発生するにつれて、タッチオブジェクトは、アプリのオブジェクトからタッチが発生したビュー用のウィンドウオブジェクトに渡され、図1−6に描写されたように、以下のシーケンスが発生する。
1.ウィンドウが、touchesBegan:withEvent:メソッドを通して、ジェスチャレコグナイザに開始フェーズ内の2つのタッチオブジェクトを送る。ジェスチャレコグナイザはまだジェスチャを認識せず、そのため、その状態は可能である。ジェスチャレコグナイザがアタッチされたビューにウィンドウがこれらの同じタッチを送る。
2.ウィンドウが、touchesMoved:withEvent:メソッドを通して、ジェスチャレコグナイザに移動フェーズ内の2つのタッチオブジェクトを送る。レコグナイザはまだジェスチャを検出せず、まだ可能状態にある。次いで、ウィンドウがアタッチされたビューにこれらのタッチを送る。
3.ウィンドウが、touchesEnded:withEvent:メソッドを通して、ジェスチャレコグナイザに終了フェーズ内の1つのタッチオブジェクトを送る。このタッチオブジェクトは、ジェスチャ用の十分な情報をもたらさないが、ウィンドウはアタッチされたビューからのオブジェクトを保留する。
4.ウィンドウが、終了フェーズ内の他のタッチオブジェクトを送る。ジェスチャレコグナイザは、今やそのジェスチャを認識し、そのため、ジェスチャレコグナイザはその状態を認識に設定する。最初のアクションメッセージが送られる直前に、ビューは、touchesCancelled:withEvent:メソッドをコールして、開始フェーズ及び移動フェーズにおいて前に送られたタッチオブジェクトを無効にする。終了フェーズ内のタッチが取り消される。
次に、ジェスチャレコグナイザが分析していたこのマルチタッチシーケンスがそのジェスチャではないと、最後のステップにおいてジェスチャレコグナイザが判断することを想定する。ジェスチャレコグナイザは、その状態をUIGestureRecognizerStateFailedに設定する。次いで、ウィンドウは、touchesEnded:withEvent:メッセージ内のアタッチされたビューに終了フェーズ内の2つのタッチオブジェクトを送る。
連続ジェスチャ用のジェスチャレコグナイザは、タッチオブジェクトが終了フェーズに達する前にそのジェスチャを認識する可能性が高いことを除いて、同様のシーケンスに従う。そのジェスチャを認識すると、ジェスチャレコグナイザはその状態をUIGestureRecognizerStateBegan(未認識)に設定する。ウィンドウは、アタッチされたビューではなくジェスチャレコグナイザに、マルチタッチシーケンス内のすべての後続のタッチオブジェクトを送る。
ビューへのタッチの配信に作用する
いくつかの方法で、いくつかのUIGestureRecognizerプロパティの値を変更して、デフォルトの配信経路を変更することができる。これらのプロパティのデフォルト値を変更した場合、挙動における以下の違いを取得する。
・delaysTouchesBegan(デフォルトはNO)−通常、ウィンドウは、開始フェーズ及び移動フェーズ内のタッチオブジェクトをビュー及びジェスチャレコグナイザに送る。delaysTouchesBeganをYESに設定すると、ウィンドウが開始フェーズ内のタッチオブジェクトをビューに配信することが防止される。これにより、ジェスチャレコグナイザがそのジェスチャを認識すると、タッチイベントのどの部分もアタッチされたビューに配信されなかったことが保証される。プロパティはインターフェースフィールを無反応にすることができるので、このプロパティを設定するときは慎重であること。
この設定により、UIScrollView上のdelaysContentTouchesプロパティに同様の挙動が提供される。この場合、タッチが始まった後すぐにスクローリングが始まると、スクロールビューオブジェクトのサブビューはタッチを決して受け取らず、そのため、ビジュアルフィードバックのフラッシュがない。
・delaysTouchesEnded(デフォルトはYES)−このプロパティがYESに設定されると、ジェスチャが後で取り消したいであろうアクションをビューが競合しないことが保証される。ジェスチャレコグナイザがタッチイベントを解析しているとき、ウィンドウは、アタッチされたビューに終了フェーズ内のタッチオブジェクトを配信しない。ジェスチャレコグナイザがそのジェスチャを認識した場合、タッチオブジェクトは取り消される。ジェスチャレコグナイザがそのジェスチャを認識しない場合、ウィンドウは、touchesEnded:withEvent:メッセージを通して、ビューにこれらのオブジェクトを配信する。このプロパティをNOに設定すると、ジェスチャレコグナイザと同時に、ビューが終了フェーズ内のタッチオブジェクトを分析することが可能になる。
たとえば、ビューが2つのタップを必要とするタップジェスチャレコグナイザを有し、ユーザがビューをダブルタップすることを考える。プロパティがYESに設定されると、ビューは、touchesBegan:withEvent:、touchesBegan:withEvent:、touchesCancelled:withEvent:、及びtouchesCancelled:withEvent:を取得する。このプロパティがNOに設定された場合、ビューは以下のメッセージのシーケンス:touchesBegan:withEvent:、touchesEnded:withEvent:、touchesBegan:withEvent:、及びtouchesCancelled:withEvent:を取得し、それは、touchesBegan:withEvent:において、ビューがダブルタップを認識できることを意味する。
ジェスチャレコグナイザがそのジェスチャの一部ではないと判定したタッチを検出した場合、ジェスチャレコグナイザはそのビューに直接タッチを渡すことができる。これを行うために、ジェスチャレコグナイザは、それ自体に対してignoreTouch:forEvent:をコールし、タッチオブジェクト内で渡す。
カスタムジェスチャレコグナイザを作成する
カスタムジェスチャレコグナイザを実装するために、最初にXcode内でUIGestureRecognizerのサブクラスを作成する。次いで、サブクラスのヘッダファイル内に以下の重要な指示文を追加する。
#import
次に、UIGestureRecognizerSubclass.hからヘッダファイルに以下のメソッド宣言分をコピーする。これらは、サブクラス内でオーバーライドするメソッドである。
−(void)reset;
−(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
−(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
−(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
−(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
これらのメソッドは、アプリはタッチハンドリングメソッドにおいてタッチを受け取る(ページ25)において前に記載された、対応するタッチイベントハンドリングメソッドとまさに同じシグネチャ及び挙動を有する。オーバーライドするメソッドのすべてにおいて、メソッドがヌル実装を有する場合でも、スーパークラス実装をコールしなければならない。
UIGestureRecognizerSubclass.h内のstateプロパティは、今や、UIGestureRecognizer.h内のように、読取り専用ではなく読み書きできることに注意されたい。サブクラスは、そのプロパティにUIGestureRecognizerState定数を割り当てることにより、その状態を変更する。
カスタムジェスチャレコグナイザ用のタッチイベントハンドリングメソッドを実装する
カスタムジェスチャレコグナイザのための実装の中心は、4つのメソッド:touchesBegan:withEvent:、touchesMoved:withEvent:、touchesEnded:withEvent:、及びtouchesCancelled:withEvent:である。これらのメソッドの中で、ジェスチャレコグナイザの状態を設定することにより、低水準タッチイベントをジェスチャ認識に変換する。リスト1−8は、不連続シングルタッチチェックマークジェスチャ用のジェスチャレコグナイザを作成する。ジェスチャレコグナイザは、クライアントがこの値を取得することができるように、ジェスチャの中心点−アップストロークが始まる点−を記録する。
この例は単一のビューのみを有するが、ほとんどのアプリは多くのビューを有する。一般に、複数のビューをスパンするジェスチャを正しく認識することができるように、タッチ位置を画面の座標系に変換するべきである。
リスト1−8 チェックマークジェスチャレコグナイザの実装
#import
//カスタムサブクラスに実装された
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
if ([touches count] != 1) {
self.state=UIGestureRecognizerStateFailed;
return;
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesMoved:touches withEvent:event];
if (self.state == UIGestureRecognizerStateFailed) return;
UIWindow *win = [self.view window];
CGPoint nowPoint = [touches.anyObject locationInView:win];
CGPoint nowPoint = [touches.anyObject locationInView:self.view];
CGPoint prevPoint = [touches.anyObject previousLocationInView:self.view];
//strokeUpはプロパティである
if (!self.strokeUp) {
//ダウンストローク上で、xとyの両方は正の方向に増大する
If (nowPoint.x >= prevPoint.x && nowPoint.y >= prevPoint.y) {
self.midPoint =nowPoint;
//アップストロークでは、xの値は増大するが、yの値は減少する
} else if (nowPoint.x >= prevPoint.x && nowPoint.y <= prevPoint.y) {
self.strokeUp = YES;
} else {
self.state = UIGestureRecognizerStateFailed;
}
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
if ((self.state == UIGestureRecognizerStatePossible) && self.strokeUp) {
self.state = UIGestureRecognizerStateRecognized;
}
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesCancelled:touches withEvent: event];
self.midpoint = CGPointZero;
self.strokeUp = NO;
self.state = UIGestureRecognizerStateFailed;
}
ジェスチャレコグナイザは有限状態機械内で動作する(ページ18)に記載されたように、不連続ジェスチャ及び連続ジェスチャに関する状態遷移は異なる。カスタムジェスチャレコグナイザを作成するとき、カスタムジェスチャレコグナイザに関係する状態を割り当てることにより、カスタムジェスチャレコグナイザが不連続か連続かを示す。一例として、リスト1−8のチェックマークジェスチャレコグナイザは不連続なので、その状態を開始又は変更に決して設定しない。
ジェスチャレコグナイザを下位分類するときに行う必要がある最も重要なことは、ジェスチャレコグナイザの状態を正確に設定することである。iOSは、ジェスチャレコグナイザが予想されたように相互作用するために、ジェスチャレコグナイザの状態を知る必要がある。たとえば、同時認識を許可することを望むか、又はジェスチャレコグナイザが失敗することを必要とする場合、iOSはレコグナイザの現在状態を理解する必要がある。
カスタムジェスチャレコグナイザを作成することの詳細については、WWDC 2012:Building Advanced Gesture Recognizersを参照されたい。
ジェスチャレコグナイザの状態をリセットする
ジェスチャレコグナイザが認識/終了、取消、又は失敗に遷移した場合、UIGestureRecognizerクラスは、ジェスチャレコグナイザが可能に戻る直前にリセットメソッドをコールする。
リスト1−9のように、レコグナイザがジェスチャを認識することにおいて新しい試みの準備ができるように、リセットメソッドを実装して任意の内部状態をリセットする。ジェスチャレコグナイザがこのメソッドから戻った後、ジェスチャレコグナイザは進行中のタッチに対するこれ以上の更新を受け取らない。
リスト1−9 ジェスチャレコグナイザをリセットする
− (void)reset {
[super reset];
self.midPoint = CGPointZero;
self.strokeUp = NO;
}
イベント配信:レスポンダチェーン
SwiftObjective−C
自分のアプリを設計するとき、イベントに動的に応答することを望む可能性が高い。たとえば、タッチは画面上の多くの異なるオブジェクトにおいて発生することができ、どのオブジェクトが所与のイベントに応答することを望むかを判断し、そのオブジェクトがイベントをどのように受け取るかを理解する必要がある。
ユーザ生成イベントが発生すると、UIKitは、そのイベントを処理するために必要な情報を含んでいるイベントオブジェクトを作成する。次いで、UIKitは、アクティブなアプリのイベントキュー内にそのイベントオブジェクトを置く。タッチイベントの場合、そのオブジェクトはUIEventオブジェクト内にパッケージ化された1組のタッチである。モーションイベントの場合、イベントオブジェクトは、どのフレームワークを使用するか、及びどのタイプのモーションイベントに関心があるかに応じて変化する。
イベントは、それを処理することができるオブジェクトに配信されるまで、特定の経路に沿って移動する。最初に、シングルトンUIApplicationオブジェクトが、キューの先頭からイベントを取り、それを処理用に送出する。通常、シングルトンUIApplicationオブジェクトは、アプリのキーウィンドウオブジェクトにイベントを送り、アプリのキーウィンドウオブジェクトは、そのイベントを処理用の初期オブジェクトに渡す。初期オブジェクトはイベントのタイプに依存する。
・タッチイベント。タッチイベントの場合、ウィンドウオブジェクトは、最初に、タッチが発生したビューにイベントを配信するように試みる。そのビューはヒットテストビューとして知られる。ヒットテストビューを探すプロセスはヒットテスティングと呼ばれ、それは、ヒットテスティングはタッチが発生したビューを返す(ページ32)に記載される。
・モーションイベント及びリモートコントロールイベント。これらのイベントの場合、ウィンドウオブジェクトは、処理用のファーストレスポンダにシェイキングモーションイベント又はリモートコントロールイベントを送る。ファーストレスポンダは、レスポンダチェーンはレスポンダオブジェクトから構成される(ページ34)に記載される。
これらのイベント経路の最終ゴールは、イベントを処理し、イベントに応答することができるオブジェクトを見つけることである。したがって、UIKitは、最初に、イベントを処理することに最も良く適したオブジェクトにイベントを送る。タッチイベントの場合、そのオブジェクトはヒットテストビューであり、他のイベントの場合、そのオブジェクトはファーストレスポンダである。以下のセクションは、ヒットテストビュー及びファーストレスポンダのオブジェクトがどのように決定されるかをより詳細に説明する。
ヒットテスティングはタッチが発生したビューを返す
iOSはヒットテスティングを使用して、タッチ中のビューを見つける。ヒットテスティングは、タッチが任意の関係するビューオブジェクトの境界内にあるかどうかをチェックすることを要する。そうである場合、iOSはそのビューのサブビューのすべてを再帰的にチェックする。タッチポイントを含んでいるビュー階層内で最も低いビューがヒットテストビューになる。iOSがヒットテストビューを特定した後、iOSは処理用にそのビューにタッチイベントを渡す。
例示するために、ユーザが図2−1のビューEにタッチしたと仮定する。iOSは、この順序でサブビューをチェックすることによってヒットテストビューを見つける。
1.タッチはビューAの境界内にあるので、iOSはサブビューB及びCをチェックする。
2.タッチはビューBの境界内にないが、ビューCの境界内にあるので、iOSはサブビューD及びEをチェックする。
3.タッチはビューDの境界内にないが、ビューEの境界内にある。
ビューEは、タッチを含んでいるビュー階層内で最も低いビューなので、ヒットテストビューになる。
hitTest:withEvent:メソッドは、所与のCGPoint及びUIEvent用のヒットテストビューを返す。hitTest:withEvent:メソッドは、それ自体でpointlnside:withEvent:メソッドをコールすることによって始まる。hitTest:withEvent:に渡されたポイントがビューの境界内部にある場合、pointlnside:withEvent:はYESを返す。次いで、メソッドは、YESを返すすべてのサブビュー上でhitTest:withEvent:を再帰的にコールする。
hitTest:withEvent:に渡されたポイントがビューの境界内部にない場合、pointlnside:withEvent:メソッドに対する最初のコールはNOを返し、ポイントは無視され、hitTest:withEvent:はnilを返す。タッチがそのサブビュー内で発生しなかった場合、タッチはそのサブビューのサブビューのうちのいずれでも発生しなかったので、サブビューがNOを返した場合、ビュー階層のその分岐全体は無視される。タッチポイントはスーパービュー及びサブビューの境界内になければならないので、これは、そのスーパービューの外部にあるサブビュー内のいかなるポイントも、タッチイベントを受け取ることができないことを意味する。これは、サブビューのclipsToBoundsプロパティがNOに設定された場合に発生することができる。
注:タッチが後でビュー外部に移動する場合でも、タッチオブジェクトはその有効期間の間そのヒットテストビューに関連付けられる。
ヒットテストビューは、タッチイベントを処理する最初の機会が与えられる。ヒットテストビューがイベントを処理することができない場合、システムがイベントを処理することができるオブジェクトを見つけるまで、レスポンダチェーンはレスポンダオブジェクトから構成される(ページ34)に記載されるように、イベントはそのビューのレスポンダのチェーンを移動する。
レスポンダチェーンはレスポンダオブジェクトから構成される
多くのタイプのイベントは、イベント配信用のレスポンダチェーンに依拠する。レスポンダチェーンは一連のリンクされたレスポンダオブジェクトである。レスポンダチェーンはファーストレスポンダで始まり、アプリケーションオブジェクトで終わる。ファーストレスポンダがイベントを処理することができない場合、ファーストレスポンダは、レスポンダチェーン内の次のレスポンダにイベントを転送する。
レスポンダオブジェクトは、イベントに応答し、イベントを処理することができるオブジェクトである。UIResponderクラスはすべてのレスポンダオブジェクト用のベースクラスであり、イベントハンドリング用のプログラミングインターフェースだけでなく、共通レスポンダ挙動用のプログラミングインターフェースも定義する。UIApplicationクラス、UIViewControllerクラス、及びUIViewクラスのインスタンスはレスポンダであり、それは、すべてのビュー及びほとんどのキーコントローラオブジェクトがレスポンダであることを意味する。コアアニメーションレイヤはレスポンダでないことに注意されたい。
ファーストレスポンダは最初にイベントを受け取るように指定される。通常、ファーストレスポンダはビューオブジェクトである。オブジェクトは、2つのことを行うことによってファーストレスポンダになる。
1.YESを返すようにcanBecomeFirstResponderメソッドをオーバーライドする。
2.becomeFirstResponderメッセージを受け取る。必要な場合、オブジェクトはこのメッセージを自分自身に送ることができる。
注:アプリがファーストレスポンダにオブジェクトを割り当てる前にそのオブジェクトグラフを確立したことを確認する。たとえば、通常、viewDidAppear:メソッドのオーバーライド内のbecomeFirstResponderメソッドをコールする。viewWillAppear:内でファーストレスポンダを割り当てるように試みる場合、オブジェクトグラフはまだ確立されておらず、そのため、becomeFirstResponderメソッドはNOを返す。
イベントは、レスポンダチェーンに依拠するオブジェクトのみではない。レスポンダチェーンは以下のすべてにおいて使用される。
・タッチイベント。ヒットテストビューがタッチイベントを処理することができない場合、イベントはヒットテストビューで始まるレスポンダのチェーンに渡される。
・モーションイベント。UIKitを用いてシェイクモーションイベントを処理するために、ファーストレスポンダは、UIEventを用いてシェイクモーションイベントを検出する(ページ58)に記載されるように、UIResponderクラスのmotionBegan:withEvent:メソッド又はmotionEnded:withEvent:メソッドのいずれかを実装しなければならない。
・リモートコントロールイベント。リモートコントロールイベントを処理するために、ファーストレスポンダは、UIResponderクラスのremoteControlReceivedWithEvent:メソッドを実装しなければならない。
・アクションメッセージ。ユーザがボタン又はスイッチなどのコントロールを操作し、アクションメソッド用のターゲットがnilであるとき、メッセージはコントロールビューで始まるレスポンダのチェーンを通して送られる。
・編集メニューメッセージ。ユーザが編集メニューのコマンドをタップすると、iOSはレスポンダチェーンを使用して、(cut:、copy:、及びpaste:などの)必要なメソッドを実装するオブジェクトを見つける。詳細については、編集メニュー及びサンプルコードプロジェクト、CopyPasteTiIeを表示及び管理するを参照されたい。
・テキスト編集。ユーザがテキストフィールド又はテキストビューをタップすると、そのビューは自動的にファーストレスポンダになる。デフォルトでは、仮想キーボードが現れ、テキストフィールド又はテキストビューは編集の焦点になる。カスタム入力ビューがアプリに適切な場合、キーボードの代わりにカスタム入力ビューを表示することができる。任意のレスポンダオブジェクトにカスタム入力ビューを追加することもできる。詳細については、データ入力用カスタムビューを参照されたい。
UIKitは、ユーザがタップしたテキストフィールド又はテキストビューを、ファーストレスポンダになるように自動的に設定する。アプリは、becomeFirstResponderメソッドを用いてすべての他のファーストレスポンダオブジェクトを明示的に設定しなければならない。
レスポンダチェーンは特定の配信経路に従う
初期オブジェクト−ヒットテストビュー又はファーストレスポンダのいずれか−がイベントを処理しない場合、UIKitはチェーン内の次のレスポンダにイベントを渡す。各レスポンダは、イベントを処理したいか、又は、nextResponderメソッドをコールすることによりそれ自体の次のレスポンダに沿ってイベントを渡したいかを判断する。このプロセスは、レスポンダオブジェクトがイベントを処理するか、又はこれ以上レスポンダがなくなるまで続く。
レスポンダチェーンシーケンスは、iOSがイベントを検出し、通常、ビューである初期オブジェクトにイベントを渡すときに始まる。初期ビューはイベントを処理する最初の機会を有する。図2−2は、2つのアプリ構成のための2つの異なるイベント配信経路を示す。アプリのイベント配信経路はその固有の構造に依存するが、すべてのイベント配信経路は同じ経験則に密着する。
左側のアプリの場合、イベントはこの経路に従う。
1.初期ビューがイベント又はメッセージを処理するように試みる。初期ビューがイベントを処理することができない場合、初期ビューはそのビューコントローラのビュー階層内の最上位ビューではないので、初期ビューはそのスーパービューにイベントを渡す。
2.スーパービューがイベントを処理するように試みる。スーパービューがイベントを処理することができない場合、スーパービューはまだビュー階層内の最上位ビューではないので、スーパービューはそのスーパービューにイベントを渡す。
3.ビューコントローラのビュー階層内の最上位ビューがイベントを処理するように試みる。最上位ビューがイベントを処理することができない場合、最上位ビューはそのビューコントローラにイベントを渡す。
4.ビューコントローラがイベントを処理するように試み、できない場合、ウィンドウにイベントを渡す。
5.ウィンドウオブジェクトがイベントを処理することができない場合、ウィンドウオブジェクトはシングルトンアプリオブジェクトにイベントを渡す。
6.アプリオブジェクトがイベントを処理することができない場合、アプリオブジェクトはイベントを廃棄する。
右側のアプリは少し異なる経路に従うが、すべてのイベント配信経路はこれらの経験則に従う。
1.ビューがそのビューコントローラのビュー階層に、それが最上位ビューに達するまでイベントを渡す。
2.最上位ビューがそのビューコントローラにイベントを渡す。
3.ビューコントローラがその最上位ビューのスーパービューにイベントを渡す。イベントがルートビューコントローラに達するまで、ステップ1〜3を繰り返す。
4.ルートビューコントローラがウィンドウオブジェクトにイベントを渡す。
5.ウィンドウがアプリオブジェクトにイベントを渡す。
重要:カスタムビューを実装して、リモートコントロールイベント、アクションメッセージ、UIKitを伴うシェイクモーションイベント、又は編集メニューメッセージを処理する場合、直接nextResponderにイベント又はメッセージを転送して、それをレスポンダチェーンに送ってはいけない。代わりに、現在イベントハンドリングメソッドのスーパークラス実装を起動し、ためにレスポンダチェーンの横断をUIKitに処理させる。
マルチタッチイベント
Objective−CSwift
一般に、UIKit内の標準のコントロール及びジェスチャレコグナイザを用いて、タッチイベントのほとんどすべてを処理することができる。ジェスチャレコグナイザにより、タッチが生み出すアクションからタッチの認識を分離することが可能になる。場合によっては、タッチの効果からタッチ認識を分離するメリットがない場合、アプリの中であること−タッチ中のドローイングなど−を行うことを望む。ビューのコンテンツがタッチ自体に密接に関係している場合、直接タッチイベントを処理することができる。ユーザがビューにタッチしたときにタッチイベントを受け取り、それらのプロパティに基づいてそれらのイベントを解釈し、次いで適切に応答する。
UIResponderのサブクラスを作成する
アプリがカスタムタッチイベントハンドリングを実装するために、最初にレスポンダクラスのサブクラスを作成する。このサブクラスは以下のうちの任意の1つの可能性がある。
次いで、マルチタッチイベントを受け取るサブクラスのインスタンスの場合。
1.サブクラスは、サブクラス内にタッチイベントハンドリングメソッドを実装する(ページ39)に記載されるように、タッチイベントハンドリング用のUIResponderメソッドを実装しなければならない。
2.タッチを受け取るビューは、そのuserlnteractionEnableプロパティをYESに設定していなければならない。ビューコントローラを下位分類している場合、ビューコントローラが管理するビューは、ユーザインターフェースをサポートしなければならない。
3.タッチを受け取るビューは目に見えなければならず、透明であったり、隠されていてはいけない。
サブクラス内にタッチイベントハンドリングメソッドを実装する
iOSは、マルチタッチシーケンスの一部としてタッチを認識する。マルチタッチシーケンスの間、アプリはターゲットレスポンダに一連のイベントメッセージを送る。これらのメッセージを受け取り処理するために、レスポンダオブジェクトのクラスは、以下のUIResponderメソッドを実装しなければならない。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent: (UIEvent *)event;
注:これらのメソッドは、カスタムジェスチャレコグナイザを作成する(ページ28)に記載されたように、カスタムジェスチャレコグナイザを作成するためにオーバーライドしたメソッドと同じシグネチャを有する。
これらのタッチメソッドの各々は、タッチフェーズ:開始、移動、終了、及び取消に対応する。所与のフェーズの間の新しい又は変化したタッチが存在するとき、アプリオブジェクトはこれらのメソッドのうちの1つをコールする。各メソッドは、2つのパラメータ:1組のタッチ及びイベントを取る。
1組のタッチは、そのフェーズの間の新しい又は変化したタッチを表す、UITouchオブジェクトのセット(NSSet)である。たとえば、タッチが開始フェーズから移動フェーズに遷移するとき、アプリはtouchesMoved:withEvent:メソッドをコールする。touchesMoved:withEvent:メソッドに渡された1組のタッチは、今や、このタッチ及び移動フェーズ内のすべての他のタッチを含む。他のパラメータは、イベント用のすべてのタッチオブジェクトを含むイベント(UIEventオブジェクト)である。イベント内のタッチオブジェクトのうちのいくつかは前のイベントメッセージから変化していない場合があるので、これは1組のタッチとは異なる。
タッチを処理するすべてのビューは、完全なタッチイベントストリームを受け取ることを予想し、そのため、サブクラスを作成するとき、以下の規則に留意されたい。
・カスタムレスポンダがUIView又はUIViewControllerのサブクラスである場合、イベントハンドリングメソッドのすべてを実装するべきである。
・任意の他のレスポンダクラスを下位分類する場合、イベントメソッドのうちのいくつかについてヌル実装を有することができる。
・すべてのメソッドにおいて、メソッドのスーパークラス実装をコールするようにする。
イベントのある特定のフェーズの間にレスポンダオブジェクトがタッチを受け取ることを防止する場合、生じる挙動は未定義であり、恐らく望ましくない場合がある。
レスポンダがイベントを処理しながら持続的オブジェクトを作成する場合、レスポンダは、システムがそのシーケンスを取り消す場合、touchesCancelled:withEvent:メソッドを実装して、それらのオブジェクトを処分するべきである。取消は、外部イベント−たとえば、着信電話呼出し−が現在のアプリのイベント処理を妨害するときに発生する。レスポンダオブジェクトは、マルチタッチシーケンス用の最後のtouchesEnded:withEvent:メッセージを受け取ったとき、任意の持続的オブジェクトも処分するべきであることに注意されたい。マルチタッチシーケンス内の最後のUITouchPhaseEndedタッチオブジェクトをどのように決定するかを見出すために、タッチイベントを転送する(ページ52)を参照されたい。
タッチイベントのフェーズ及び位置を追跡する
iOSはマルチタッチシーケンス内のタッチを追跡する。iOSは、タッチのフェーズ、ビュー内のタッチの位置、タッチの前の位置、及びタッチのタイムスタンプを含む、タッチの各々についての属性を記録するこれらのプロパティを使用して、タッチにどのように応答するかを決定する。
タッチオブジェクトはphaseプロパティ内にフェーズ情報を記憶し、各フェーズはタッチイベントメソッドのうちの1つに対応する。タッチオブジェクトは、3つの方法:タッチが発生したウィンドウ、そのウィンドウ内のビュー、及びそのビュー内のタッチの正確な位置で位置を記憶する。図3−1(ページ40)は進行中の2つのタッチを有する例示的なイベントを示す。
指が画面にタッチすると、そのタッチは、イベントが処理用に別のビューに後で渡される場合でも、イベントの有効期間、下にあるウィンドウとビューの両方に関連付けられる。タッチの位置情報を使用して、タッチにどのように応答するかを決定する。たとえば、立て続けに2つのタッチが発生した場合、それらの両方が同じビュー内で発生した場合のみ、それらはダブルタップとして扱われる。タッチオブジェクトは、1つ存在する場合、その現在位置とその前の位置の両方を記憶する。
タッチオブジェクトを取り出し照会する
イベントハンドリングメソッドにおいて、以下からタッチオブジェクトを取り出すことにより、イベントについての情報を取得する。
・セットオブジェクト。渡されたNSSetは、touchesBegan:withEvent:メソッドのためのUITouchPhaseBeganなどの、メソッドによって表されるフェーズ内の新しい又は変化したすべてのタッチを含んでいる。
・イベントオブジェクト。渡されたUIEventオブジェクトは、所与のマルチタッチシーケンス用のタッチのすべてを含んでいる。
multipleTouchEnabledプロパティはデフォルトでNOに設定され、それは、ビューがマルチタッチシーケンス内の最初のタッチのみを受け取ることを意味する。このプロパティが無効にされると、セット内に1つのオブジェクトのみが存在するので、セットオブジェクト上のanyObjectメソッドをコールすることにより、タッチオブジェクトを取り出すことができる。
タッチの位置を知りたい場合、IocationInView:メソッドを使用する。このメソッドにパラメータ自体を渡すことにより、受け取るビューの座標系内のタッチの位置を取得する。同様に、previousLocationlnView:メソッドは、タッチの前の位置を伝える。タッチがいくつのタップを有するか(tapCount)、タッチがいつ作成されたか、又は最後に変化したか(timestamp)、及びタッチがどのフェーズにいるか(phase)を判定することもできる。
、最後のフェーズから変化してないタッチ、又は渡されたセット内のタッチとは異なるフェーズ内にあるタッチに関心がある場合、イベントオブジェクト内でそれらを見つけることができる。図3−2はタッチオブジェクトを含んでいるイベントオブジェクトを描写する。これらのタッチオブジェクトのすべてを取得するために、イベントオブジェクト上のallTouchesメソッドをコールする。
特定のウィンドウに関連付けられたタッチのみに関心がある場合、UIEventオブジェクトのtouchesForWindow:メソッドをコールする。図3−3はウィンドウAに対するすべてのタッチを示す。
特定のビューに関連付けられたタッチを取得したい場合、イベントオブジェクトのtouchesForView:メソッドをコールする。図3−4はビューAに対するすべてのタッチを示す。
タップジェスチャを処理する
アプリの中でタップジェスチャを認識することができることに加えて、恐らく、シングルタップ、ダブルタップ、又はトリプルタップさえも区別することを望むであろう。タッチのtapCountプロパティを使用して、ユーザがビューをタップした回数を特定する。
この値を見つける最も良い場所は、ユーザがタップから指を上げるときに対応するので、touchesEnded:withEvent:メソッドである。タッチアップフェーズ−シーケンスが終了したとき−内のタップカウントを探すことにより、指が実際にタップしていて、たとえば、タッチダウン及びドラッグしていないことを保証する。リスト3−1は、ビューのうちの1つにおいてダブルタップが発生したかどうかをどのように判定するかの一例を示す。
リスト3−1 ダブルタップジェスチャを検出する
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *aTouch in touches) {
if (aTouch.tapCount >= 2){
//ビューがタップに応答する
[self respondToDoubleTapGesture:aTouch];
}
}
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
}
スワイプジェスチャ及びドラッグジェスチャを処理する
水平スワイプ及び垂直スワイプは、追跡することができる簡単なタイプのジェスチャである。スワイプジェスチャを検出するために、モーションの所望の軸に沿ってユーザの指の動きを追跡する。次いで、ジェスチャごとに以下の質問を調べることにより、動きがスワイプであるかどうかを判断する。
・ユーザの指が十分遠くまで動いたか?
・ユーザの指が比較的一直線に動いたか?
・ユーザの指がそれをスワイプと呼べるほど十分速く動いたか?
これらの質問に答えるために、タッチの初期位置を記憶し、タッチが動くにつれてその位置を比較する。
リスト3−2は、ビュー内の水平スワイプを検出するために使用する可能性があるいくつかの基本追跡メソッドを示す。この例では、ビューは、タッチの初期位置を記憶するためにビューが使用するstartTouchPositionプロパティを有する。touchesEnded:メソッドでは、タッチがスワイプであるかどうかを判定するために、終了タッチ場所を開始位置と比較する。タッチが垂直方向に極端に動いたか、又は十分遠くまで動かなかった場合、タッチはスワイプであるとは考えられない。この例は、myProcessRightSwipe:メソッド又はmyProcessLeftSwipe:メソッド用の実装を示さないが、カスタムビューはそこでスワイプジェスチャを処理するはずである。
リスト3−2 ビュー内のスワイプジェスチャを追跡する
#define HORIZ_SWIPE_DRAG_MIN 12
#define VERT_SWIPE_DRAG_MAX 4
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *aTouch = [touches anyObject];
//startTouchPositionはプロパティである
self.startTouchPosition = [aTouch locationInView:self];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *aTouch = [touches anyObject];
CGPoint currentTouchPosition = [aTouch locationInView:self];
//タッチの方向が水平であり、十分長いかどうかをチェックする
if (fabsf(self.startTouchPosition.x - currentTouchPosition.x) >= HORIZ_SWIPE_DRAG_MIN &&
fabsf(self.startTouchPosition.y - currentTouchPosition.y) <= VERT_SWIPE_DRAG_MAX)
{
//タッチがスワイプであるように見える場合
if (self.startTouchPosition.x < currentTouchPosition.x) {
[self myProcessRightSwipe:touches withEvent:event];
} else {
[self myProcessLeftSwipe:touches withEvent:event];
}
self.startTouchPosition = CGPointZero;
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
self.startTouchPosition = CGPointZero;
}
このコードはジェスチャの最中にタッチの位置をチェックせず、それは、ジェスチャが画面上のすべてに行く可能性があるが、その開始点及び終了点が一直線である場合まだスワイプと考えられることを意味することに注意されたい。より精巧なスワイプジェスチャレコグナイザは、touchesMoved:withEvent:メソッド内の中間位置もチェックするべきである。垂直方向のスワイプジェスチャを検出するために、同様のコードを使用するはずであるが、x成分とy成分を交換するはずである。
リスト3−3は、シングルタッチを追跡する更に簡単な実装を示し、このとき、ユーザは画面のまわりでビューをドラッグしている。ここで、カスタムビュークラスは、touchesMoved:withEvent:メソッドのみを完全に実装する。このメソッドは、ビュー内のタッチの現在位置と前の位置との間のデルタ値を計算する。次いで、メソッドは、このデルタ値を使用してビューのフレームの起点をリセットする。
リスト3−3 シングルタッチを使用してビューをドラッグする
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *aTouch = [touches anyObject];
CGPoint loc = [aTouch locationInView:self];
CGPoint prevloc = [aTouch previousLocationInView:self];
CGRect myFrame = self.frame;
float deltaX = loc.x - prevloc.x;
float deltaY = loc.y - prevloc.y;
myFrame.origin.x += deltaX;
myFrame.origin.y += deltaY;
[self setFrame:myFrame];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
}
複合マルチタッチシーケンスを処理する
タップ、ドラッグ、及びスワイプは、通常、ただ1つのタッチを要し、追跡することが簡単である。2つ以上のタッチから構成されるタッチイベントを処理することはより困難である。変化したタッチ属性を記録し、内部状態を適切に変更して、すべてのフェーズを通してすべてのタッチを追跡しなければならない場合がある。複数のタッチを追跡し処理するために、
・ビューのmultipleTouchEnabledプロパティをYESに設定し、
・コアファウンデーションディクショナリオブジェクト(CFDictionaryRef)を使用して、イベントの間のそれらのフェーズを通してタッチの変化を追跡する
必要がある。
複数のタッチを有するイベントを処理するとき、しばしば、後でタッチを比較することができるように、タッチの状態についての情報を記憶する。一例として、各タッチの最終位置をその元の位置と比較することを望むとしよう。touchesBegan:withEvent:メソッドにおいて、locationInView:メソッドから各タッチの元の位置を取得し、キーとしてUITouchオブジェクトのアドレスを使用して、CFDictionaryRefオブジェクト内にそれらを記憶する。次いで、touchesEnded:withEvent:メソッドにおいて、各々の渡されたタッチオブジェクトのアドレスを使用して、オブジェクトの元の位置を取得し、それをその現在位置と比較することができる。
重要:NSDictionaryはそのキーをコピーするので、NSDictionaryオブジェクトよりもむしろCFDictionaryRefデータタイプを使用して、タッチを追跡する。UITouchクラスは、オブジェクトコピーイングに必要なNSCopyingプロトコルを採用しない。
リスト3−4は、コアファウンデーションディクショナリ内にUITouchオブジェクトの開始位置をどのように記憶するかを示す。cacheBeginPointForTouches:メソッドは、スーパービューの座標で各タッチの位置を記憶し、その結果、メソッドはタッチのすべての位置を比較する共通座標系を有する。
リスト3−4 マルチタッチの開始位置を記憶する
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self cacheBeginPointFodouches:touches];
}
- (void)cacheBeginPointForTouches:(NSSet *)touches {
if ([touches count] > 0){
for (UITouch *touch in touches) {
CGPoint *point = (CGPoint *) CFDictionaryGetValue(touchBeginPoints, touch);
if (point == NULL) {
point = (CGPoint *)malloc(sizeof(CGPoint));
CFDictionarySetValue(touchBeginPoints, touch, point);
}
*point = [touch locationInView:view.superview];
}
}
}
リスト3−5は前の例を土台にする。リスト3−5は、ディクショナリから初期位置をどのように取り出すかを示す。次いで、リスト3−5は同じタッチの現在位置を取得し、その結果、これらの値を使用して、アフィン変換(図示せず)を計算することができる。
リスト3−5 タッチオブジェクトの初期位置を取り出す
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
CGAffineTransform newTransform = [self incrementalTransformWithTouches:touches];
}
-(CGAffineTransform)incrementalTransformWithTouches:(NSSet *)touches {
NSArray *sortedTouches = [[touches allObjects] sortedArrayUsingSelector:@selector(compareAddress:)];
//ここに他のコード
CGAffineTransform transform = CGAffineTransformIdentity;
UITouch *touch1 = [sortedTouches objectAtIndex:0];
UITouch *touch2 = [sortedTouches objectAtIndex:1];
CGPoint beginPoint1 = *(CGPoint *)CFDictionaryGetVaIue(touchBeginPoints, touch1);
CGPoint currentPoint1 = [touch1 locationInView:view.superview];
CGPoint beginPoint2 = *(CGPoint *)CFDictionaryGetValue(touchBeginPoints, touch2);
CGPoint currentPoint2 = [touch2 locationInView:view.superview];
//アフィン変換を計算し、変換を返す
}
次の例、リスト3−6は、タッチ変化を追跡するためにディクショナリを使用しないが、イベントの間に複数のタッチを処理する。リスト3−6は、指が「ようこそ」プラカードを画面のまわりに動かすにつれてその動きをアニメ化することにより、タッチに応答するカスタムUIViewオブジェクトを示す。リスト3−6はまた、ユーザがダブルタップするとプラカードの言語を変更する。この例は、MoveMeサンプルコードプロジェクトから来ており、それを調査してイベントハンドリングコンテキストのより良い理解を得ることができる。
リスト3−6 複合マルチタッチシーケンスを処理する
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//アプリはシングルタッチのみをサポートし、そのため、anyObjectは、
//タッチからそのタッチのみを取り出す
UITouch *touch = [touches anyObject];
//タッチがプラカードビュー内にあった場合のみプラカードビューを動かす
if([touch view] !=placardView) {
//ダブルタップがプラカードビューの外にある場合、
//プラカードの表示文字列を更新する
if ([touch tapCount] == 2){
[placardView setupNextDisplayString];
}
return;
}
//最初のタッチをアニメ化する
CGPoint touchPoint = [touch locationInView:self];
[self animateFirstTouchAtPoint:touchPoint];
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
//タッチがplacardView内にあった場合、placardViewをその位置に動かす
if ([touch view] == placardView) {
CGPoint location = [touch locationInView:self];
placardView.center = location;
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
//タッチがplacardView内にあった場合、それを中央に跳ね返す
if ([touch view] == placardView) {
//ユーザ対話を無効にし、そのため、後続のタッチが
//アニメーションに干渉しない
self.userlnteractionEnabled = NO;
[self animatePlacardViewToCenter];
}
}
-(void)touchesCancelled:(NSSet *)touches withEvent: (UIEvent *)event {
//デバイスに負わせる影響を可能なかぎり小さくするために、単に
//プラカードビューの中央及び変換を元の値に設定する
placardView.center = self.center;
placardView.transform = CGAffineTransformIdentity;
}
マルチタッチシーケンス内の最後の指がビューからいつ上がったかを明らかにするために、タッチオブジェクトが渡されたセット内にいくつあるか、及び渡されたUIEventオブジェクト内にいくつあるかを参照する。数が同じ場合、マルチタッチシーケンスは終わっている。リスト3−7はこれをコードでどのように行うかを示す。
リスト3−7 マルチタッチシーケンス内の最後のタッチがいつ終了したかを判定する
- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event {
if ([touches count] == [[event touchesForView:self] count]) {
//最後の指が上がった
}
}
渡されたセットが所与のフェーズの間の新しい又は変化したビューに関連付けられたすべてのタッチオブジェクトを含んでおり、touchesForView:メソッドから返されたタッチオブジェクトが指定されたビューに関連付けられたすべてのオブジェクトを含むことを覚えておくこと。
カスタムタッチイベントの挙動を指定する
アプリ内の特定のジェスチャ、特定のビュー、又はタッチイベントのすべての挙動を変更することにより、アプリがタッチを処理する方法をカスタマイズする。以下の方法でタッチイベントのストリームを変更することができる。
・複数のタッチの配信をオンにする。デフォルトでは、ビューはマルチタッチシーケンスの間、最初のタッチ以外のすべてを無視する。ビューが複数のタッチを処理することを望む場合、インターフェースビルダ内の関係する属性を設定することにより、又はビューのmultipleTouchEnabledプロパティをブログラムでYESに設定することにより、ビューに対してこの機能を有効にしなければならない。
・イベント配信をシングルビューに限定する。デフォルトでは、ビューのexclusiveTouchプロパティがNOに設定され、それは、あるビューが、ウィンドウ内の他のビューがタッチを受け取ることをブロックしないことを意味する。特定のビューに対してそのプロパティをYESに設定した場合、そのビューは、タッチを追跡する唯一のビューである場合−その場合のみ−タッチを受け取る。
ビューが非排他的である場合、ユーザは、1つのビュー内で1つの指を、別のビュー内で別の指をタッチすることができ、各ビューは同時にそのタッチを追跡することができる。次に、図3−5のようにセットアップされたビューを有すること、及びビューAが排他的タッチビューであることを想像してみよう。ユーザがAの内部をタッチした場合、Aはタッチを認識する。しかし、ユーザがビューB内部で1つの指を保持し、ビューA内部もタッチした場合、ビューAは、タッチを追跡する唯一のビューではなかったので、タッチを受け取らない。同様に、ユーザがビューA内部で1つの指を保持し、ビューB内部もタッチした場合、ビューAがタッチを追跡する唯一のビューなので、ビューBはタッチを受け取らない。どんなときも、ユーザはBとCの両方に更にタッチすることができ、それらのビューはそれらのタッチを同時に追跡することができる。
・イベント配信をサブビューに限定する。カスタムUIViewクラスは、マルチタッチイベントが特定のサブビューに配信されないように、hitTest:withEvent:をオーバーライドすることができる。この技法の説明については、ヒットテスティングをオーバーライドすることによってタッチを横取りする(ページ52)を参照されたい。
完全に、又はある時間期間の間だけ、タッチイベント配信をオフにすることもできる。
・タッチイベントの配信をオフにする。ビューのuserlnteractionEnabledプロパティをNOに設定して、タッチイベント配信をオフにする。ビューは、隠されているか、又は透明である場合も、タッチイベントを受け取らない。
・ある期間の間タッチイベントの配信をオフにする。時々、一時的に−たとえば、コードがアニメーションを実施しているとき−イベント配信をオフにすることを望む。アプリは、beginIgnoringInteractionEventsメソッドをコールしてタッチイベントの受取りを停止し、後で、endIgnoringInteractionEventsメソッドをコールしてタッチイベント配信を再開することができる。
ヒットテスティングをオーバーライドすることによってタッチを横取りする
サブビューをもつカスタムビューを有する場合、サブビューレベルでタッチを処理したいか、又はスーパービューレベルでタッチを処理したいかを決定する必要がある。−サブビューがtouchesBegan:withEvent:メソッド、touchesEnded:withEvent:メソッド、又はtouchesMoved:withEvent:メソッドを実装しないことを意味する−スーパービューレベルでタッチを処理することを選んだ場合、スーパービューは、そのサブビューのうちのいずれかではなくそれ自体を返すように、hitTest:withEvent:をオーバーライドするべきである。
ヒットテスティングをオーバーライドすると、自分自身をヒットテストビューとして設定することにより、スーパービューは、通常最初にサブビューに渡されるタッチを横取りし受け取るので、スーパービューがすべてのタッチを受け取ることが保証される。スーパービューがhitTest:withEvent:をオーバーライドしない場合、タッチイベントは、タッチイベントが最初に発生したサブビューに関連付けられ、スーパービューには決して送られない。
ヒットテスティングはタッチが発生したビューを返す(ページ32)に記載されたように、2つのヒットテストメソッド:ビューのhitTest:withEvent:メソッド及びレイヤのhitTest:メソッドが存在することを思い出してみよう。ユーザ定義でこれらのメソッドをコールする必要はめったにない。それらをオーバーライドしてサブビューからタッチイベントを横取り可能性が高い。しかしながら、時々、レスポンダはイベント転送より前にヒットテスティングを実施する(タッチイベントを転送する(ページ52)参照)。
タッチイベントを転送する
別のレスポンダオブジェクトにタッチイベントを転送するために、そのオブジェクトに適切なタッチイベントハンドリングメッセージを送る。UIKitクラスは自分宛てではないタッチを受け取るように設計されていないので、この技法は注意して使用する。レスポンダオブジェクトがタッチを処理するために、タッチのviewプロパティは、レスポンダへの参照を保持しなければならない。アプリ内の他のレスポンダにタッチを条件付きで転送したい場合、レスポンダのすべては、ユーザ定義のUIViewサブクラスのインスタンスであるべきである。
たとえば、アプリが3つのカスタムビューA、B、及びCを有するとしよう。ユーザがビューAにタッチすると、アプリのウィンドウは、ビューAがヒットテストビューであると判断し、ビューAに初期タッチイベントを送る。いくつかの条件に応じて、ビューAは、ビューB又はビューCのいずれかにイベントを転送する。この場合、ビューA、B、及びCは、この転送を知っていなければならず、ビューB及びCは、自分宛てではないタッチに対処することができなければならない。
イベント転送は、しばしば、タッチオブジェクトを分析してそれらがどこに転送されるべきかを判断することを必要とする。この分析のために取ることができる2〜3の手法が存在する。
・共通スーパービューなどの「オーバレイ」ビューの場合、ヒットテスティングを使用して、それらをサブビューに転送するより前に分析用のイベントを横取りする(ヒットテスティングをオーバーライドすることによってタッチを横取りする(ページ52)参照)。
・UIWindowのカスタムサブクラス内のsendEvent:をオーバーライドし、タッチを分析し、それらを適切なレスポンダに転送する。
sendEvent:メソッドをオーバーライドすると、アプリが受け取るイベントを監視することが可能になる。UIApplicationオブジェクトと各UIWindowオブジェクトの両方はsendEvent:メソッド内でイベントを送出し、そのため、このメソッドは、アプリに入ってくるイベント用の集中点として働く。これは、非常に少ないアプリが行う必要がある何かであり、sendEvent:をオーバーライドする場合、スーパークラスの実装−[super sendEvent:theEvent]を必ず起動するようにする。イベントの分配を決して改ざんしてはいけない。
リスト3−8は、UIWindowのサブクラス内のこの技法を示す。この例では、イベントは、それが関連付けられたビュー上でアフィン変換を実施するカスタムヘルパレスポンダに転送される。
リスト3−8 ヘルパレスポンダオブジェクトにタッチイベントを転送する
- (void)sendEvent:(UIEvent *)event {
for (TransformGesture *gesture in transformGestures) {
//イベントから関心があるすべてのタッチを収集する
NSSet *touches = [gesture observedTouchesForEvent:event];
NSMutableSet *began = nil;
NSMutableSet *moved = nil;
NSMutableSet *ended = nil;
NSMutableSet *canceled = nil;
//通常のイベント送出と同様に処理するためにフェーズによってタッチをソートする
for (UITouch *touch in touches) {
switch ([touch phase]) {
case UITouchPhaseBegan:
if (!began)began = [NSMutableSet set];
[began addObject:touch];
break;
case UITouchPhaseMoved:
if (!moved)moved = [NSMutableSet set];
[moved addObject:touch];
break;
case UITouchPhaseEnded:
if (!ended)ended = [NSMutableSet set];
[ended addObject:touch];
break;
case UITouchPhaseCancelled:
if (!canceled) canceled = [NSMutableSet set];
[canceled addObject:touch];
break;
default:
break;
}
}
//メソッドをコールしてタッチを処理する
if (began) [gesture touchesBegan:began withEvent:event];
if (moved) [gesture touchesMoved:moved withEvent:event];
if (ended) [gesture touchesEnded:ended withEvent:event];
if (canceled) [gesture touchesCancelled:canceled withEvent:event];
}
[super sendEvent:event];
}
サブクラスをオーバーライドすることは、sendEvent:メソッドのスーパークラス実装を起動することに注意されたい。これは、タッチイベントストリームの完全性にとって重要である。
マルチタッチイベントを処理するためのベストプラクティス
タッチイベントとモーションイベントの両方を処理するとき、従うべき少数の推奨される技法及びパターンが存在する。
・イベント取消メソッドを常に実装する。
実装において、現在のマルチタッチシーケンスの前にそうであった状態に、ビューの状態を戻する。そうしない場合、ビューは整合性のない状態で残される可能性があり、又は、いくつかの場合では、別のビューが取消メッセージを受け取る可能性がある。
・UIView、UIViewController、又はUIResponderのサブクラス内のイベントを処理する場合、
・それらのメソッドの実装が何も行わない場合でも、イベントハンドリングメソッドのすべてを実装する。
・メソッドのスーパークラス実装をコールしてはいけない。
・任意の他のUIKitレスポンダクラスのサブクラス内のイベントを処理する場合、
・イベントハンドリングメソッドのすべてを実装するべきではない。
・実装するメソッドでは、必ずスーパークラス実装をコールする。たとえば、[super touchesBegan:touches withEvent:event]。
・UIKitフレームワークの他のレスポンダオブジェクトにイベントを転送してはいけない。
代わりに、UIViewのユーザ定義のサブクラスのインスタンスにイベントを転送する。その上、イベント転送が行われていること、及びそれらが自分宛てではないタッチを受け取ることができることにこれらのレスポンダオブジェクトが気付くことを確認すること。
・nextResponderメソッドを通してレスポンダチェーンにイベントを明示的に送ってはならず、代わりに、スーパークラス実装を起動し、UIKitにレスポンダチェーンの横断を処理させる。
・精度を失うので、タッチハンドリングにおいて整数丸めコードを使用してはいけない。
iOSは、320×480座標空間内でタッチを報告して、ソース互換性を維持する。しかしながら、高精細デバイスでは、解像度は実際各次元において2倍高く(640×960)、それは、タッチが高精細デバイス上のハーフポイント境界に着地できることを意味する。より古いデバイス上では、タッチはフルポイント境界上にのみ着地する。
モーションイベント
SwiftObjective−C
ユーザは、デバイスを動かすか、振るか、又は傾けるときにモーションイベントを発生させる。これらのモーションイベントは、デバイスハードウェア、特に、加速度計及びジャイロスコープによって検出される。
加速度計は、実際は、3つの加速度計、各軸−x、y、及びz用に1つで構成されている。各加速度計は、線形経路に沿って時間とともに速度における変化を測定する。3つの加速度計すべてを組み合わせると、任意の方向のデバイスの動きを検出し、デバイスの現在方向を取得することが可能になる。3つの加速度計が存在するが、本文書の残りでは、それらを単一のエンティティとして参照する。ジャイロスコープは、3つの軸のまわりの回転速度を測定する。
モーションイベントは同じハードウェアが発生源となる。アプリのニーズに応じて、そのハードウェアデータにアクセスすることができるいくつかの異なる方法が存在する。
・デバイスの全体的な方向を検出する必要があるが、方向ベクトルを知る必要がない場合、UIDeviceクラスを使用する。詳細については、UIDeviceを用いて現在のデバイスの方向を取得する(ページ56)を参照されたい。
・ユーザがデバイスを振ったときにアプリが応答することを望む場合、UIKitモーションイベントハンドリングメソッドを使用して、渡されたUIEventオブジェクトから情報を取得することができる。詳細については、UIEventを用いてシェイクモーションイベントを検出する(ページ58)を参照されたい。
・UIDeviceクラスもUIEventクラスも十分ではない場合、コアモーションフレームワークを使用して、加速度計、ジャイロスコープ、及びデバイスモーションのクラスにアクセスすることを望む可能性がある。詳細については、コアモーションを用いてデバイスの動きを取り込む(ページ60)を参照されたい。
UIDeviceを用いて現在のデバイスの方向を取得する
、正確な方向ベクトルではなく、デバイスの全体的な方向のみを知る必要があるとき、UIDeviceクラスのメソッドを使用する。UIDeviceを使用することは簡単であり、自分自身で方向ベクトルを計算することを必要としない。
現在方向を取得することができる前に、beginGeneratingDeviceOrientationNotificationsメソッドをコールすることにより、デバイス方向通知の生成を始めるようにUIDeviceクラスに伝える必要がある。これにより、加速度計ハードウェアがオンになり、バッテリ電力の節約がオフになる場合がある。リスト4−1は、viewDidLoadメソッド内でこれを実演する。
方向通知を有効にした後、UIDeviceオブジェクトのorientationプロパティから現在方向を取得する。デバイス方向が変化したとき通知されることを望む場合、UIDeviceOrientationDidChangeNotification通知を受け取るように登録する。デバイス方向は、デバイスが横長モードか、縦長モードか、画面が上向きか、画面が下向きかなどを示す、UIDeviceOrientation定数を使用して報告される。これらの定数はデバイスの物理方向を示すが、必ずしも、アプリのユーザインターフェースの方向に対応するとはかぎらない。
もはやデバイスの方向を知る必要がないとき、UIDeviceメソッド、endGeneratingDeviceOrientationNotificationsをコールすることにより、方向通知を常に無効にする。これにより、加速度計ハードウェアが他のどこでも使用されていない場合、それを無効にする機会がシステムに与えられ、それにより、バッテリ電力が保存される。
リスト4−1 デバイス方向における変化に応答する
-(void) viewDidLoad {
//加速度計をオンにし、加速度計イベントの受取りを開始するように要求する
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];
}
- (void)orientationChanged:(NSNotification *)notification {
//デバイス方向における変化に応答する
}
-(void) viewDidDisappear {
//加速度計イベントの受取りを停止し、加速度計をオフにするように要求する
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
}
UIDevice方向の変化に応答する別の例については、Alternate Viewsサンプルコードオブジェクトを参照されたい。
UIEventを用いてシェイクモーションイベントを検出する
ユーザがデバイスを振ると、iOSは加速度計データを評価する。デルタがある特定の基準を満たす場合、iOSはシェイキングジェスチャを解釈し、それを表すためにUIEventオブジェクトを作成する。次いで、iOSは、処理用に現在アクティブなアプリにそのイベントオブジェクトを送る。アプリは、シェイクモーションイベント及びデバイス方向の変化に同時に応答できることに注意されたい。
モーションイベントはタッチイベントよりも簡単である。システムは、モーションが開始及び終了したときをアプリに伝えるが、各個別のモーションが発生したときは伝えない。また、モーションイベントは、イベントタイプ(UIEventTypeMotion)、イベントサブタイプ(UIEventSubtypeMotionShake)、及びタイムスタンプのみを含む。
モーションイベント用のファーストレスポンダを指定する
モーションイベントを受け取るために、あるレスポンダオブジェクトをファーストレスポンダとして指定する。これは、モーションイベントを処理したいレスポンダオブジェクトである。リスト4−2は、レスポンダがどのように自分自身をファーストレスポンダにすることができるかを示す。
リスト4−2 ファーストレスポンダになる
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)viewDidAppear:(BOOL)animated {
[self becomeFirstResponder];
}
モーションイベントは、レスポンダチェーンを使用して、イベントを処理することができるオブジェクトを見つける。ユーザがデバイスを振ることを開始すると、iOSは、ファーストレスポンダに最初のモーションイベントを送る。ファーストレスポンダがイベントを処理しなかった場合、ファーストレスポンダはレスポンダチェーンを進める。詳細については、レスポンダチェーンは特定の配信経路に従う(ページ35)を参照されたい。シェイキングモーションイベントが処理されずにウィンドウまでレスポンダチェーンを移動し、UIApplicationのapplicationSupportsShakeToEditプロパティがYES(デフォルト)に設定されている場合、iOSはUndoコマンド及びRedoコマンドを有するシートを表示する。
モーションハンドリングメソッドを実装する
3つのモーションハンドリングメソッド:motionBegan:withEvent:、motionEnded:withEvent:、及びmotionCancelled:withEvent:が存在する。モーションイベントを処理するために、motionBegan:withEvent:メソッド又はmotionEnded:withEvent:メソッドのいずれか、及び時々両方を実装しなければならない。レスポンダは、iOSがモーションイベントを取り消したときに応答するために、motionCancelled:withEvent:メソッドも実装するべきである。シェイクモーションが中断された場合、又はモーションが結局有効ではなかったとiOSが判断した場合、たとえば、シェイキングが長く続きすぎる場合、イベントは取り消される。
リスト4−3は、サンプルコードプロジェクト、GLPaintから引用されている。このアプリでは、ユーザが画面上でペイントし、次いで、デバイスを振ってペインティングを消去する。このコードは、シェイクがmotionEnded:withEvent:メソッド内で発生したかどうかを検出し、そうである場合、shake−to−erase機能を実施するように通知をポストする。
リスト4−3 モーションイベントを処理する
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (motion == UIEventSubtypeMotionShake)
{
//ユーザがデバイスを振っていた。「シェイク」という名前の通知をポストする
[[NSNotificationCenter defaultCenter] postNotificationName:@"shake"object:self];
}
}
注:その簡潔さに加えて、コアモーションの代わりにシェイクモーションイベントを使用することを考慮する別の理由は、アプリをテスト及びデバッグするとき、iOSシミュレータ内でシェイクモーションイベントをシミュレートできることである。iOSシミュレータの詳細については、iOS Simulator User Guideを参照されたい。
モーションイベントに必要なハードウェア能力を設定及びチェックする
アプリが加速度計データなどのデバイスに関連する機能にアクセスすることができる前に、アプリに必要な能力のリストを追加しなければならない。具体的には、アプリのInfo.plistファイルにキーを追加する。実行時、iOSは、デバイスが必要な能力を有する場合のみ、アプリを起動する。たとえば、アプリがジャイロスコープデータに依拠する場合、アプリがジャイロスコープがないデバイス上で起動されないように、ジャイロスコープを必須として列挙する。App Storeもこのリストを使用して、ユーザが実行することができないアプリをダウンロードすることを回避できるように、ユーザに知らせる。
アプリのプロパティリストにキーを以下することによって、アプリの必要な能力を宣言する。ハードウェアソースに基づいて、モーションイベント用の2つのUIRequiredDeviceCapabilitiesキーが存在する。
・accelerometer
・gyroscope
注:アプリがデバイス方向の変化のみを検出する場合、accelerometerキーを含める必要はない。
アレイ又はディクショナリのいずれかを使用してキー値を指定することができる。アレイを使用する場合、各々の必要な機能をアレイ内のキーとして列挙する。ディクショナリを使用する場合、ディクショナリ内の必要なキーごとにブール値を指定する。両方のケースとも、機能用のキーを列挙しないことは、その機能が必要ではないことを示す。詳細については、UIRequiredDeviceCapabiIitiesを参照されたい。
ジャイロスコープデータを使用するアプリの機能がユーザ体験に不可欠ではない場合、ジャイロスコープデバイスをもたないユーザがアプリをダウンロードすることを許可したいかもしれない。ジャイロスコープを必要なハードウェア能力にしないが、ジャイロスコープデータを必要とするコードをまだ有する場合、実行時にジャイロスコープが利用可能かどうかをチェックする必要がある。CMMotionManagerクラスのgyroAvailableプロパティを用いてこれを行う。
コアモーションを用いてデバイスの動きを取り込む
コアモーションフレームワークは、主に、生の加速度計データ及びジャイロスコープデータにアクセスし、そのデータを処理用のアプリに渡すことに関与する。コアモーションは、ユニークなアルゴリズムを使用して、収集した生データを処理し、その結果、コアモーションは、より精密な情報を提示することができる。この処理は、フレームワーク自体のスレッド上で行われる。
コアモーションは、UIKitとは別個である。コアモーションはUIEventモデルと接続されず、レスポンダチェーンを使用しない。代わりに、コアモーションは、モーションイベントを必要とするアプリに直接それらを配信するだけである。
コアモーションイベントは、各々が1つ又は複数の測定値をカプセル化する、3つのデータオブジェクトによって表される。
・CMAccelerometerDataオブジェクトは、空間軸の各々に沿った加速度を取り込む。
・CMGyroDataオブジェクトは、3つの空間軸の各々のまわりの回転速度を取り込む。
・CMDeviceMotionオブジェクトは、姿勢並びに回転速度及び加速度のより有用な測定値を含む、いくつかの異なる測定値をカプセル化する。
CMMotionManagerクラスは、コアモーション用の中央アクセスポイントである。クラスのインスタンスを作成し、更新間隔を指定し、その更新開始を要求し、モーションイベントが配信されるとそれらを処理する。アプリは、CMMotionManagerクラスの単一のインスタンスのみを作成するべきである。このクラスの複数のインスタンスは、アプリが加速度計及びジャイロスコープからデータを受け取る速度に影響を及ぼすことができる。
コアモーションのデータカプセル化クラスのすべてはCMLogltemのサブクラスであり、CMLogltemは、モーションデータが時間でタグ付けされファイルにログされ得るようにタイムスタンプを定義する。アプリは、モーションイベントのタイムスタンプを前のモーションイベントと比較して、イベント間の真の更新間隔を決定することができる。
記載されたデータモーションタイプの各々に対して、CMMotionManagerクラスは、モーションデータを取得するための2つの手法を提供する。
・プルアプリは、更新開始を要求し、次いで、モーションデータの最新の測定値を周期的にサンプリングする。
・プッシュアプリは、更新間隔を指定し、データを処理するためのブロックを実装する。次いで、アプリは、その更新開始を要求し、動作キュー及びブロックをコアモーションに渡す。コアモーションは、各更新をブロックに配信し、ブロックは動作キュー内のタスクとして実行される。
プルは、ほとんどのアプリ、特にゲーム向けの推奨手法である。プルは、一般に、より効率的で、少ないコードしか必要としない。プッシュは、たった1つのサンプル測定値も逃すことができないデータ収集アプリ及び同様のアプリに適している。両方の手法は、良好なスレッド安全効果を有し、プッシュの場合、ブロックは動作キューのスレッド上で実行され、プルの場合、コアモーションはスレッドを決して中断しない。
重要:コアモーションの場合、デバイス上でアプリをテスト及びデバッグしなければならない。加速度計データ又はジャイロスコープデータのためのiOSシミュレータ内のサポートは存在しない。
アプリが必要なデータの処理を終了するやいなや、常にモーション更新を停止する。結果として、コアモーションはモーションセンサをオフにすることができ、それにより、バッテリ電力が節約される。
モーションイベント更新間隔を選ぶ
コアモーションを用いてモーションデータを要求するとき、更新間隔を指定する。アプリのニーズを満たす最大の間隔を選ぶべきである。間隔が大きいほど、少ないイベントがアプリに配信され、それにより、バッテリ寿命が改善される。表4−1は、いくつかの一般的な更新周波数を列挙し、その周波数で生成されたデータを用いて何をすることができるかを説明する。毎秒100回配信される加速度イベントを必要とするアプリは少ない。
100Hzの更新レートに対応する10ミリ秒(ms)くらい小さくなるように報告間隔を設定することができるが、ほとんどのアプリは、より大きい間隔でも十分動作する。
コアモーションを使用して加速度計イベントを処理する
加速度計は、図4−1に示されたように、3つの軸に沿って時間とともに速度を測定する。コアモーションの場合、各々の動きはCMAccelerometerDataオブジェクト内に取り込まれ、CMAccelerometerDataオブジェクトはタイプCMAccelerationの構造をカプセル化する。
加速度計データの取込み及び処理を開始するために、CMMotionManagerクラスのインスタンスを作成し、以下のメソッドのうちの1つをコールする。
・startAccelerometerUpdates−プル手法
このメソッドをコールした後、コアモーションは、加速度計の活動の最新の測定値を用いてCMMotionManagerのaccelerometerDataプロパティを継続的に更新する。次いで、通常、ゲームにおいて一般的なレンダーループ内で、このプロパティを周期的にサンプリングする。このポーリング手法を採用した場合、更新間隔プロパティ(accelerometerUpdatelnterval)をコアモーションが更新を実施する最大間隔に設定する。
・startAccelerometerUpdatesToQueue:withHandler:−プッシュ手法
このメソッドをコールする前に、accelerometerUpdatelntervalプロパティに更新間隔を割り当て、NSOperationQueueのインスタンスを作成し、加速度計の更新を処理するタイプCMAccelerometerHandlerのブロックを実装する。次いで、動作キュー及びブロック内に渡して、モーションマネージャオブジェクト上のstartAccelerometerUpdatesToQueueiwithHandler:メソッドをコールする。指定された更新間隔で、コアモーションは、加速度計の活動の最新サンプルをブロックに渡し、ブロックはキュー内のタスクとして実行される。
リスト4−4(ページ63)はこの手法を示す。
リスト4−4は、より多くのコンテキストを調べることができる、MotionGraphsサンプルコードプロジェクトから引用されている。このアプリでは、ユーザがスライダを動かして更新間隔を指定する。startUpdatesWithSliderValue:メソッドは、スライダ値を使用して新しい更新間隔を計算する。次いで、startUpdatesWithSliderValue:メソッドは、CMMotionManagerクラスのインスタンスを作成し、デバイスが加速度計を有することを確認するためにチェックし、更新間隔をモーションマネージャに割り当てる。このアプリは、プッシュ手法を使用して加速度計データを取り出し、それをグラフ上にプロットする。このアプリは、stopUpdatesメソッド内の加速度計の更新を停止することに注意されたい。
リスト4−4 MotionGraphs内で加速度計データにアクセスする
static const NSTimeInterval accelerometerMin = 0.01;
- (void)startUpdatesWithSliderValue:(int)sliderValue {
//更新間隔を決定する
NSTimeInterval delta = 0.005;
NSTimeInterval updateInterval = accelerometerMin + delta * sliderValue;
//CMMotionManagerを作成する
CMMotionManager *mManager = [(APLAppDelegate *)[[UIApplication sharedApplication] delegate] sharedManager];
APLAccelerometerGraphViewController * _weak weakSelf = self;
//加速度計が利用可能かどうかをチェックする
if ([mManager isAccelerometerAvailable] == YES ){
//モーションマネージャに更新間隔を割り当てる
[mManager setAccelerometerUpdateInterval:updateInterval];
[mManager startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAcceleronieterData *accelerometerData, NSError terror) {
[weakSelf.graphView addX:accelerometerData.acceleration.x y:accelerometerData.acceleration.y z:accelerometerData.acceleration.z];
[weakSelf setLabelValueX:accelerometerData.acceleration.x y:accelerometerData.acceleration.y z:accelerometerData.acceleration.z];
}];
}
seif.updateIntervalLabel.text = [NSString stringWithFormat:@"%f", updateInterval];
}
- (void)stopUpdates {
CMMotionManager *mManager = [(APLAppDelegate *)[[UIApplication sharedApplication] delegate] sharedManager];
if ([mManager isAccelerometerActive] == YES) {
[mManager stopAccelerometerUpdates];
}
}
回転速度データを処理する
ジャイロスコープは、図4−2に示されたように、3つの空間軸の各々のまわりをデバイスが回転する速度を測定する。
ジャイロスコープの更新を要求するたびに、コアモーションは、回転速度のバイアスされた推定値を取り、この情報をCMGyroDataオブジェクト内で返す。CMGyroDataは、CMRotationRate構造を記憶するrotationRateプロパティを有し、CMRotationRate構造は、毎秒3つの軸の各々についての回転速度をラジアン単位で取り込む。CMGyroDataオブジェクトによって測定された回転速度はバイアスされていることに注意されたい。CMDeviceMotionクラスを使用することにより、はるかに正確な、バイアスされていない測定値を取得することができる。詳細については、処理デバイスのモーションデータを処理する(ページ67)を参照されたい。
回転速度データを分析しているとき−特に、CMRotationMatrix構造のフィールドを分析しているとき−、図4−2に示されたように、「右手の法則」に従って回転方向を特定する。たとえば、親指の先端が正のxの方向を指すようにx軸のまわりに右手をくるめた場合、正回転は他の4本の指の先端に向かう回転である。逆回転は、それらの指の先端から離れていく。
回転速度データの受取り及び処理を開始するために、CMMotionManagerクラスのインスタンスを作成し、以下のメソッドのうちの1つをコールする。
・startGyroUpdates−プル手法
このメソッドをコールした後、コアモーションは、ジャイロスコープの活動の最新の測定値を用いてCMMotionManagerのgyroDataプロパティを継続的に更新する。次いで、このプロパティを周期的にサンプリングする。このポーリング手法を採用した場合、更新間隔プロパティ(gyroUpdatelnterval)をコアモーションが更新を実施する最大間隔に設定する。
・startGyroUpdatesToQueue:withHandler:−プッシュ手法
このメソッドをコールする前に、gyroUpdatelntervalプロパティに更新間隔を割り当て、NSOperationQueueのインスタンスを作成し、ジャイロスコープの更新を処理するタイプCMGyroHandlerのブロックを実装する。次いで、動作キュー及びブロック内に渡して、モーションマネージャオブジェクト上のstartGyroUpdatesToQueue:withHandler:メソッドをコールする。指定された更新間隔で、コアモーションは、ジャイロスコープの活動の最新サンプルをブロックに渡し、ブロックはキュー内のタスクとして実行される。
リスト4−5はこの手法を実演する。
リスト4−5もMotionGraphsサンプルコードプロジェクトから引用され、リスト4−4とほとんど同一である。このアプリは、プッシュ手法を使用してジャイロスコープデータを取り出し、その結果、画面上にデータをプロットすることができる。
リスト4−5 MotionGraphs内でジャイロスコープデータにアクセスする
static const NSTimeInterval gyroMin = 0.01;
- (void)startUpdatesWithSliderValue:(int)sliderValue {
//更新間隔を決定する
NSTimeInterval delta = 0.005;
NSTimeInterval updateInterval = gyroMin + delta * sliderValue;
//CMMotionManagerを作成する
CMMotionManager *mManager = [(APLAppDelegate *)[[UIApplication sharedApplication] delegate] sharedManager];
APLGyroGraphViewController * _weak weakSelf = self;
//ジャイロスコープが利用可能かどうかをチェックする
if ([mManager isGyroAvailable] == YES){
//更新間隔をモーションマネージャに割り当てる
[mManager setGyroUpdateInterval:updateInterval];
[mManager startGyroUpdatesToQueue: [NSOperationQueue mainQueue] withHandler:^(CMGyroData *gyroData, NSError *error) {
[weakSelf.graphView addX:gyroData.rotationRate.x y:gyroData.rotationRate.y z:gyroData.rotationRate.z];
[weakSelf setLabelValueX:gyroData.rotationRate.x y:gyroData.rotationRate.y z:gyroData.rotationRate.z];
}];
}
self.updateIntervalLabel.text = [NSString stringWithFormat:@"%f", updateInterval];
}
- (void)stopUpdates{
CMMotionManager *mManager = [(APLAppDelegate *)[[UIApplication sharedApplication] delegate] sharedManager];
if ([mManager isGyroActive] == YES){
[mManager stopGyroUpdates];
}
}
処理デバイスのモーションデータを処理する
デバイスが加速度計とジャイロスコープの両方を有する場合、コアモーションは、両方のセンサからの生のモーションデータを処理するデバイスモーションサービスを提供する。デバイスモーションは、センサ融合アルゴリズムを使用して生データを洗練させ、デバイスの姿勢、そのバイアスされていない回転速度、デバイスの重力方向、及びユーザ生成加速度についての情報を生成する。CMDeviceMotionクラスのインスタンスは、このデータのすべてをカプセル化する。加えて、デバイスモーションは重力とユーザ加速度を分離するので、加速度データをフィルタリングする必要がない。
CMAttitudeオブジェクトをカプセル化するCMDeviceMotionオブジェクトのattitudeプロパティを通して、姿勢データにアクセスすることができる。CMAttitudeクラスの各インスタンスは、姿勢の3つの数学的表現:
・四元数
・回転行列
・3つのオイラー角(回転、ピッチ、及び偏揺れ)
をカプセル化する。
デバイスモーション更新の受取り及び処理を開始するために、CMMotionManagerクラスのインスタンスを作成し、CMMotionManagerクラス上の以下の2つのメソッドのうちの1つをコールする。
・startDeviceMotionUpdates−プル手法
このメソッドをコールした後、コアモーションは、CMDeviceMotionオブジェクト内にカプセル化された、加速度計及びジャイロスコープの活動の最新の洗練された測定値を用いて、CMMotionManagerのdeviceMotionプロパティを継続的に更新する。次いで、このプロパティを周期的にサンプリングする。このポーリング手法を採用した場合、更新間隔プロパティ(deviceMotionUpdatelnterval)をコアモーションが更新を実施する最大間隔に設定する。
リスト4−6はこの手法を示す。
・startDeviceMotionUpdatesToQueue:withHandler:−プッシュ手法
このメソッドをコールする前に、deviceMotionUpdatelntervalプロパティに更新間隔を割り当て、NSOperationQueueのインスタンスを作成し、加速度計の更新を処理するCMDeviceMotionHandlerタイプのブロックを実装する。次いで、動作キュー及びブロック内に渡して、モーションマネージャオブジェクト上のstartDeviceMotionUpdatesToQueue:withHandler:メソッドをコールする。指定された更新間隔で、コアモーションは、CMDeviceMotionオブジェクトによって表されたように、合成された加速度計及びジャイロスコープの活動の最新サンプルをブロックに渡し、ブロックはキュー内のタスクとして実行される。
リスト4−6は、pARkサンプルコードプロジェクトからのコードを使用して、デバイスモーション更新をどのように開始及び終了するかを実演する。StartDeviceMotionメソッドは、プル手法を使用して、基準フレームを用いてデバイス更新を開始する。デバイスモーションの基準フレームの詳細については、デバイス姿勢及び基準フレーム(ページ68)を参照されたい。
リスト4−6 デバイスモーションの更新を開始及び停止する
- (void)startDeviceMotion {
//CMMotionManagerを作成する
motionManager = [[CMMotionManager alloc] init];
//真北基準姿勢を提供する必要があるとき、
//コンパス較正HUDを示すようにコアモーションに伝える
motionManager.showsDeviceMovementDisplay = YES;
motionManager.deviceMotionUpdateInterval = 1.0 / 60.0;
//真北を基準とする姿勢
[motionManager StartDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical];
}
- (void)stopDeviceMotion {
[motionManager stopDeviceMotionUpdates];
}
デバイス姿勢及び基準フレーム
CMDeviceMotionオブジェクトは、デバイスの姿勢又は空間内の方向についての情報を含んでいる。デバイス姿勢は、常に基準フレームとの関連で測定される。コアモーションは、アプリがデバイスモーションの更新を開始するときに基準フレームを確立する。次いで、CMAttitudeは、その初期基準フレームからの回転をデバイスの現在の基準フレームに与える。
コアモーション基準フレームでは、z軸は常に垂直であり、x軸及びy軸は常に重力に直交し、重力は重力ベクトル[0,0,−1]を作成する。これは重力基準としても知られる。CMAttitudeオブジェクトから取得された回転行列を重力基準と乗算した場合、デバイスフレーム内の重力を取得する。すなわち、数学的に:である。
CMAttitudeが使用する基準フレームを変更することができる。それを行うために、基準フレームを含んでいる姿勢オブジェクトをキャッシュし、multiplyBylnverseOfAttitude:に引数としてそれを渡する。メッセージを受け取る姿勢引数は、渡された基準フレームからの姿勢における変化を表すように変化する。
ほとんどのアプリはデバイス姿勢における変化に関心がある。これがどのように有用であり得るかを理解するために、ユーザがデバイスを回転させてスウィングする野球ゲームを考えよう。通常、投球の初めに、バットは同じ静止方向にあるはずである。その後、バットは、デバイスの姿勢が投球の開始からどのように変化したかに基づいてレンダリングされる。リスト4−7は、これをどのように行ってよいかを示す。
リスト4−7 レンダリングより前に姿勢における変化を取得する
-(void)startPitch {
//referenceAttitudeはプロパティである
self.referenceAttitude = self.motionManager.deviceMotion.attitude;
}
- (void)drawView {
CMAttitude *currentAttitude = self.motionManager.deviceMotion.attitude;
[currentAttitude multiplyByInverseOfAttitude: self.referenceAttitude];
//currentAttitudeを使用してバットをレンダリングする
[self updateModelsWithAttitude:currentAttitude];
[renderer render];
}
この例では、muItiplyByInverseOfAttitude:メソッドがリターンした後、currentAttitudeは、referenceAttitudeから最近サンプリングされたCMAttitudeインスタンスへの姿勢における変化を表す。
リモートコントロールイベント
SwiftObjective−C
リモートコントロールイベントは、ユーザがアプリのマルチメディアを制御するための方法である。リモートコントロールイベントは、外部アクセサリ、又はシステムによって表示されるトランスポートコントロールを発生源とし、メディアプレーヤフレームワークのクラスを通してアプリに配信される。オーディオ又はビデオのコンテンツを再生するアプリは、これらのイベントを使用して、再生を開始及び終了し、トラックを変更し、アイテムを格付けさえする。すべてのメディアアプリは、これらのイベントをサポートするべきである。
リモートコントロールイベントをサポートすることに加えて、アプリは、メディアプレーヤフレームワークを使用してトラック用の再生情報を提供することができる。システムは、ロック画面及びコントロールセンタなどの適切な場所に再生情報を表示する。
メディアプレーヤフレームワークのクラスの詳細については、Media Player Framework Referenceを参照されたい。
リモートコントロールイベントに対してアプリを準備する
リモートコントロールイベントを受け取るために、以下を行う。
・サポートするアクションごとにハンドラを登録する。リモートコントロールイベントを処理する(ページ70)に記載されるように、共有MPRemoteCommandCenterオブジェクトを使用して、様々なタイプのイベント用のハンドラを登録する。
・オーディオの再生を開始する。アプリは「再生中」アプリに違いない。アプリは、オーディオの再生を開始するまで、リモートコントロールイベントを受け取らない。
アプリが現在のトラックについての情報を含んでいる再生中情報も提供する場合、MPNowPlayinglnfoCenterオブジェクトを使用して、適当なときにその情報を更新する。再生中情報をどのように提供するかの詳細については、再生中情報を提供する(ページ71)を参照されたい。
リモートコントロールイベントを処理する
特定のリモートコントロールイベントを処理するために、適切なMPRemoteCommandオブジェクトを用いてアクションハンドラを登録する。メディアプレーヤフレームワークは、メディア関連イベントを処理するためのMPRemoteCommandオブジェクトの標準セットを定義する。アクセサリ又はiOSインターフェースがリモートコントロールイベントを生成すると、システムは対応するMPRemoteCommandオブジェクトに通知する。そのオブジェクトは、任意のアタッチされたハンドラを実行することによって応答する。
共有MPRemoteCommandCenterオブジェクトからリモートコントロールイベントを取り出す。リモートコマンドセンタのプロパティは、再生を管理し、トラックを切り替え、トラックを格付けするためのオブジェクトを含んでいる。サポートしたいオブジェクトを取り出し、ブロック又はアクションメソッドのいずれかを使用してハンドラをアタッチする。通常、コマンドのタイプごとに単一のハンドラを登録するが、必要に応じて複数のハンドラを登録することができる。リスト5−1は、ユーザがトラックを再生したいときに実行されるべきブロックをどのように登録するかを示す。この例では、ブロックは、カスタムプレーヤオブジェクトを使用して、現在選択されているトラックを再生する。コードでは、トラックを再生するために必要とするどんなアクションでも実施する。
リスト5−1 リモートコントロールイベントハンドラを登録する
MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter]; [commandCenter.playCommand addTargetUsingBlock:^(MMPRemoteCommandEvent *event) {
//現在のトラックの再生を開始する
[[MyPlayer sharedPlayer]play];
}
明確に所与のコマンドをサポートしたくない場合、コマンドオブジェクトを取り出し、そのenabledプロパティをNOに設定する。リモートコマンドを無効にすると、システムは、アプリが再生中アプリであるとき、そのコマンド用の任意の関連するUIを表示するべきではないことを知ることになる。
いくつかのコマンドオブジェクトは、コマンドに関係する他の情報を指定させる。たとえば、フィードバックコマンドは、フィードバックの意味を記述するローカライズされた文字列を指定させる。サポートしている特定のコマンドの情報については、参考文書を見ること。
リモートコントロールイベント用のハンドラを追加及び削除することの詳細については、MPRemoteCommand Class Referenceを参照されたい。
再生中情報を提供する
オーディオ又はビデオのコンテンツを再生するとき、MPNowPlayinglnfoCenterオブジェクトを使用して、再生されているコンテンツについての記述情報を提供する。MPNowPlayinglnfoCenterオブジェクトは、そのコンテンツが再生されているアイテムを記述するnowPlayinglnfoディクショナリを含んでいる。システムは、iOSデバイスのロック画面などの適切な場所にそのディクショナリからの情報を表示する。
リスト5−2は、MPMediaItem内の情報をどのように使用して再生中情報を構成するかの一例を示す。例は、プロパティの固定セットを列挙し、得られた値を使用して、次いでMPNowPlayinglnfoCenterオブジェクトに割り当てられる新しいディクショナリを構築する。
リスト5−2 メディアアイテムについての再生中情報を収集する
- (void)configureNowPlayinglnfo:(MPMediaItem*)item
{
MPNowPlayinglnfoCenter* info = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary* newInfo = [NSMutableDictionary dictionary];
NSSet* itemProperties = [NSSet setWithObjects:MPMediaItemPropertyTitle,
MPMediaItemPropertyArtist,
MPMedialtemPropertyPlaybackDuration,
MPNowPlayingInfoPropertyElapsedPlaybackTime,
nil];
[item enumerateValuesForProperties:itemProperties
usingBlock:^(NSString *property, id value, BOOL *stop) {
[newInfo setObject:value forKey: property];
}];
info.nowPlayingInfo = newInfo;
}
注:iOSシミュレータでは、nowPlayinglnfoディクショナリ内にMPNowPlayinglnfoPropertyPlaybackRateキーを常に含める。シミュレータは、そのキーの値を使用して、コントロールセンタ及び他のシミュレータベースのインターフェース内に表示する再生進捗を更新する。一時停止又は停止されたトラックについて、キーの値を0に設定する。再生しているトラックについて、その値を正の数に設定する。
提供することができる情報のタイプの詳細については、MPNowPlayinglnfoCenter Class Referenceを参照されたい。
デバイス上のリモートコントロールイベントをテストする
画面の下端から上にスワイプすることによってアクセスするコントロールセンタを用いて、アプリがリモートコントロールイベントを正しく受け取り処理することをテストする。これらのコントロールは、現在オーディオを再生しているか、又は最近オーディオを再生していたアプリにリモートコントロールイベントを送る。デバイスのロック画面から再生コントロールにアクセスすることもできる。
文書改訂履歴
この表はiOS向けイベントハンドリングガイドへの変更を記載する。
Apple Inc.
Copyright c 2015 Apple Inc.
All rights reserved.
以下の例外を除き、本出版物のどの箇所も、Apple Inc.の事前の書面による許可なしに、いかなる形態、又は、機械、電子、複写、録音、若しくは別のいかなる手段でも、複製、検索システムに格納、又は伝送されてはならない。文書がAppleの著作権表示を含んでいるならば、いかなる人も、個人使用のみに単一のコンピュータ又はデバイスに文書を格納すること、及び個人使用のために文書をコピー印刷することが、これにより許可される。
本文書に記載された技術のいずれに関しても、明示又は黙示を問わず、ライセンスは供与されない。Appleは、本文書に記載された技術に関連するすべての知的財産権を保持する。本文書は、アプリケーション開発者がAppleブランドの製品向けにのみアプリケーションを開発することを支援するものである。
Apple Inc.
1 Infinite Loop
Cupertino,CA 95014
408−996−1010
Apple、Appleロゴ、iPhone、Mac、Shake、及びXcodeは、米国及び他の国において登録されたApple Inc.の商標である。
Multi−TouchはApple Inc.の商標である。
App StoreはApple Inc.のサービスマークである。
iOSは米国及び他の国におけるCiscoの商標又は登録商標であり、ライセンスを受けて使用される。
Appleは、本文書、その品質、正確さ、商品適格性、又は特定目的に対する適合性に関して、明示又は黙示を問わず、いかなる保証又は表明も行わない。結果として、本文書は「無保証」で提供され、読者は、その品質及び正確さに関して全リスクを負っている。
いかなる場合も、本文書内のいかなる欠陥、誤り、又は不正確さから生じた、直接的、間接的、特殊、偶発的、又は誘発的な損害に対しても、そのような損害の可能性が勧告されていた場合でも、Appleは責任を負わない。
いくつかの管轄は暗黙の保証又は責任の排除を許可せず、そのため上記の排除は読者に適用されない場合がある。

Claims (20)

  1. ディスプレイと、タッチ感知面と、前記タッチ感知面との接触の強度を検出するための1つ以上のセンサと、を備える電子デバイスにおいて、
    第1のユーザインターフェースを表示することと、
    前記第1のユーザインターフェースの表示中に、前記タッチ感知面上の入力を検出することであって、前記入力は前記タッチ感知面上の接触を含む第1の部分と、前記第1の部分の後の、前記接触の強度の変化を含んだ第2の部分とを含む、検出することと、
    前記入力の少なくとも前記第1の部分を検出することに応じて、前記入力の少なくとも前記第1の部分に対応する複数のジェスチャレコグナイザを候補ジェスチャレコグナイザとして識別することであって、前記複数のジェスチャレコグナイザは第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザを含み、前記第1のジェスチャレコグナイザは強度に基づくジェスチャレコグナイザであり、前記第2のジェスチャレコグナイザはタップジェスチャレコグナイザである、ことと、
    前記第2のジェスチャレコグナイザが、前記第2のジェスチャレコグナイザが前記入力をタップジェスチャとして認識できることを示す状態にあり、前記第1のジェスチャレコグナイザが、前記第1のジェスチャレコグナイザが前記入力を強度に基づくジェスチャとして認識できることを示す状態にある間に、前記入力の前記第2の部分を検出することと、
    前記第1のユーザインターフェースの表示中に前記入力の前記第2の部分を検出することに応じて、
    前記入力が第1の強度閾値を満足しかつ前記入力が前記タッチ感知面上の接触が検出されてから第1の所定の時間期間の間前記タッチ感知面上に留まることを含む強度入力基準を満足するとの判定に従って、
    前記第1のジェスチャレコグナイザを前記入力が強度に基づくジェスチャとして認識されたことを示す状態へと遷移させ、前記入力が強度に基づくジェスチャとして認識されたことを示す状態への前記第1のジェスチャレコグナイザの前記遷移に従って、第1の動作を実行すること、及び
    前記第2のジェスチャレコグナイザを前記入力が前記第2のジェスチャレコグナイザによって認識されない見込みであることを示す状態へと遷移させること、並びに
    前記入力が前記タッチ感知面上の接触が検出されてから前記第1の所定の時間期間が終了する前に前記タッチ感知面上に留まるのをやめることを含むタップ基準を満足するとの判定に従って、
    前記第2のジェスチャレコグナイザを前記入力がタップジェスチャとして認識されたことを示す状態へと遷移させ、前記入力がタップジェスチャとして認識されたことを示す状態への前記第2のジェスチャレコグナイザの前記遷移に従って、前記第1の動作とは異なる第2の動作を実行することと、
    を含み、前記複数のジェスチャレコグナイザのそれぞれが、判定を行うそれぞれの状態を有する、方法。
  2. 前記タッチ感知面上の前記入力の前記第2の部分を検出することに応じて、
    前記入力が前記強度入力基準を満足するとの前記判定に従って、前記第1のジェスチャレコグナイザを用いて前記入力を処理することを含む前記第1の動作を実行することと、
    前記入力が前記タップ基準を満足するとの前記判定に従って、前記第2のジェスチャレコグナイザを用いて前記入力を処理することを含む前記第2の動作を実行することと、
    を含む、請求項1に記載の方法。
  3. 前記入力が前記第1の所定の時間期間の間に前記タッチ感知面上に留まるのをやめることを含むタップ基準を前記入力が満足するとの判定に従って、前記第1のジェスチャレコグナイザを、前記入力が前記第1のジェスチャレコグナイザによって認識されない見込みであることを示す状態へと遷移させることを含む、請求項1又は2に記載の方法。
  4. 前記入力が第2の強度閾値を満足すると判定することに応じて、前記第1のユーザインターフェースの表示を第2のユーザインターフェースと入れ替えることを含めて、前記第1のジェスチャレコグナイザを用いて前記入力を処理することを含む、請求項1から3のいずれか一項に記載の方法。
  5. 前記複数のジェスチャレコグナイザは第3のジェスチャレコグナイザを含み、
    前記方法は、前記入力が第2の強度閾値を満足すると判定することに応じて、前記第3のジェスチャレコグナイザを用いて前記入力を処理することを含む、請求項1から3のいずれか一項に記載の方法。
  6. 前記第1のジェスチャレコグナイザが、前記第1のジェスチャレコグナイザが前記入力を強度に基づくジェスチャとして認識できることを示す状態にあり、前記第2のジェスチャレコグナイザが、前記第2のジェスチャレコグナイザが前記入力をタップジェスチャとして認識できることを示す状態にあり、前記第3のジェスチャレコグナイザが、前記第3のジェスチャレコグナイザが前記入力を認識できることを示す状態にある間に、前記入力の前記第1の部分に続く、前記接触の強度の変化を含む前記入力の前記第2の部分を検出することと、
    前記第1のユーザインターフェースの表示中に前記入力の前記第2の部分を検出することに応じて、
    前記入力が前記第2の強度閾値を満足するとの判定に従って、
    前記第3のジェスチャレコグナイザを開始された状態へと遷移させること、
    前記第1のジェスチャレコグナイザを、前記第1のジェスチャレコグナイザが前記入力を強度に基づくジェスチャとして認識できることを示す前記状態に維持すること、及び
    前記第2のジェスチャレコグナイザを、前記第2のジェスチャレコグナイザが前記入力をタップジェスチャとして認識できることを示す前記状態に維持することと、
    を含む、請求項5に記載の方法。
  7. 前記第1の強度閾値は前記第2の強度閾値よりも大きい、請求項6に記載の方法。
  8. 前記第1のユーザインターフェースの表示中に前記入力の前記第2の部分を検出することに応じて、
    前記入力が前記第2の強度閾値を満足するとの前記判定に続いて、前記入力の強度が変化したとの判定に従って、
    前記第3のジェスチャレコグナイザを、前記入力の前記強度が変化したことを示す変更された状態へと遷移させることであって、前記変更された状態が前記開始された状態とは異なる、ことと、
    前記第1のジェスチャレコグナイザを、前記第1のジェスチャレコグナイザが前記入力を強度に基づくジェスチャとして認識できることを示す前記状態に維持することと、
    前記第2のジェスチャレコグナイザを、前記第2のジェスチャレコグナイザが前記入力をタップジェスチャとして認識できることを示す前記状態に維持することと、
    を含む、請求項6又は7に記載の方法。
  9. 前記第1のユーザインターフェースの表示中に前記入力の前記第2の部分を検出することに応じて、
    前記入力の前記強度が変化したとの前記判定に続いて、前記入力が前記第1の所定の時間期間後に前記タッチ感知面上に留まるのをやめるとの判定に従って、
    前記第2のジェスチャレコグナイザを、前記入力が前記第2のジェスチャレコグナイザによって認識されない見込みであることを示す前記状態へと遷移させることと、
    前記第3のジェスチャレコグナイザを、前記入力が認識されたことを示す認識された状態又は前記入力が中止されたことを示す中止された状態へと遷移させることと、
    を含む、請求項8に記載の方法。
  10. 前記入力の前記第1の部分の検出に応じて、第3の動作を実行することを含む、請求項1から9のいずれか一項に記載の方法。
  11. 前記第3の動作を実行することは、前記第1のユーザインターフェースの少なくとも一部を前記第1のユーザインターフェースの他の部分と視覚的に区別することを含む、請求項10に記載の方法。
  12. 前記第3の動作を実行することに続いて、
    前記入力が前記強度入力基準を満足するとの前記判定に従って、前記第1の動作を実行することと、
    前記入力が前記タップ基準を満足するとの前記判定に従って、前記第2の動作を実行することと、
    を含む、請求項10又は11に記載の方法。
  13. 前記第3の動作は前記第1の所定の時間期間の間に開始される、請求項10から12のいずれか一項に記載の方法。
  14. 前記第1の動作を実行することはプレビュー領域を表示することを含む、請求項1から13のいずれか一項に記載の方法。
  15. 前記第2の動作を実行することは、前記第1のユーザインターフェースの表示を、前記タッチ感知面上の前記入力の場所に対応する、ソフトウェアアプリケーションの第3のユーザインターフェースと入れ替えることを含む、請求項1から14のいずれか一項に記載の方法。
  16. 前記入力が前記強度入力基準を満足するか否かに関係なく、前記入力が前記タップ基準を満足するとの前記判定に従って、前記第2の動作が実行される、請求項1から15のいずれか一項に記載の方法。
  17. 前記第1のユーザインターフェースの表示中に前記入力を検出することに応じて、
    前記入力が前記第1の所定の時間期間の間前記タッチ感知面上に留まった後、前記入力が前記タッチ感知面上で検出されなくなり、かつ前記入力が前記強度入力基準を満足しない、との判定に従って、前記第2の動作を実行することと、
    前記入力が前記第1の所定の時間期間の間前記タッチ感知面上に留まった後、前記入力が前記タッチ感知面上で検出されなくなり、かつ前記入力が前記強度入力基準を満足する、との判定に従って、前記第2の動作の実行を取り止めることと、
    を含む、請求項1から16のいずれか一項に記載の方法。
  18. ディスプレイ、タッチ感知面、及び前記タッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイスにおいて使用するための、情報処理装置であって、
    第1のユーザインターフェースを表示する手段と、
    前記第1のユーザインターフェースの表示中に、前記タッチ感知面上の入力を検出する手段であって、前記入力は前記タッチ感知面上の接触を含む第1の部分と、前記第1の部分の後の、前記接触の強度の変化を含んだ第2の部分とを含む、手段と、
    前記入力の少なくとも前記第1の部分を検出することに応じて、前記入力の少なくとも前記第1の部分に対応する複数のジェスチャレコグナイザを候補ジェスチャレコグナイザとして識別する手段であって、前記複数のジェスチャレコグナイザは第1のジェスチャレコグナイザ及び第2のジェスチャレコグナイザを含み、前記第1のジェスチャレコグナイザは強度に基づくジェスチャレコグナイザであり、前記第2のジェスチャレコグナイザはタップジェスチャレコグナイザである、手段と、
    前記第2のジェスチャレコグナイザが、前記第2のジェスチャレコグナイザが前記入力をタップジェスチャとして認識できることを示す状態にあり、前記第1のジェスチャレコグナイザが、前記第1のジェスチャレコグナイザが前記入力を強度に基づくジェスチャとして認識できることを示す状態にある間に、前記入力の前記第2の部分を検出する手段と、
    前記第1のユーザインターフェースの表示中に前記入力の前記第2の部分を検出することに応じて、
    前記入力が第1の強度閾値を満足しかつ前記入力が前記タッチ感知面上の接触が検出されてから第1の所定の時間期間の間前記タッチ感知面上に留まることを含む強度入力基準を満足するとの判定に従って、
    前記第1のジェスチャレコグナイザを、前記入力が強度に基づくジェスチャとして認識されたことを示す状態へと遷移させ、前記入力が強度に基づくジェスチャとして認識されたことを示す状態への前記第1のジェスチャレコグナイザの前記遷移に従って、第1の動作を実行し、及び
    前記第2のジェスチャレコグナイザを、前記入力が前記第2のジェスチャレコグナイザによって認識されない見込みであることを示す状態へと遷移させ、並びに
    前記入力が前記タッチ感知面上の接触が検出されてから前記第1の所定の時間期間が終了する前に前記タッチ感知面上に留まるのをやめることを含むタップ基準を満足するとの判定に従って、
    前記第2のジェスチャレコグナイザを、前記入力がタップジェスチャとして認識されたことを示す状態へと遷移させ、前記入力がタップジェスチャとして認識されたことを示す状態への前記第2のジェスチャレコグナイザの前記遷移に従って、前記第1の動作とは異なる第2の動作を実行する、手段と、
    を備え、前記複数のジェスチャレコグナイザのそれぞれが、判定を行うそれぞれの状態を有す情報処理装置。
  19. ディスプレイと、
    タッチ感知面と、
    前記タッチ感知面との接触の強度を検出する1つ以上のセンサと、
    1つ以上のプロセッサと、
    前記1つ以上のプロセッサに請求項1から17のいずれか一項に記載の方法を実行させる命令を記憶するメモリと、
    を備える、電子デバイス。
  20. コンピュータに請求項1から17のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム。
JP2018506425A 2015-08-10 2016-08-10 デバイス及びその強度に基づいてタッチ入力を処理するための方法 Active JP6559881B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201562203387P 2015-08-10 2015-08-10
US62/203,387 2015-08-10
US201562213589P 2015-09-02 2015-09-02
US62/213,589 2015-09-02
US201562215621P 2015-09-08 2015-09-08
US62/215,621 2015-09-08
US14/866,992 US20170045981A1 (en) 2015-08-10 2015-09-27 Devices and Methods for Processing Touch Inputs Based on Their Intensities
US14/866,992 2015-09-27
PCT/US2016/046419 WO2017027632A1 (en) 2015-08-10 2016-08-10 Devices and methods for processing touch inputs based on their intensities

Publications (2)

Publication Number Publication Date
JP2018523243A JP2018523243A (ja) 2018-08-16
JP6559881B2 true JP6559881B2 (ja) 2019-08-14

Family

ID=56843015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018506425A Active JP6559881B2 (ja) 2015-08-10 2016-08-10 デバイス及びその強度に基づいてタッチ入力を処理するための方法

Country Status (8)

Country Link
US (4) US20170045981A1 (ja)
EP (1) EP3286629A1 (ja)
JP (1) JP6559881B2 (ja)
KR (1) KR102033863B1 (ja)
CN (2) CN106843711B (ja)
AU (3) AU2016101418B4 (ja)
DK (3) DK201500594A1 (ja)
WO (1) WO2017027632A1 (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997531B2 (en) 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
CN105260049B (zh) 2012-05-09 2018-10-23 苹果公司 用于响应于用户接触来显示附加信息的设备、方法和图形用户界面
WO2013169849A2 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for displaying user interface objects corresponding to an application
JP6182207B2 (ja) 2012-05-09 2017-08-16 アップル インコーポレイテッド ユーザインタフェースオブジェクトのアクティブ化状態を変更するためのフィードバックを提供するためのデバイス、方法、及びグラフィカルユーザインタフェース
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
WO2013169851A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for facilitating user interaction with controls in a user interface
WO2013169865A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input
WO2013169853A1 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for providing tactile feedback for operations performed in a user interface
JP6002836B2 (ja) 2012-05-09 2016-10-05 アップル インコーポレイテッド ジェスチャに応答して表示状態間を遷移するためのデバイス、方法、及びグラフィカルユーザインタフェース
WO2013169842A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for selecting object within a group of objects
EP3435220B1 (en) 2012-12-29 2020-09-16 Apple Inc. Device, method and graphical user interface for transitioning between touch input to display output relationships
KR102001332B1 (ko) 2012-12-29 2019-07-17 애플 인크. 콘텐츠를 스크롤할지 선택할지 결정하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
KR102000253B1 (ko) 2012-12-29 2019-07-16 애플 인크. 사용자 인터페이스 계층을 내비게이션하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
WO2014105279A1 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for switching between user interfaces
WO2014105275A1 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for forgoing generation of tactile output for a multi-contact gesture
EP2939095B1 (en) 2012-12-29 2018-10-03 Apple Inc. Device, method, and graphical user interface for moving a cursor according to a change in an appearance of a control icon with simulated three-dimensional characteristics
DK3011444T3 (en) 2013-06-18 2018-04-16 Ciambella Ltd METHOD AND APPARATUS FOR CODE VIRTUALIZATION AND GENERATION OF REMOTE PROCESS CALLS
US20150350141A1 (en) 2014-05-31 2015-12-03 Apple Inc. Message user interfaces for capture and transmittal of media and location content
US9632664B2 (en) 2015-03-08 2017-04-25 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
US10048757B2 (en) 2015-03-08 2018-08-14 Apple Inc. Devices and methods for controlling media presentation
US9645732B2 (en) 2015-03-08 2017-05-09 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US10095396B2 (en) 2015-03-08 2018-10-09 Apple Inc. Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
US9990107B2 (en) 2015-03-08 2018-06-05 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US9639184B2 (en) 2015-03-19 2017-05-02 Apple Inc. Touch input cursor manipulation
US20170045981A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices and Methods for Processing Touch Inputs Based on Their Intensities
US10067653B2 (en) 2015-04-01 2018-09-04 Apple Inc. Devices and methods for processing touch inputs based on their intensities
US9891811B2 (en) 2015-06-07 2018-02-13 Apple Inc. Devices and methods for navigating between user interfaces
US10200598B2 (en) 2015-06-07 2019-02-05 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US10346030B2 (en) 2015-06-07 2019-07-09 Apple Inc. Devices and methods for navigating between user interfaces
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9830048B2 (en) 2015-06-07 2017-11-28 Apple Inc. Devices and methods for processing touch inputs with instructions in a web page
US9880735B2 (en) 2015-08-10 2018-01-30 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
US10248308B2 (en) 2015-08-10 2019-04-02 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interfaces with physical gestures
US10235035B2 (en) 2015-08-10 2019-03-19 Apple Inc. Devices, methods, and graphical user interfaces for content navigation and manipulation
US10416800B2 (en) 2015-08-10 2019-09-17 Apple Inc. Devices, methods, and graphical user interfaces for adjusting user interface objects
US10445425B2 (en) 2015-09-15 2019-10-15 Apple Inc. Emoji and canned responses
US9939908B2 (en) 2015-09-28 2018-04-10 Paypal, Inc. Multi-device authentication
CN108604186B (zh) 2015-12-21 2021-11-16 西安姆贝拉有限公司 用于创建和管理基于控制器的远程解决方案的方法和装置
KR102544716B1 (ko) * 2016-03-25 2023-06-16 삼성전자주식회사 화면 출력 방법 및 이를 지원하는 전자 장치
US11087249B2 (en) 2016-05-24 2021-08-10 Ciambella Ltd. Method and apparatus for triggering execution of a workflow over a network
KR102535737B1 (ko) * 2016-08-03 2023-05-24 삼성전자주식회사 압력 센서를 포함하는 전자 장치
US10798780B2 (en) 2016-08-22 2020-10-06 Ciambella Ltd. Method and apparatus for creating and managing controller based remote solutions
WO2019047231A1 (zh) 2017-09-11 2019-03-14 广东欧珀移动通信有限公司 触摸操作响应方法及装置
EP3671412A4 (en) 2017-09-11 2020-08-05 Guangdong Oppo Mobile Telecommunications Corp., Ltd. TOUCH OPERATION RESPONSE PROCESS AND DEVICE
WO2019047234A1 (zh) * 2017-09-11 2019-03-14 广东欧珀移动通信有限公司 触摸操作响应方法及装置
US11449925B2 (en) * 2018-01-22 2022-09-20 Taco Bell Corp. Systems and methods for ordering graphical user interface
US10970139B2 (en) * 2018-03-28 2021-04-06 Google Llc Controlling the triggering of function calls from content items
DK180171B1 (en) 2018-05-07 2020-07-14 Apple Inc USER INTERFACES FOR SHARING CONTEXTUALLY RELEVANT MEDIA CONTENT
US10877660B2 (en) 2018-06-03 2020-12-29 Apple Inc. Devices and methods for processing inputs using gesture recognizers
EP3864800A4 (en) 2018-10-08 2022-06-15 Ciambella Ltd. SYSTEM, APPARATUS, AND METHOD FOR PROVIDING AN END-TO-END SOLUTION FOR NETWORKS
US10936659B2 (en) * 2019-01-02 2021-03-02 International Business Machines Corporation Parallel graph events processing
US10905946B2 (en) 2019-02-28 2021-02-02 Valve Corporation Continuous controller calibration
US11301128B2 (en) * 2019-05-01 2022-04-12 Google Llc Intended input to a user interface from detected gesture positions
US11074408B2 (en) 2019-06-01 2021-07-27 Apple Inc. Mail application features
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
DE102020107752A1 (de) * 2020-03-20 2021-09-23 Daimler Ag Verfahren und Vorrichtung zur Auswahl von auf einem Bildschirm angezeigten Eingabefeldern und/oder zur Aktivierung von auf dem Bildschirm in einem ausgewählten Eingabefeld angezeigten Eingabeinhalten durch manuelle Eingaben
US11500467B1 (en) 2021-05-25 2022-11-15 Microsoft Technology Licensing, Llc Providing haptic feedback through touch-sensitive input devices
KR20230022766A (ko) * 2021-08-09 2023-02-16 삼성전자주식회사 스타일러스 펜의 입력을 처리하는 전자 장치와 이의 동작 방법
US11922008B2 (en) * 2021-08-09 2024-03-05 Samsung Electronics Co., Ltd. Electronic device processing input of stylus pen and method for operating the same

Family Cites Families (1479)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58182746A (ja) 1982-04-20 1983-10-25 Fujitsu Ltd タツチ式入力装置
JPS6074003A (ja) 1983-09-30 1985-04-26 Ryozo Setoguchi 形状創成装置
US4903201A (en) 1983-11-03 1990-02-20 World Energy Exchange Corporation Automated futures trading exchange
US5270922A (en) 1984-06-29 1993-12-14 Merrill Lynch & Company, Inc. System for distributing, processing and displaying financial information
US4674044A (en) 1985-01-30 1987-06-16 Merrill Lynch, Pierce, Fenner & Smith, Inc. Automated securities trading system
US4750135A (en) 1986-05-01 1988-06-07 Reuters Limited Method for dynamically creating a receiver definable local trading instrument displayable record from a remotely transmitted trading instrument common data stream
US5038284A (en) 1988-02-17 1991-08-06 Kramer Robert M Method and apparatus relating to conducting trading transactions with portable trading stations
ATE161979T1 (de) 1988-05-27 1998-01-15 Kodak Ltd Dokumentenmappen-abbild zur anzeige in einem datenverarbeitungssystem
CA2029893A1 (en) 1989-03-14 1990-09-15 Glen W. Belden Method and apparatus for auction market trading
EP0388162A3 (en) 1989-03-14 1993-03-03 Chicago Board Of Trade Apparatus for market trading
WO1990011571A1 (en) 1989-03-28 1990-10-04 Chicago Board Of Trade Simulated live market trading system
US5077665A (en) 1989-05-25 1991-12-31 Reuters Limited Distributed matching system
US5136501A (en) 1989-05-26 1992-08-04 Reuters Limited Anonymous matching system
US5101353A (en) 1989-05-31 1992-03-31 Lattice Investments, Inc. Automated system for providing liquidity to securities markets
US5297031A (en) 1990-03-06 1994-03-22 Chicago Board Of Trade Method and apparatus for order management by market brokers
JPH0385481U (ja) 1990-11-02 1991-08-29
GB9027249D0 (en) 1990-12-17 1991-02-06 Reuters Ltd Offer matching system
US5297032A (en) 1991-02-01 1994-03-22 Merrill Lynch, Pierce, Fenner & Smith Incorporated Securities trading workstation
US5184120A (en) 1991-04-04 1993-02-02 Motorola, Inc. Menu selection using adaptive force sensing resistor
US6347997B1 (en) 1997-10-01 2002-02-19 Brad A. Armstrong Analog controls housed with electronic displays
US6208271B1 (en) 1998-09-04 2001-03-27 Brad A. Armstrong Remote controller with analog button(s)
US5717725A (en) 1992-03-12 1998-02-10 Ntp Incorporated System for wireless transmission and receiving of information through a computer bus interface and method of operation
US5544262A (en) 1992-04-07 1996-08-06 Apple Computer, Inc. Method and apparatus for processing graphically input equations
DE69324067T2 (de) 1992-06-08 1999-07-15 Synaptics Inc Objekt-Positionsdetektor
JPH0651738A (ja) 1992-07-27 1994-02-25 Canon Inc コンピュータシステムの情報表示装置
JP2994888B2 (ja) 1992-11-25 1999-12-27 シャープ株式会社 入力処理装置および入力処理方法
US5428730A (en) 1992-12-15 1995-06-27 International Business Machines Corporation Multimedia system having software mechanism providing standardized interfaces and controls for the operation of multimedia devices
US5455965A (en) 1993-02-26 1995-10-03 Motorola, Inc. Method for determining and utilizing simulcast transmit times
US5555354A (en) 1993-03-23 1996-09-10 Silicon Graphics Inc. Method and apparatus for navigation within three-dimensional information landscape
JPH0798769A (ja) 1993-06-18 1995-04-11 Hitachi Ltd 情報処理装置及びその画面編集方法
US5463722A (en) 1993-07-23 1995-10-31 Apple Computer, Inc. Automatic alignment of objects in two-dimensional and three-dimensional display space using an alignment field gradient
BE1007462A3 (nl) 1993-08-26 1995-07-04 Philips Electronics Nv Dataverwerkings inrichting met aanraakscherm en krachtopnemer.
JPH07151512A (ja) 1993-10-05 1995-06-16 Mitsutoyo Corp 三次元測定機の操作装置
JPH07104915A (ja) 1993-10-06 1995-04-21 Toshiba Corp グラフィックユーザインタフェース装置
DE69403664T2 (de) 1993-10-29 1998-01-02 Taligent Inc Graphisches editorfachwerksystem
EP0661620B1 (en) 1993-12-30 2001-03-21 Xerox Corporation Apparatus and method for executing multiple concatenated command gestures in a gesture based input system
CA2119921C (en) 1994-03-23 2009-09-29 Sydney H. Belzberg Computerized stock exchange trading system
AU2241195A (en) 1994-04-06 1995-10-30 Morgan Stanley Group Inc. Data processing system and method for financial debt instruments
US5526478A (en) 1994-06-30 1996-06-11 Silicon Graphics, Inc. Three dimensional model with three dimensional pointers and multimedia functions linked to the pointers
GB9416673D0 (en) 1994-08-17 1994-10-12 Reuters Ltd Data exchange filtering system
US5559301A (en) 1994-09-15 1996-09-24 Korg, Inc. Touchscreen interface having pop-up variable adjustment displays for controllers and audio processing systems
US5774877A (en) 1994-09-20 1998-06-30 Papyrus Technology Corp. Two-way wireless system for financial industry transactions
US5797002A (en) 1994-09-20 1998-08-18 Papyrus Technology Corp. Two-way wireless system for financial industry transactions
WO1996009579A1 (en) 1994-09-22 1996-03-28 Izak Van Cruyningen Popup menus with directional gestures
US5689651A (en) 1994-10-13 1997-11-18 Lozman; Fane System for processing and displaying financial information
WO1996014908A1 (en) 1994-11-14 1996-05-23 Catapult Entertainment, Inc. Method and apparatus for synchronizing the execution of multiple video game systems in a networked environment
US5805144A (en) 1994-12-14 1998-09-08 Dell Usa, L.P. Mouse pointing device having integrated touchpad
JPH08227341A (ja) 1995-02-22 1996-09-03 Mitsubishi Electric Corp ユーザインターフェース
US5657246A (en) 1995-03-07 1997-08-12 Vtel Corporation Method and apparatus for a video conference user interface
IL117424A (en) 1995-04-27 1999-09-22 Optimark Tech Inc Crossing network utilizing satisfaction density profile
US5845266A (en) 1995-12-12 1998-12-01 Optimark Technologies, Inc. Crossing network utilizing satisfaction density profile with price discovery features
US6072488A (en) 1995-05-05 2000-06-06 Apple Computer, Inc. Systems and methods for replacing open windows in a graphical user interface
US5793360A (en) 1995-05-05 1998-08-11 Wacom Co., Ltd. Digitizer eraser system and method
US5717438A (en) 1995-08-25 1998-02-10 International Business Machines Corporation Multimedia document using time box diagrams
EP0847561B1 (en) 1995-08-28 2003-10-22 Ebs Dealing Resources, Inc. Anonymous trading system with improved quote input capabilities
US5844560A (en) 1995-09-29 1998-12-01 Intel Corporation Graphical user interface control element
JP3417741B2 (ja) 1995-10-06 2003-06-16 富士通株式会社 取引制御システム
US5910882A (en) 1995-11-14 1999-06-08 Garmin Corporation Portable electronic device for use in combination portable and fixed mount applications
US5825308A (en) 1996-11-26 1998-10-20 Immersion Human Interface Corporation Force feedback interface having isotonic and isometric functionality
US5793377A (en) 1995-11-22 1998-08-11 Autodesk, Inc. Method and apparatus for polar coordinate snap in a computer implemented drawing tool
US5801692A (en) 1995-11-30 1998-09-01 Microsoft Corporation Audio-visual user interface controls
US5719796A (en) 1995-12-04 1998-02-17 Advanced Micro Devices, Inc. System for monitoring and analyzing manufacturing processes using statistical simulation with single step feedback
US6750877B2 (en) 1995-12-13 2004-06-15 Immersion Corporation Controlling haptic feedback for enhancing navigation in a graphical environment
US6300936B1 (en) 1997-11-14 2001-10-09 Immersion Corporation Force feedback system including multi-tasking graphical host environment and interface device
US5825352A (en) 1996-01-04 1998-10-20 Logitech, Inc. Multiple fingers contact sensing method for emulating mouse buttons and mouse operations on a touch sensor pad
US5695400A (en) 1996-01-30 1997-12-09 Boxer Jam Productions Method of managing multi-player game playing over a network
US5946647A (en) 1996-02-01 1999-08-31 Apple Computer, Inc. System and method for performing an action on a structure in computer-generated data
US5820463A (en) 1996-02-06 1998-10-13 Bell Atlantic Network Services, Inc. Method and apparatus for multi-player gaming over a network
JPH09269883A (ja) 1996-03-29 1997-10-14 Seiko Epson Corp 情報処理装置および情報処理方法
US5880733A (en) 1996-04-30 1999-03-09 Microsoft Corporation Display system and method for displaying windows of an operating system to provide a three-dimensional workspace for a computer system
US5924083A (en) 1996-05-29 1999-07-13 Geneva Branch Of Reuters Transaction Services Limited Distributed matching system for displaying a book of credit filtered bids and offers
US5819293A (en) 1996-06-06 1998-10-06 Microsoft Corporation Automatic Spreadsheet forms
JP4484255B2 (ja) 1996-06-11 2010-06-16 株式会社日立製作所 タッチパネルを備えた情報処理装置および情報処理方法
US6014643A (en) 1996-06-28 2000-01-11 Minton; Vernon F. Interactive securities trading system
US8674932B2 (en) 1996-07-05 2014-03-18 Anascape, Ltd. Image controller
US6208329B1 (en) 1996-08-13 2001-03-27 Lsi Logic Corporation Supplemental mouse button emulation system, method and apparatus for a coordinate based data input device
US6247000B1 (en) 1996-08-21 2001-06-12 Crossmar, Inc. Method and system for confirmation and settlement for financial transactions matching
US6121960A (en) 1996-08-28 2000-09-19 Via, Inc. Touch screen systems and methods
US6195647B1 (en) 1996-09-26 2001-02-27 The Nasdaq Stock Market, Inc. On-line transaction processing system for security trading
US5963923A (en) 1996-11-12 1999-10-05 Garber; Howard B. System and method for trading having a principal market maker
US5973670A (en) 1996-12-31 1999-10-26 International Business Machines Corporation Tactile feedback controller for computer cursor control device
US5883905A (en) 1997-02-18 1999-03-16 Schlumberger Technologies, Inc. Pattern generator with extended register programming
EP0859307A1 (en) 1997-02-18 1998-08-19 International Business Machines Corporation Control mechanism for graphical user interface
US6031989A (en) 1997-02-27 2000-02-29 Microsoft Corporation Method of formatting and displaying nested documents
US6954899B1 (en) 1997-04-14 2005-10-11 Novint Technologies, Inc. Human-computer interface including haptically controlled interactions
US7091948B2 (en) 1997-04-25 2006-08-15 Immersion Corporation Design of force sensations for haptic feedback computer interfaces
US6073036A (en) 1997-04-28 2000-06-06 Nokia Mobile Phones Limited Mobile station with touch input having automatic symbol magnification function
GB2339941B (en) 1997-04-30 2001-10-31 Roderick Malcolm Gordon Lawrie Network computer trading system
DE19721897A1 (de) 1997-05-26 1998-12-03 Degussa Geformter Metall-Festbettkatalysator, Verfahren zu seiner Herstellung und seine Verwendung
US6806893B1 (en) 1997-08-04 2004-10-19 Parasoft Corporation System and method for displaying simulated three dimensional buttons in a graphical user interface
US6266684B1 (en) 1997-08-06 2001-07-24 Adobe Systems Incorporated Creating and saving multi-frame web pages
US6411998B1 (en) 1997-09-08 2002-06-25 International Business Machines Corporation World wide web internet delay monitor
US6002397A (en) 1997-09-30 1999-12-14 International Business Machines Corporation Window hatches in graphical user interface
US6532000B2 (en) 1997-10-01 2003-03-11 Brad A. Armstrong Analog controls housed with electronic displays for global positioning systems
US6456778B2 (en) 1997-10-01 2002-09-24 Brad A. Armstrong Analog controls housed with electronic displays for video recorders and cameras
US20020138390A1 (en) 1997-10-14 2002-09-26 R. Raymond May Systems, methods and computer program products for subject-based addressing in an electronic trading system
US6131087A (en) 1997-11-05 2000-10-10 The Planning Solutions Group, Inc. Method for automatically identifying, matching, and near-matching buyers and sellers in electronic market transactions
US6448977B1 (en) 1997-11-14 2002-09-10 Immersion Corporation Textures and other spatial sensations for a relative haptic interface device
US6088019A (en) 1998-06-23 2000-07-11 Immersion Corporation Low cost force feedback device with actuator for non-primary axis
EP1067471A1 (en) 1997-12-08 2001-01-10 Nippon Steel Corporation Commodity exchanging apparatus, commodity exchanging system, commodity exchanging method and storage medium
US6035287A (en) 1997-12-17 2000-03-07 Omega Consulting, Inc. Method and apparatus for bundled asset trading
US6088027A (en) 1998-01-08 2000-07-11 Macromedia, Inc. Method and apparatus for screen object manipulation
JPH11203044A (ja) 1998-01-16 1999-07-30 Sony Corp 情報処理システム
US7844914B2 (en) 2004-07-30 2010-11-30 Apple Inc. Activating virtual keys of a touch-screen virtual keyboard
US7760187B2 (en) 2004-07-30 2010-07-20 Apple Inc. Visual expander
US9292111B2 (en) 1998-01-26 2016-03-22 Apple Inc. Gesturing with a multipoint sensing device
US20060033724A1 (en) 2004-07-30 2006-02-16 Apple Computer, Inc. Virtual input device placement on a touch screen user interface
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
US7663607B2 (en) 2004-05-06 2010-02-16 Apple Inc. Multipoint touchscreen
KR100595917B1 (ko) 1998-01-26 2006-07-05 웨인 웨스터만 수동 입력 통합 방법 및 장치
US6219034B1 (en) 1998-02-23 2001-04-17 Kristofer E. Elbing Tactile computer interface
FI107859B (fi) 1998-03-23 2001-10-15 Nokia Networks Oy Tilauspalvelut matkaviestinjärjestelmässä
US6211880B1 (en) 1998-04-13 2001-04-03 Albert Joseph Impink, Jr. Display apparatus
US6180894B1 (en) 1998-05-07 2001-01-30 Aiptek International Inc. Dual mode digitizer tablet system
US6208340B1 (en) 1998-05-26 2001-03-27 International Business Machines Corporation Graphical user interface including a drop-down widget that permits a plurality of choices to be selected in response to a single selection of the drop-down widget
JPH11355617A (ja) 1998-06-05 1999-12-24 Fuji Photo Film Co Ltd 画像表示器付きカメラ
US6429846B2 (en) 1998-06-23 2002-08-06 Immersion Corporation Haptic feedback for touchpads and other touch controls
US6707443B2 (en) 1998-06-23 2004-03-16 Immersion Corporation Haptic trackball device
US6563487B2 (en) 1998-06-23 2003-05-13 Immersion Corporation Haptic feedback for directional control pads
US6229542B1 (en) 1998-07-10 2001-05-08 Intel Corporation Method and apparatus for managing windows in three dimensions in a two dimensional windowing system
US6243080B1 (en) 1998-07-14 2001-06-05 Ericsson Inc. Touch-sensitive panel with selector
AU5777699A (en) 1998-08-21 2000-03-14 Marketxt, Inc. Volume limitation method and system for a real-time computerized stock trading system
US6326956B1 (en) 1998-08-24 2001-12-04 Intertactile Technologies Corporation Circuit control devices utilizing electronic display screen light
US6111575A (en) 1998-09-24 2000-08-29 International Business Machines Corporation Graphical undo/redo manager and method
DE19849460B4 (de) 1998-10-28 2009-11-05 Völckers, Oliver Numerische digitale Telefontastatur für ein Telefongerät mit einem Display und Verfahren zur schnellen Textauswahl aus einer Liste mittels der numerischen Telefontastatur
US6405180B2 (en) 1998-11-05 2002-06-11 International Securities Exchange, Llc Automated exchange for matching bids between a party and a counterparty based on a relationship between the counterparty and the exchange
US6377940B2 (en) 1998-11-05 2002-04-23 International Securities Exchange, Llc Method and apparatus for setting a price for a security on an automated exchange based on a comparison of prices on other exchanges
JP2000148348A (ja) 1998-11-13 2000-05-26 Internatl Business Mach Corp <Ibm> 起動中のアプリケーション・プログラムを容易に識別し、かつ終了させることができる方法およびシステム
CA2351175C (en) 1998-11-24 2016-05-03 Niksun, Inc. Apparatus and method for collecting and analyzing communications data
US6252594B1 (en) 1998-12-11 2001-06-26 International Business Machines Corporation Method and system for aiding a user in scrolling through a document using animation, voice cues and a dockable scroll bar
US6489975B1 (en) 1998-12-14 2002-12-03 International Business Machines Corporation System and method for improved navigation between open windows in an application program using window tabs
US7469381B2 (en) 2007-01-07 2008-12-23 Apple Inc. List scrolling and document translation, scaling, and rotation on a touch-screen display
US7506252B2 (en) 1999-01-26 2009-03-17 Blumberg Marvin R Speed typing apparatus for entering letters of alphabet with at least thirteen-letter input elements
US6396962B1 (en) 1999-01-29 2002-05-28 Sony Corporation System and method for providing zooming video
US6512761B1 (en) 1999-02-02 2003-01-28 3Com Corporation System for adjusting billing for real-time media transmissions based on delay
US6272474B1 (en) 1999-02-08 2001-08-07 Crisostomo B. Garcia Method for monitoring and trading stocks via the internet displaying bid/ask trade bars
EP1028583A1 (en) 1999-02-12 2000-08-16 Hewlett-Packard Company Digital camera with sound recording
US6551357B1 (en) 1999-02-12 2003-04-22 International Business Machines Corporation Method, system, and program for storing and retrieving markings for display to an electronic media file
EP1208412A2 (en) 1999-02-26 2002-05-29 Reveo, Inc. Globally time-synchronized systems, devices and methods
US20020026321A1 (en) 1999-02-26 2002-02-28 Sadeg M. Faris Internet-based system and method for fairly and securely enabling timed-constrained competition using globally time-sychronized client subsystems and information servers having microsecond client-event resolution
AU3247600A (en) 1999-03-01 2000-09-21 Wit Capital Corporation A system and method for conducting securities transactions over a computer network
US6408282B1 (en) 1999-03-01 2002-06-18 Wit Capital Corp. System and method for conducting securities transactions over a computer network
US7212999B2 (en) 1999-04-09 2007-05-01 Trading Technologies International, Inc. User interface for an electronic trading system
US6278982B1 (en) 1999-04-21 2001-08-21 Lava Trading Inc. Securities trading system for consolidation of trading on multiple ECNS and electronic exchanges
AU4369100A (en) 1999-04-22 2000-11-10 Trading Technologies, Inc. Electronic securities trading system
JP2001034775A (ja) 1999-05-17 2001-02-09 Fuji Photo Film Co Ltd 履歴画像表示方法
CA2392446C (en) 1999-05-27 2009-07-14 America Online Incorporated Keyboard system with automatic correction
US6227743B1 (en) 1999-07-01 2001-05-08 Karl A. Robb Pen cap stylus for use with touch screens
US6904405B2 (en) 1999-07-17 2005-06-07 Edwin A. Suominen Message recognition using shared language model
US6396523B1 (en) 1999-07-29 2002-05-28 Interlink Electronics, Inc. Home entertainment device remote control
US6489978B1 (en) 1999-08-06 2002-12-03 International Business Machines Corporation Extending the opening time of state menu items for conformations of multiple changes
US6459424B1 (en) 1999-08-10 2002-10-01 Hewlett-Packard Company Touch-sensitive input screen having regional sensitivity and resolution properties
AU1250001A (en) 1999-08-30 2001-03-26 Epit Inc. User interface for semi-fungible trading
US7685048B1 (en) 1999-09-01 2010-03-23 Bloomberg L.P. Electronic trading system for forwards spread trades
JP2001078137A (ja) 1999-09-01 2001-03-23 Olympus Optical Co Ltd 電子カメラ
US6459442B1 (en) 1999-09-10 2002-10-01 Xerox Corporation System for applying application behaviors to freeform data
US7181424B1 (en) 1999-09-23 2007-02-20 The Nasdaq Stock Market, Inc. Montage for automated market system
US8239303B2 (en) 1999-09-23 2012-08-07 The Nasdaq Omx Group, Inc. Match-off of order flow in electronic market system
US8311926B1 (en) 1999-09-23 2012-11-13 The Nasdaq Omx Group, Inc. Montage for automated market system
US6377636B1 (en) 1999-11-02 2002-04-23 Iospan Wirless, Inc. Method and wireless communications system using coordinated transmission and training for interference mitigation
US8482535B2 (en) 1999-11-08 2013-07-09 Apple Inc. Programmable tactile touch screen displays and man-machine interfaces for improved vehicle instrumentation and telematics
WO2001040894A2 (en) 1999-12-03 2001-06-07 Farms.Com, Ltd Computerized system and method for conducting an online virtual auction
US20020055899A1 (en) 1999-12-06 2002-05-09 Williams Joseph C. Display system and method for displaying and organizing financial information
US7434177B1 (en) 1999-12-20 2008-10-07 Apple Inc. User interface for providing consolidation and access
US7362331B2 (en) 2000-01-05 2008-04-22 Apple Inc. Time-based, non-constant translation of user interface objects between states
US6664991B1 (en) 2000-01-06 2003-12-16 Microsoft Corporation Method and apparatus for providing context menus on a pen-based device
US6661438B1 (en) 2000-01-18 2003-12-09 Seiko Epson Corporation Display apparatus and portable information processing apparatus
JP2001202192A (ja) 2000-01-18 2001-07-27 Sony Corp 情報処理装置及びその方法並びにプログラム格納媒体
US6822635B2 (en) 2000-01-19 2004-11-23 Immersion Corporation Haptic interface for laptop computers and other portable devices
US6512530B1 (en) 2000-01-19 2003-01-28 Xerox Corporation Systems and methods for mimicking an image forming or capture device control panel control element
US7138983B2 (en) 2000-01-31 2006-11-21 Canon Kabushiki Kaisha Method and apparatus for detecting and interpreting path of designated position
JP3845738B2 (ja) 2000-02-09 2006-11-15 カシオ計算機株式会社 オブジェクト移動装置及び記録媒体
US20010045965A1 (en) 2000-02-14 2001-11-29 Julian Orbanes Method and system for receiving user input
GB2366630A (en) 2000-02-17 2002-03-13 Gold On Line Trading Ltd Internet Trading System
US6772132B1 (en) 2000-03-02 2004-08-03 Trading Technologies International, Inc. Click based trading with intuitive grid display of market depth
JP2001265481A (ja) 2000-03-21 2001-09-28 Nec Corp ページ情報表示方法及び装置並びにページ情報表示用プログラムを記憶した記憶媒体
JP2001306207A (ja) 2000-04-27 2001-11-02 Just Syst Corp ドラッグアンドドロップ処理を支援するプログラムを記録した記録媒体
US20020035534A1 (en) 2000-05-04 2002-03-21 Buist Walter D. Method and apparatus for auctioning securities
US7246092B1 (en) 2000-05-12 2007-07-17 The Nasdaq Stock Market, Inc. Montage for an electronic market
US6831666B1 (en) 2000-06-14 2004-12-14 Canon Kabushiki Kaisha Application selection window in a windows operation system
JP2002041023A (ja) 2000-07-06 2002-02-08 Internatl Business Mach Corp <Ibm> コンピュータシステム、表示制御装置、ディスプレイ装置、表示制御方法、記憶媒体及びプログラム伝送装置
KR20020007860A (ko) 2000-07-19 2002-01-29 백승헌 인터넷상의 시간보정 방법 및 이를 이용한 상거래시점관리 방법
US6583798B1 (en) 2000-07-21 2003-06-24 Microsoft Corporation On-object user interface
JP4501243B2 (ja) 2000-07-24 2010-07-14 ソニー株式会社 テレビジョン受像機およびプログラム実行方法
US20020015064A1 (en) 2000-08-07 2002-02-07 Robotham John S. Gesture-based user interface to multi-level and multi-modal sets of bit-maps
JP3949912B2 (ja) 2000-08-08 2007-07-25 株式会社エヌ・ティ・ティ・ドコモ 携帯型電子機器、電子機器、振動発生器、振動による報知方法および報知制御方法
US6906697B2 (en) 2000-08-11 2005-06-14 Immersion Corporation Haptic sensations for tactile feedback interface devices
US8924277B2 (en) 2000-08-17 2014-12-30 Nyse Group, Inc. Method and system for automatic execution of a securities transaction
US7218226B2 (en) 2004-03-01 2007-05-15 Apple Inc. Acceleration-based theft detection system for portable electronic devices
US7688306B2 (en) 2000-10-02 2010-03-30 Apple Inc. Methods and apparatuses for operating a portable device based on an accelerometer
US6891551B2 (en) 2000-11-10 2005-05-10 Microsoft Corporation Selection handles in editing electronic documents
US6577296B2 (en) 2000-11-14 2003-06-10 Vega Vista, Inc. Fixed cursor
US6590568B1 (en) 2000-11-20 2003-07-08 Nokia Corporation Touch screen drag and drop input technique
US6943778B1 (en) 2000-11-20 2005-09-13 Nokia Corporation Touch screen input technique
DE10059906A1 (de) 2000-12-01 2002-06-06 Bs Biometric Systems Gmbh Druckempfindliche Fläche eines Bildschirms oder Displays
US20020077117A1 (en) 2000-12-15 2002-06-20 Jocelyn Cloutier Synchronous transmission of data with network remote control
JP2002182855A (ja) 2000-12-19 2002-06-28 Totoku Electric Co Ltd タッチパネル装置
GB2370739A (en) 2000-12-27 2002-07-03 Nokia Corp Flashlight cursor for set-top boxes
US6677932B1 (en) 2001-01-28 2004-01-13 Finger Works, Inc. System and method for recognizing touch typing under limited tactile feedback conditions
US20050183017A1 (en) 2001-01-31 2005-08-18 Microsoft Corporation Seekbar in taskbar player visualization mode
US20020107748A1 (en) 2001-02-05 2002-08-08 International Business Machines Corporation Method and system for decentralized order matching among individual marketplaces
US6570557B1 (en) 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
US20020120837A1 (en) 2001-02-28 2002-08-29 Maxemchuk Nicholas Frank Distributed internet multicast system for the stock market
JP2002268867A (ja) 2001-03-13 2002-09-20 Sony Corp 表示装置及び表示方法、プログラム記録媒体並びにプログラム
US20020178102A1 (en) 2001-03-15 2002-11-28 Larry Scheinberg Margin release system for an electronic-based market
JP2002286489A (ja) 2001-03-28 2002-10-03 Clarion Co Ltd カーナビゲーション装置及び方法並びにカーナビゲーション用ソフトウェア
US7012595B2 (en) 2001-03-30 2006-03-14 Koninklijke Philips Electronics N.V. Handheld electronic device with touch pad
TW502180B (en) 2001-03-30 2002-09-11 Ulead Systems Inc Previewing method of editing multimedia effect
US20020149630A1 (en) 2001-04-16 2002-10-17 Parascript Llc Providing hand-written and hand-drawn electronic mail service
US7134093B2 (en) 2001-04-18 2006-11-07 International Business Machines Corporation Graphical user interface for direct control of display of data
US20020161693A1 (en) 2001-04-30 2002-10-31 Greenwald Jamie A. Automated over-the-counter derivatives trading system
US8125492B1 (en) 2001-05-18 2012-02-28 Autodesk, Inc. Parameter wiring
TW521205B (en) 2001-06-05 2003-02-21 Compal Electronics Inc Touch screen capable of controlling amplification with pressure
US20020186257A1 (en) 2001-06-08 2002-12-12 Cadiz Jonathan J. System and process for providing dynamic communication access and information awareness in an interactive peripheral display
US7190379B2 (en) 2001-06-29 2007-03-13 Contex A/S Method for resizing and moving an object on a computer screen
US8001490B2 (en) 2001-07-10 2011-08-16 Nvidia International, Inc. System, method and computer program product for a content publisher for wireless devices
US20050134578A1 (en) 2001-07-13 2005-06-23 Universal Electronics Inc. System and methods for interacting with a control environment
JP4515090B2 (ja) 2001-08-31 2010-07-28 セラミック・フューエル・セルズ・リミテッド 排気を循環させるための燃料電池システム及び方法
JP2003084744A (ja) 2001-09-10 2003-03-19 Sharp Corp エミュレーション装置、エミュレーション方法及びその方法を実行するプログラム並びにそのプログラムを記録した記録媒体
US7103848B2 (en) 2001-09-13 2006-09-05 International Business Machines Corporation Handheld electronic book reader with annotation and usage tracking capabilities
US6965645B2 (en) 2001-09-25 2005-11-15 Microsoft Corporation Content-based characterization of video frame sequences
US20030206169A1 (en) 2001-09-26 2003-11-06 Michael Springer System, method and computer program product for automatically snapping lines to drawing elements
US6703550B2 (en) 2001-10-10 2004-03-09 Immersion Corporation Sound data output and manipulation using haptic feedback
US8001189B2 (en) 2001-10-16 2011-08-16 Microsoft Corporation Routing of network messages
CN102609088B (zh) 2001-11-01 2015-12-16 意美森公司 用于提供触感的方法和系统
JP2003157131A (ja) 2001-11-22 2003-05-30 Nippon Telegr & Teleph Corp <Ntt> 入力方法、表示方法、メディア情報合成表示方法、入力装置、メディア情報合成表示装置、入力プログラム、メディア情報合成表示プログラム、これらのプログラムを記録した記録媒体
JP2003162355A (ja) 2001-11-26 2003-06-06 Sony Corp タスクの表示切り替え方法及び携帯機器及び携帯通信機器
JP2003186597A (ja) 2001-12-13 2003-07-04 Samsung Yokohama Research Institute Co Ltd 携帯端末装置
US20030112269A1 (en) 2001-12-17 2003-06-19 International Business Machines Corporation Configurable graphical element for monitoring dynamic properties of a resource coupled to a computing environment
US7346855B2 (en) 2001-12-21 2008-03-18 Microsoft Corporation Method and system for switching between multiple computer applications
CN1356493A (zh) 2001-12-30 2002-07-03 王森 承压蒸汽锅炉的上锅筒
US7043701B2 (en) 2002-01-07 2006-05-09 Xerox Corporation Opacity desktop with depth perception
US20030184574A1 (en) 2002-02-12 2003-10-02 Phillips James V. Touch screen interface with haptic feedback device
US6888537B2 (en) 2002-02-13 2005-05-03 Siemens Technology-To-Business Center, Llc Configurable industrial input devices that use electrically conductive elastomer
CN100350351C (zh) 2002-03-08 2007-11-21 设计展示公司 电装置控制设备
US7114091B2 (en) 2002-03-18 2006-09-26 National Instruments Corporation Synchronization of distributed systems
TWI234115B (en) 2002-04-03 2005-06-11 Htc Corp Method and device of setting threshold pressure for touch panel
US20030189647A1 (en) 2002-04-05 2003-10-09 Kang Beng Hong Alex Method of taking pictures
US7178049B2 (en) 2002-04-24 2007-02-13 Medius, Inc. Method for multi-tasking multiple Java virtual machines in a secure environment
JP2004062648A (ja) 2002-07-30 2004-02-26 Kyocera Corp 表示制御装置及びこれに用いられる表示制御プログラム
US20030222915A1 (en) 2002-05-30 2003-12-04 International Business Machines Corporation Data processor controlled display system with drag and drop movement of displayed items from source to destination screen positions and interactive modification of dragged items during the movement
US7801796B2 (en) 2002-06-05 2010-09-21 The Nasdaq Omx Group, Inc. Message prioritization process and method
US7259752B1 (en) 2002-06-28 2007-08-21 Microsoft Corporation Method and system for editing electronic ink
US11275405B2 (en) 2005-03-04 2022-03-15 Apple Inc. Multi-functional hand-held device
JP2004054861A (ja) 2002-07-16 2004-02-19 Sanee Denki Kk タッチ式マウス
US20040015662A1 (en) 2002-07-22 2004-01-22 Aron Cummings Memory card, memory card controller, and software therefor
US20040056849A1 (en) 2002-07-25 2004-03-25 Andrew Lohbihler Method and apparatus for powering, detecting and locating multiple touch input devices on a touch screen
US7549127B2 (en) 2002-08-01 2009-06-16 Realnetworks, Inc. Method and apparatus for resizing video content displayed within a graphical user interface
JP4115198B2 (ja) 2002-08-02 2008-07-09 株式会社日立製作所 タッチパネルを備えた表示装置
KR100486711B1 (ko) 2002-08-12 2005-05-03 삼성전기주식회사 개인용 정보 단말기의 페이지 넘김 장치 및 방법
JP4500485B2 (ja) 2002-08-28 2010-07-14 株式会社日立製作所 タッチパネルを備えた表示装置
US7739604B1 (en) 2002-09-25 2010-06-15 Apple Inc. Method and apparatus for managing windows
US20040138849A1 (en) 2002-09-30 2004-07-15 Albrecht Schmidt Load sensing surface as pointing device
EP1406150A1 (en) 2002-10-01 2004-04-07 Sony Ericsson Mobile Communications AB Tactile feedback method and device and portable device incorporating same
US7752115B2 (en) 2002-10-02 2010-07-06 Trading Technologies International, Inc. Method and apparatus for a fair exchange
JP4173718B2 (ja) 2002-10-31 2008-10-29 富士通株式会社 ウィンドウ切替装置及びウィンドウ切替プログラム
JP2004152217A (ja) 2002-11-01 2004-05-27 Canon Electronics Inc タッチパネル付き表示装置
US20050114785A1 (en) 2003-01-07 2005-05-26 Microsoft Corporation Active content wizard execution with improved conspicuity
US20070128899A1 (en) 2003-01-12 2007-06-07 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US7453439B1 (en) 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
US7224362B2 (en) 2003-01-30 2007-05-29 Agilent Technologies, Inc. Systems and methods for providing visualization and network diagrams
US7685538B2 (en) 2003-01-31 2010-03-23 Wacom Co., Ltd. Method of triggering functions in a computer application using a digitizer having a stylus and a digitizer system
US20040155909A1 (en) 2003-02-07 2004-08-12 Sun Microsystems, Inc. Scroll tray mechanism for cellular telephone
JP2005317041A (ja) 2003-02-14 2005-11-10 Sony Corp 情報処理装置、情報処理方法、及びプログラム
US7185291B2 (en) 2003-03-04 2007-02-27 Institute For Information Industry Computer with a touch screen
US7369102B2 (en) 2003-03-04 2008-05-06 Microsoft Corporation System and method for navigating a graphical user interface on a smaller display
US7532206B2 (en) 2003-03-11 2009-05-12 Smart Technologies Ulc System and method for differentiating between pointers used to contact touch surface
US7380218B2 (en) 2003-03-27 2008-05-27 International Business Machines Corporation Method and apparatus for managing windows
US20040219968A1 (en) 2003-05-01 2004-11-04 Fiden Daniel P. Gaming machine with interactive pop-up windows
GB0312465D0 (en) 2003-05-30 2003-07-09 Therefore Ltd A data input method for a computing device
US7516404B1 (en) 2003-06-02 2009-04-07 Colby Steven M Text correction
US7159189B2 (en) 2003-06-13 2007-01-02 Alphabase Systems, Inc. Method and system for controlling cascaded windows on a GUI desktop on a computer
US7051282B2 (en) 2003-06-13 2006-05-23 Microsoft Corporation Multi-layer graphical user interface
EP1491990B1 (en) 2003-06-20 2010-02-17 Apple Inc. Graphical user interface system and method of displaying objects in a graphical user interface
US20040267823A1 (en) 2003-06-24 2004-12-30 Microsoft Corporation Reconcilable and undoable file system
US8682097B2 (en) 2006-02-14 2014-03-25 DigitalOptics Corporation Europe Limited Digital image enhancement with reference images
JP2005031786A (ja) 2003-07-08 2005-02-03 Fujitsu Ten Ltd 文字入力装置
WO2005008444A2 (en) * 2003-07-14 2005-01-27 Matt Pallakoff System and method for a portbale multimedia client
US7036088B2 (en) 2003-07-24 2006-04-25 Sap Ag Multi-modal method for application swapping
US7721228B2 (en) 2003-08-05 2010-05-18 Yahoo! Inc. Method and system of controlling a context menu
KR100580174B1 (ko) 2003-08-21 2006-05-16 삼성전자주식회사 회전 가능한 디스플레이 장치 및 화면 조정 방법
JP4003742B2 (ja) 2003-08-21 2007-11-07 カシオ計算機株式会社 電子カメラ
US9024884B2 (en) 2003-09-02 2015-05-05 Apple Inc. Touch-sensitive electronic apparatus for media applications, and methods therefor
JP2005092386A (ja) 2003-09-16 2005-04-07 Sony Corp 画像選択装置および画像選択方法
US7411575B2 (en) 2003-09-16 2008-08-12 Smart Technologies Ulc Gesture recognition method and touch system incorporating the same
US7500127B2 (en) 2003-09-18 2009-03-03 Vulcan Portals Inc. Method and apparatus for operating an electronic device in a low power mode
US7426647B2 (en) 2003-09-18 2008-09-16 Vulcan Portals Inc. Low power media player for an electronic device
US7702733B2 (en) 2003-09-18 2010-04-20 Vulcan Portals Inc. Low power email functionality for an electronic device
US7925298B2 (en) 2003-09-18 2011-04-12 Vulcan Portals Inc. User interface for a secondary display module of a mobile electronic device
KR100597588B1 (ko) 2003-10-02 2006-07-06 한국전자통신연구원 우선순위기반 능동 시험패킷을 이용한 노드간 경로특성측정방법
US7176902B2 (en) 2003-10-10 2007-02-13 3M Innovative Properties Company Wake-on-touch for vibration sensing touch input devices
US7554689B2 (en) 2003-10-15 2009-06-30 Canon Kabushiki Kaisha Document layout method
US20050091604A1 (en) 2003-10-22 2005-04-28 Scott Davis Systems and methods that track a user-identified point of focus
JP2005135106A (ja) 2003-10-29 2005-05-26 Sony Corp 表示画像制御装置及び方法
US20050183035A1 (en) 2003-11-20 2005-08-18 Ringel Meredith J. Conflict resolution for graphic multi-user interface
US20050110777A1 (en) 2003-11-25 2005-05-26 Geaghan Bernard O. Light-emitting stylus and user input device using same
US8164573B2 (en) 2003-11-26 2012-04-24 Immersion Corporation Systems and methods for adaptive interpretation of input from a touch-sensitive input device
JP2005157842A (ja) 2003-11-27 2005-06-16 Fujitsu Ltd ブラウザプログラム、ブラウジング方法、及びブラウジング装置
US7454713B2 (en) 2003-12-01 2008-11-18 Sony Ericsson Mobile Communications Ab Apparatus, methods and computer program products providing menu expansion and organization functions
US8209634B2 (en) 2003-12-01 2012-06-26 Research In Motion Limited Previewing a new event on a small screen device
ATE371335T1 (de) 2003-12-01 2007-09-15 Sony Ericsson Mobile Comm Ab Kamera zur aufnahme einer bildsequenz
US20050125742A1 (en) 2003-12-09 2005-06-09 International Business Machines Corporation Non-overlapping graphical user interface workspace
US7774721B2 (en) 2003-12-15 2010-08-10 Microsoft Corporation Intelligent backward resource navigation
US7085590B2 (en) 2003-12-31 2006-08-01 Sony Ericsson Mobile Communications Ab Mobile terminal with ergonomic imaging functions
EP1557744B1 (en) 2004-01-20 2008-04-16 Sony Deutschland GmbH Haptic key controlled data input
US7966352B2 (en) 2004-01-26 2011-06-21 Microsoft Corporation Context harvesting from selected content
JP4790990B2 (ja) 2004-01-27 2011-10-12 京セラ株式会社 携帯端末
US7441204B2 (en) 2004-02-06 2008-10-21 Microsoft Corporation Method and system for automatically displaying content of a window on a display that has changed orientation
CN101268504A (zh) 2004-02-25 2008-09-17 爱普乐技术公司 提供多模式数字输入的设备
US7180531B2 (en) 2004-02-27 2007-02-20 Microsoft Corporation Method and apparatus for enabling application program compatibility with display devices having improved pixel density
KR100611182B1 (ko) 2004-02-27 2006-08-10 삼성전자주식회사 회전상태에 따라 메뉴표시상태를 변경하는 휴대형전자기기 및 그 방법
US20050190280A1 (en) 2004-02-27 2005-09-01 Haas William R. Method and apparatus for a digital camera scrolling slideshow
US7788595B2 (en) 2004-03-08 2010-08-31 Sap Ag Method and system for switching among management system applications
EP1738246A4 (en) 2004-03-09 2011-02-09 Freedom Scientific Inc IMPROVED VISION IMPROVEMENT FOR GRAPHICAL USER INTERFACE
GB2412831A (en) 2004-03-30 2005-10-05 Univ Newcastle Highlighting important information by blurring less important information
US7921373B2 (en) 2004-04-05 2011-04-05 Panasonic Corporation Display screen management apparatus
US20050223338A1 (en) 2004-04-05 2005-10-06 Nokia Corporation Animated user-interface in electronic devices
US20050229112A1 (en) 2004-04-13 2005-10-13 Clay Timothy M Method and system for conveying an image position
JP2005309933A (ja) 2004-04-23 2005-11-04 Canon Inc 拡張制御装置および画像処理システムおよびアプリケーションアイコン表示方法およびプログラムおよび記憶媒体
US7694236B2 (en) 2004-04-23 2010-04-06 Microsoft Corporation Stack icons representing multiple objects
US7787026B1 (en) 2004-04-28 2010-08-31 Media Tek Singapore Pte Ltd. Continuous burst mode digital camera
US7777730B2 (en) 2004-05-05 2010-08-17 Koninklijke Philips Electronics N.V. Browsing media items
JP4063246B2 (ja) 2004-05-11 2008-03-19 日本電気株式会社 ページ情報表示装置
WO2005114422A2 (en) 2004-05-21 2005-12-01 Pressco Technology Inc. Graphical re-inspection user setup interface
JP4869568B2 (ja) 2004-06-14 2012-02-08 ソニー株式会社 入力装置および電子機器
US8321786B2 (en) 2004-06-17 2012-11-27 Apple Inc. Routine and interface for correcting electronic text
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US8281241B2 (en) 2004-06-28 2012-10-02 Nokia Corporation Electronic device and method for providing extended user interface
US8046712B2 (en) 2004-06-29 2011-10-25 Acd Systems International Inc. Management of multiple window panels with a graphical user interface
US7743348B2 (en) 2004-06-30 2010-06-22 Microsoft Corporation Using physical objects to adjust attributes of an interactive display application
US20060001657A1 (en) 2004-07-02 2006-01-05 Logitech Europe S.A. Scrolling device
US20060020904A1 (en) 2004-07-09 2006-01-26 Antti Aaltonen Stripe user interface
US20060012577A1 (en) 2004-07-16 2006-01-19 Nokia Corporation Active keypad lock for devices equipped with touch screen
US8381135B2 (en) 2004-07-30 2013-02-19 Apple Inc. Proximity detector in handheld device
US7653883B2 (en) 2004-07-30 2010-01-26 Apple Inc. Proximity detector in handheld device
KR101207328B1 (ko) 2004-08-02 2012-12-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 압력 감지 터치 스크린, 압력 감지 터치 스크린을 구비하는 데이터 처리 시스템, 데이터 처리 시스템과의 사용자 상호작용을 쉽게 하는 방법, 및 컴퓨터 판독 가능한 매체
WO2006013485A2 (en) 2004-08-02 2006-02-09 Koninklijke Philips Electronics N.V. Pressure-controlled navigating in a touch screen
US7178111B2 (en) 2004-08-03 2007-02-13 Microsoft Corporation Multi-planar three-dimensional user interface
US7724242B2 (en) 2004-08-06 2010-05-25 Touchtable, Inc. Touch driven method and apparatus to integrate and display multiple image layers forming alternate depictions of same subject matter
US7728821B2 (en) 2004-08-06 2010-06-01 Touchtable, Inc. Touch detecting interactive display
GB2417176A (en) 2004-08-12 2006-02-15 Ibm Mouse cursor display
US8117542B2 (en) 2004-08-16 2012-02-14 Microsoft Corporation User interface for displaying selectable software functionality controls that are contextually relevant to a selected object
US20060041846A1 (en) 2004-08-19 2006-02-23 International Business Machines Corporation Method of window management for a windowing system
FR2874432A1 (fr) 2004-08-20 2006-02-24 Gervais Danone Sa Procede d'analyse de produits industriels alimentaires, cosmetiques et/ou d'hygiene, interface de mesure pour la mise en oeuvre du procede et systeme electronique de mise en oeuvre de l'interface
JP2006059238A (ja) 2004-08-23 2006-03-02 Denso Corp 情報入力表示装置
US7761814B2 (en) 2004-09-13 2010-07-20 Microsoft Corporation Flick gesture
EP1805578A1 (en) 2004-09-15 2007-07-11 Nokia Corporation Handling and scrolling of content on screen
US20060067654A1 (en) 2004-09-24 2006-03-30 Magix Ag Graphical user interface adaptable to multiple display devices
JP2006091446A (ja) 2004-09-24 2006-04-06 Fuji Photo Film Co Ltd カメラ
US8232969B2 (en) 2004-10-08 2012-07-31 Immersion Corporation Haptic feedback for button and scrolling action simulation in touch input devices
CN101308442B (zh) 2004-10-12 2012-04-04 日本电信电话株式会社 三维指示方法和三维指示装置
KR20070065914A (ko) 2004-10-19 2007-06-25 코닌클리케 필립스 일렉트로닉스 엔.브이. 마스터 기판 및 고밀도 양각 구조를 제조하기 위한 방법
US8677274B2 (en) 2004-11-10 2014-03-18 Apple Inc. Highlighting items for search results
WO2006054207A1 (en) 2004-11-16 2006-05-26 Koninklijke Philips Electronics N.V. Touchless manipulation of images for regional enhancement
US20060107226A1 (en) 2004-11-16 2006-05-18 Microsoft Corporation Sidebar autohide to desktop
FR2878344B1 (fr) 2004-11-22 2012-12-21 Sionnest Laurent Guyot Dispositif de commandes et d'entree de donnees
US7847789B2 (en) 2004-11-23 2010-12-07 Microsoft Corporation Reducing accidental touch-sensitive device activation
US20060136834A1 (en) 2004-12-15 2006-06-22 Jiangen Cao Scrollable toolbar with tool tip on small screens
US7458038B2 (en) 2004-12-20 2008-11-25 Microsoft Corporation Selection indication fields
US7619616B2 (en) 2004-12-21 2009-11-17 Microsoft Corporation Pressure sensitive controls
US7629966B2 (en) 2004-12-21 2009-12-08 Microsoft Corporation Hard tap
US7683889B2 (en) * 2004-12-21 2010-03-23 Microsoft Corporation Pressure based selection
CN101099192A (zh) 2005-01-05 2008-01-02 松下电器产业株式会社 屏幕显示设备
US7552397B2 (en) 2005-01-18 2009-06-23 Microsoft Corporation Multiple window behavior system
US8341541B2 (en) 2005-01-18 2012-12-25 Microsoft Corporation System and method for visually browsing of open windows
US8464176B2 (en) 2005-01-19 2013-06-11 Microsoft Corporation Dynamic stacking and expansion of visual items
US7574434B2 (en) 2005-02-25 2009-08-11 Sony Corporation Method and system for navigating and selecting media from large data sets
KR101257964B1 (ko) 2005-03-04 2013-04-30 애플 인크. 다기능 휴대용 장치
JP4166229B2 (ja) 2005-03-14 2008-10-15 株式会社日立製作所 タッチパネルを備えた表示装置
US20060213754A1 (en) 2005-03-17 2006-09-28 Microsoft Corporation Method and system for computer application program task switching via a single hardware button
US7454702B2 (en) 2005-03-21 2008-11-18 Microsoft Corporation Tool for selecting ink and other objects in an electronic document
US7661069B2 (en) 2005-03-31 2010-02-09 Microsoft Corporation System and method for visually expressing user interface elements
US7478339B2 (en) 2005-04-01 2009-01-13 Microsoft Corporation Method and apparatus for application window grouping and management
US8023568B2 (en) 2005-04-15 2011-09-20 Avid Technology, Inc. Capture, editing and encoding of motion pictures encoded with repeating fields or frames
US7355595B2 (en) 2005-04-15 2008-04-08 Microsoft Corporation Tactile device for scrolling
US7471284B2 (en) 2005-04-15 2008-12-30 Microsoft Corporation Tactile scroll bar with illuminated document position indicator
US7673255B2 (en) 2005-04-22 2010-03-02 Microsoft Corporation Interface and system for manipulating thumbnails of live windows in a window manager
US9569093B2 (en) 2005-05-18 2017-02-14 Power2B, Inc. Displays and information input devices
US7609178B2 (en) 2006-04-20 2009-10-27 Pressure Profile Systems, Inc. Reconfigurable tactile sensor input device
US9785329B2 (en) 2005-05-23 2017-10-10 Nokia Technologies Oy Pocket computer and associated methods
US20070024646A1 (en) 2005-05-23 2007-02-01 Kalle Saarinen Portable electronic apparatus and associated method
US7797641B2 (en) 2005-05-27 2010-09-14 Nokia Corporation Mobile communications terminal and method therefore
US9141718B2 (en) 2005-06-03 2015-09-22 Apple Inc. Clipview applications
US7710397B2 (en) 2005-06-03 2010-05-04 Apple Inc. Mouse with improved input mechanisms using touch sensors
JP2006345209A (ja) 2005-06-08 2006-12-21 Sony Corp 入力装置、情報処理装置、情報処理方法、及びプログラム
US7903090B2 (en) 2005-06-10 2011-03-08 Qsi Corporation Force-based input device
TWI296395B (en) 2005-06-24 2008-05-01 Benq Corp Method for zooming image on touch screen
US20070004451A1 (en) 2005-06-30 2007-01-04 C Anderson Eric Controlling functions of a handheld multifunction device
US20070004461A1 (en) 2005-06-30 2007-01-04 Bathina Sridhar N Terminal with messaging application
CN101814005B (zh) 2005-07-22 2013-02-27 运行移动系统公司 最适宜拇指的触摸屏用户界面的系统和方法
US8049731B2 (en) 2005-07-29 2011-11-01 Interlink Electronics, Inc. System and method for implementing a control function via a sensor having a touch sensitive control input surface
JP4622727B2 (ja) 2005-07-29 2011-02-02 日本電気株式会社 適応送信タイミング制御方法、無線通信システムおよび無線通信装置
US20080297475A1 (en) 2005-08-02 2008-12-04 Woolf Tod M Input Device Having Multifunctional Keys
US7680513B2 (en) 2005-08-08 2010-03-16 Palm, Inc. Contact-centric user-interface features for computing devices
EP1920539A1 (en) 2005-08-26 2008-05-14 KTF Technologies, Inc. User terminal for performing a plurality of applications simultaneously
EP1932141A4 (en) 2005-09-13 2009-08-19 Spacetime3D Inc SYSTEM AND METHOD FOR FORMING A THREE-DIMENSIONAL USER GRAPHIC INTERFACE
US20070152980A1 (en) 2006-01-05 2007-07-05 Kenneth Kocienda Touch Screen Keyboards for Portable Electronic Devices
US7694231B2 (en) 2006-01-05 2010-04-06 Apple Inc. Keyboards for portable electronic devices
US7633076B2 (en) 2005-09-30 2009-12-15 Apple Inc. Automated response to and sensing of user activity in portable devices
TW200715192A (en) 2005-10-07 2007-04-16 Elan Microelectronics Corp Method for a window to generate different moving speed
JP2007116384A (ja) 2005-10-20 2007-05-10 Funai Electric Co Ltd 電子番組情報表示装置
CN1955906A (zh) 2005-10-28 2007-05-02 华硕电脑股份有限公司 单键多程式的执行方法
US7725839B2 (en) 2005-11-15 2010-05-25 Microsoft Corporation Three-dimensional active file explorer
US8643605B2 (en) 2005-11-21 2014-02-04 Core Wireless Licensing S.A.R.L Gesture based document editor
US7331245B2 (en) 2005-11-22 2008-02-19 Avago Technologies Ecbu Ip Pte Ltd Pressure distribution sensor and sensing method
US7834850B2 (en) 2005-11-29 2010-11-16 Navisense Method and system for object control
JP4777055B2 (ja) 2005-11-29 2011-09-21 京セラ株式会社 表示装置、制御方法
JP2007148927A (ja) 2005-11-29 2007-06-14 Alps Electric Co Ltd 入力装置及びこれを用いたスクロール制御方法
WO2007068091A1 (en) 2005-12-12 2007-06-21 Audiokinetic Inc. Method and system for multi-version digital authoring
JP2007163891A (ja) 2005-12-14 2007-06-28 Sony Corp 表示装置
US8325398B2 (en) 2005-12-22 2012-12-04 Canon Kabushiki Kaisha Image editing system, image management apparatus, and image editing program
US7657849B2 (en) 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
US20070152959A1 (en) 2005-12-29 2007-07-05 Sap Ag Pressure-sensitive button
WO2007079425A2 (en) 2005-12-30 2007-07-12 Apple Inc. Portable electronic device with multi-touch input
US7509588B2 (en) 2005-12-30 2009-03-24 Apple Inc. Portable electronic device with interface reconfiguration mode
US7797642B1 (en) 2005-12-30 2010-09-14 Google Inc. Method, system, and graphical user interface for meeting-spot-related contact lists
US20070168369A1 (en) 2006-01-04 2007-07-19 Companionlink Software, Inc. User interface for a portable electronic device
US7757185B2 (en) 2006-01-06 2010-07-13 Apple Inc. Enabling and disabling hotkeys
US7603633B2 (en) 2006-01-13 2009-10-13 Microsoft Corporation Position-based multi-stroke marking menus
US7486282B2 (en) 2006-01-27 2009-02-03 Microsoft Corporation Size variant pressure eraser
US8510669B2 (en) 2006-02-06 2013-08-13 Yahoo! Inc. Method and system for presenting photos on a website
US7536654B2 (en) 2006-02-06 2009-05-19 Microsoft Corporation Photo browse and zoom
US8139514B2 (en) 2006-02-24 2012-03-20 Yahoo! Inc. Method and system for communicating with multiple users via a map over the internet
US20110096174A1 (en) 2006-02-28 2011-04-28 King Martin T Accessing resources based on capturing information from a rendered document
US7532837B2 (en) 2006-03-09 2009-05-12 Kabushiki Kaisha Toshiba Multifunction peripheral with template registration and template registration method
US8745526B2 (en) 2006-03-14 2014-06-03 Blackberry Limited Screen display in application switching
KR100746874B1 (ko) 2006-03-16 2007-08-07 삼성전자주식회사 이동 단말기에서 터치패드를 이용한 서비스 제공 장치 및방법
GB0605587D0 (en) 2006-03-20 2006-04-26 British Broadcasting Corp Graphical user interface methods and systems
US8405618B2 (en) 2006-03-24 2013-03-26 Northwestern University Haptic device with indirect haptic feedback
US7925250B2 (en) 2006-03-27 2011-04-12 International Business Machines Corporation Reuse of a mobile device application in a desktop environment
JP2007264808A (ja) 2006-03-27 2007-10-11 Nikon Corp 表示入力装置及び撮像装置
US8780139B2 (en) 2006-03-27 2014-07-15 Adobe Systems Incorporated Resolution monitoring when using visual manipulation tools
US7656413B2 (en) 2006-03-29 2010-02-02 Autodesk, Inc. Large display attention focus system
US7538760B2 (en) 2006-03-30 2009-05-26 Apple Inc. Force imaging input device and system
US8040142B1 (en) 2006-03-31 2011-10-18 Cypress Semiconductor Corporation Touch detection techniques for capacitive touch sense systems
US7979146B2 (en) 2006-04-13 2011-07-12 Immersion Corporation System and method for automatically producing haptic events from a digital audio signal
US7861176B2 (en) 2006-04-13 2010-12-28 Touchcommerce, Inc. Methods and systems for providing online chat
US7607088B2 (en) 2006-04-18 2009-10-20 International Business Machines Corporation Computer program product, apparatus and method for displaying a plurality of entities in a tooltip for a cell of a table
US8683362B2 (en) 2008-05-23 2014-03-25 Qualcomm Incorporated Card metaphor for activities in a computing device
US8296684B2 (en) 2008-05-23 2012-10-23 Hewlett-Packard Development Company, L.P. Navigating among activities in a computing device
WO2007121557A1 (en) 2006-04-21 2007-11-01 Anand Agarawala System for organizing and visualizing display objects
KR100771626B1 (ko) 2006-04-25 2007-10-31 엘지전자 주식회사 단말기 및 이를 위한 명령 입력 방법
US8279180B2 (en) 2006-05-02 2012-10-02 Apple Inc. Multipoint touch surface controller
JP4737539B2 (ja) 2006-05-03 2011-08-03 株式会社ソニー・コンピュータエンタテインメント マルチメディア再生装置および背景画像表示方法
US9063647B2 (en) 2006-05-12 2015-06-23 Microsoft Technology Licensing, Llc Multi-touch uses, gestures, and implementation
US20070299923A1 (en) 2006-06-16 2007-12-27 Skelly George J Methods and systems for managing messaging
US7921116B2 (en) 2006-06-16 2011-04-05 Microsoft Corporation Highly meaningful multimedia metadata creation and associations
KR101242030B1 (ko) 2006-06-22 2013-03-11 엘지디스플레이 주식회사 유기전계발광 소자
JP2008009759A (ja) 2006-06-29 2008-01-17 Toyota Motor Corp タッチパネル装置
US7880728B2 (en) 2006-06-29 2011-02-01 Microsoft Corporation Application switching via a touch screen interface
JP4751780B2 (ja) 2006-07-07 2011-08-17 株式会社エヌ・ティ・ティ・ドコモ キー入力装置
JP4583344B2 (ja) 2006-07-10 2010-11-17 シャープ株式会社 携帯電話機
EP1882902A1 (en) 2006-07-27 2008-01-30 Aisin AW Co., Ltd. Navigation apparatus and method for providing guidance to a vehicle user using a touch screen
US20080024454A1 (en) 2006-07-31 2008-01-31 Paul Everest Three-dimensional touch pad input device
JP2008033739A (ja) 2006-07-31 2008-02-14 Sony Corp 力覚フィードバックおよび圧力測定に基づくタッチスクリーンインターラクション方法および装置
US8255815B2 (en) 2006-08-04 2012-08-28 Apple Inc. Motion picture preview icons
US20080051989A1 (en) 2006-08-25 2008-02-28 Microsoft Corporation Filtering of data layered on mapping applications
US8106856B2 (en) 2006-09-06 2012-01-31 Apple Inc. Portable electronic device for photo management
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US7864163B2 (en) 2006-09-06 2011-01-04 Apple Inc. Portable electronic device, method, and graphical user interface for displaying structured electronic documents
US8842074B2 (en) 2006-09-06 2014-09-23 Apple Inc. Portable electronic device performing similar operations for different gestures
US7956849B2 (en) 2006-09-06 2011-06-07 Apple Inc. Video manager for portable multifunction device
US7743338B2 (en) 2006-09-11 2010-06-22 Apple Inc. Image rendering with image artifact along a multidimensional path
US7581186B2 (en) 2006-09-11 2009-08-25 Apple Inc. Media manager with integrated browsers
US8564543B2 (en) 2006-09-11 2013-10-22 Apple Inc. Media player with imaged based browsing
US7930650B2 (en) 2006-09-11 2011-04-19 Apple Inc. User interface with menu abstractions and content abstractions
US20080094398A1 (en) 2006-09-19 2008-04-24 Bracco Imaging, S.P.A. Methods and systems for interacting with a 3D visualization system using a 2D interface ("DextroLap")
JP2008076818A (ja) 2006-09-22 2008-04-03 Fujitsu Ltd 携帯端末装置
JP5176300B2 (ja) 2006-09-22 2013-04-03 富士通株式会社 電子機器、その制御方法及びその制御プログラム
US8245154B2 (en) 2006-11-03 2012-08-14 International Business Machines Corporation Most-recently-used task switching among parent and child windows
US20080106523A1 (en) 2006-11-07 2008-05-08 Conrad Richard H Ergonomic lift-clicking method and apparatus for actuating home switches on computer input devices
WO2008064142A2 (en) 2006-11-20 2008-05-29 Pham Don N Interactive sequential key system to input characters on small keypads
KR20080048837A (ko) 2006-11-29 2008-06-03 삼성전자주식회사 촉각 피드백을 출력하는 장치 및 방법
US8006002B2 (en) 2006-12-12 2011-08-23 Apple Inc. Methods and systems for automatic configuration of peripherals
JP2008146453A (ja) 2006-12-12 2008-06-26 Sony Corp 映像信号出力装置、操作入力処理方法
US8520866B2 (en) 2006-12-15 2013-08-27 Nokia Corporation Apparatus, method, and computer program product providing sound-produced tactile feedback
KR20080058121A (ko) 2006-12-21 2008-06-25 삼성전자주식회사 휴대단말기에서의 촉각형 사용자 인터페이스 제공 장치 및방법
US20080163119A1 (en) 2006-12-28 2008-07-03 Samsung Electronics Co., Ltd. Method for providing menu and multimedia device using the same
US8698727B2 (en) 2007-01-05 2014-04-15 Apple Inc. Backlight and ambient light sensor system
US8214768B2 (en) 2007-01-05 2012-07-03 Apple Inc. Method, system, and graphical user interface for viewing multiple application windows
US7956847B2 (en) 2007-01-05 2011-06-07 Apple Inc. Gestures for controlling, manipulating, and editing of media files using touch sensitive devices
TWI466547B (zh) 2007-01-05 2014-12-21 Marvell World Trade Ltd 用於改善低解析度視訊之方法與系統
US7877707B2 (en) 2007-01-06 2011-01-25 Apple Inc. Detecting and interpreting real-world and security gestures on touch and hover sensitive devices
US8082523B2 (en) 2007-01-07 2011-12-20 Apple Inc. Portable electronic device with graphical user interface supporting application switching
US9001047B2 (en) 2007-01-07 2015-04-07 Apple Inc. Modal change based on orientation of a portable multifunction device
US8519963B2 (en) 2007-01-07 2013-08-27 Apple Inc. Portable multifunction device, method, and graphical user interface for interpreting a finger gesture on a touch screen display
US8091045B2 (en) 2007-01-07 2012-01-03 Apple Inc. System and method for managing lists
US7978176B2 (en) 2007-01-07 2011-07-12 Apple Inc. Portrait-landscape rotation heuristics for a portable multifunction device
US20080168395A1 (en) 2007-01-07 2008-07-10 Bas Ording Positioning a Slider Icon on a Portable Multifunction Device
US7957762B2 (en) 2007-01-07 2011-06-07 Apple Inc. Using ambient light sensor to augment proximity sensor output
US20080222545A1 (en) 2007-01-07 2008-09-11 Lemay Stephen O Portable Electronic Device with a Global Setting User Interface
US8793577B2 (en) 2007-01-11 2014-07-29 Koninklijke Philips N.V. Method and apparatus for providing an undo/redo mechanism
US8201087B2 (en) 2007-02-01 2012-06-12 Tegic Communications, Inc. Spell-check for a keyboard system with automatic correction
JP2008191086A (ja) 2007-02-07 2008-08-21 Matsushita Electric Ind Co Ltd ナビゲーション装置
CN101241397B (zh) 2007-02-07 2012-03-07 罗伯特·博世有限公司 具有鼠标功能的键盘及其输入方法
GB2446702A (en) 2007-02-13 2008-08-20 Qrg Ltd Touch Control Panel with Pressure Sensor
KR101450584B1 (ko) 2007-02-22 2014-10-14 삼성전자주식회사 단말의 화면 표시 방법
US8650505B2 (en) 2007-02-28 2014-02-11 Rpx Corporation Multi-state unified pie user interface
JP5118129B2 (ja) 2007-03-06 2013-01-16 パナソニック株式会社 撮像装置、編集装置、画像処理方法及びプログラム
WO2008109172A1 (en) 2007-03-07 2008-09-12 Wiklof Christopher A Recorder with retrospective capture
US8352881B2 (en) 2007-03-08 2013-01-08 International Business Machines Corporation Method, apparatus and program storage device for providing customizable, immediate and radiating menus for accessing applications and actions
US7895533B2 (en) 2007-03-13 2011-02-22 Apple Inc. Interactive image thumbnails
US20080244448A1 (en) 2007-04-01 2008-10-02 Katharina Goering Generation of menu presentation relative to a given menu orientation
US20080259046A1 (en) 2007-04-05 2008-10-23 Joseph Carsanaro Pressure sensitive touch pad with virtual programmable buttons for launching utility applications
US7973778B2 (en) 2007-04-16 2011-07-05 Microsoft Corporation Visual simulation of touch pressure
CN101290553A (zh) 2007-04-17 2008-10-22 索尼(中国)有限公司 具有显示屏的电子设备
US8140996B2 (en) 2007-04-17 2012-03-20 QNX Software Systems Limtied System for endless loop scrolling and display
WO2008131544A1 (en) 2007-04-26 2008-11-06 University Of Manitoba Pressure augmented mouse
US20080270910A1 (en) 2007-04-30 2008-10-30 Lukasik Derek J User selection of a remote session
JP2008283629A (ja) 2007-05-14 2008-11-20 Sony Corp 撮像装置、撮像信号処理方法、プログラム
CN201107762Y (zh) 2007-05-15 2008-08-27 宏达国际电子股份有限公司 具有可切换使用者界面以及无阻碍触控操作的电子装置
US8621348B2 (en) 2007-05-25 2013-12-31 Immersion Corporation Customizing haptic effects on an end user device
KR20100017440A (ko) 2007-05-29 2010-02-16 가부시키가이샤 아쿠세스 단말 장치, 히스토리 관리 방법, 및 히스토리 관리를 위한 컴퓨터 사용 가능한 기억 매체
US7801950B2 (en) 2007-06-01 2010-09-21 Clustrmaps Ltd. System for analyzing and visualizing access statistics for a web site
JP2008305174A (ja) 2007-06-07 2008-12-18 Sony Corp 情報処理装置、情報処理方法、プログラム
US8381122B2 (en) 2007-06-08 2013-02-19 Apple Inc. Multi-dimensional application environment
US20080303795A1 (en) 2007-06-08 2008-12-11 Lowles Robert J Haptic display for a handheld electronic device
US20080307359A1 (en) 2007-06-08 2008-12-11 Apple Inc. Grouping Graphical Representations of Objects in a User Interface
US8010900B2 (en) 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US8745535B2 (en) 2007-06-08 2014-06-03 Apple Inc. Multi-dimensional desktop
US8667418B2 (en) 2007-06-08 2014-03-04 Apple Inc. Object stack
US9933937B2 (en) 2007-06-20 2018-04-03 Apple Inc. Portable multifunction device, method, and graphical user interface for playing online videos
US8059101B2 (en) 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
US8302033B2 (en) 2007-06-22 2012-10-30 Apple Inc. Touch screen device, method, and graphical user interface for providing maps, directions, and location-based information
US8315482B2 (en) 2007-06-26 2012-11-20 Microsoft Corporation Integrated platform for user input of digital ink
US9772751B2 (en) 2007-06-29 2017-09-26 Apple Inc. Using gestures to slide between user interfaces
US20090015563A1 (en) 2007-07-11 2009-01-15 John Thomas Sadler Stylized interactive icon for portable mobile communications device
US20090046110A1 (en) 2007-08-16 2009-02-19 Motorola, Inc. Method and apparatus for manipulating a displayed image
US20110210931A1 (en) 2007-08-19 2011-09-01 Ringbow Ltd. Finger-worn device and interaction methods and communication methods
KR20090019161A (ko) 2007-08-20 2009-02-25 삼성전자주식회사 전자 장치 및 이를 조작하는 방법
KR101424259B1 (ko) 2007-08-22 2014-07-31 삼성전자주식회사 휴대단말에서 입력 피드백 제공 방법 및 장치
US8619038B2 (en) 2007-09-04 2013-12-31 Apple Inc. Editing interface
US8826132B2 (en) 2007-09-04 2014-09-02 Apple Inc. Methods and systems for navigating content on a portable device
US9477395B2 (en) 2007-09-04 2016-10-25 Apple Inc. Audio file interface
US9619143B2 (en) 2008-01-06 2017-04-11 Apple Inc. Device, method, and graphical user interface for viewing application launch icons
US8638363B2 (en) 2009-02-18 2014-01-28 Google Inc. Automatically capturing information, such as capturing information using a document-aware device
US20110145068A1 (en) 2007-09-17 2011-06-16 King Martin T Associating rendered advertisements with digital content
US20090089293A1 (en) 2007-09-28 2009-04-02 Bccg Ventures, Llc Selfish data browsing
US8125458B2 (en) 2007-09-28 2012-02-28 Microsoft Corporation Detecting finger orientation on a touch-sensitive device
US8098235B2 (en) 2007-09-28 2012-01-17 Immersion Corporation Multi-touch device having dynamic haptic effects
TWI417764B (zh) 2007-10-01 2013-12-01 Giga Byte Comm Inc A control method and a device for performing a switching function of a touch screen of a hand-held electronic device
KR101570368B1 (ko) 2008-08-22 2015-11-20 엘지전자 주식회사 이동 단말기 및 그 메뉴 표시 방법
DE202008018283U1 (de) 2007-10-04 2012-07-17 Lg Electronics Inc. Menüanzeige für ein mobiles Kommunikationsendgerät
KR20090036877A (ko) 2007-10-10 2009-04-15 삼성전자주식회사 다중 프로젝션 윈도우 환경에서 기준자 기반으로오브젝트를 관리하는 방법 및 그 시스템
KR100823871B1 (ko) 2007-10-11 2008-04-21 주식회사 자티전자 드래그 버튼을 이용하여 절전을 관리하는 휴대용 단말기 및그 동작방법
CN101414231B (zh) 2007-10-17 2011-09-21 鸿富锦精密工业(深圳)有限公司 触摸屏装置及其图像显示方法
US20090102805A1 (en) 2007-10-18 2009-04-23 Microsoft Corporation Three-dimensional object simulation using audio, visual, and tactile feedback
DE102007052008A1 (de) 2007-10-26 2009-04-30 Andreas Steinhauser Single- oder multitouchfähiger Touchscreen oder Touchpad bestehend aus einem Array von Drucksensoren sowie Herstellung solcher Sensoren
US8024670B1 (en) 2007-10-30 2011-09-20 Intuit Inc. Workflow management using live thumbnails
JP4974236B2 (ja) 2007-10-30 2012-07-11 アズビル株式会社 情報連携ウィンドウシステムおよびプログラム
US8201101B2 (en) 2007-10-31 2012-06-12 Stratovan Corporation Resolution independent layout
JP2009129171A (ja) 2007-11-22 2009-06-11 Denso It Laboratory Inc 移動体に搭載される情報処理装置
TW200923758A (en) 2007-11-27 2009-06-01 Wistron Corp A key-in method and a content display method of an electronic device, and the application thereof
US8245155B2 (en) 2007-11-29 2012-08-14 Sony Corporation Computer implemented display, graphical user interface, design and method including scrolling features
US20090140985A1 (en) 2007-11-30 2009-06-04 Eric Liu Computing device that determines and uses applied pressure from user interaction with an input interface
US20090167507A1 (en) 2007-12-07 2009-07-02 Nokia Corporation User interface
US9513765B2 (en) 2007-12-07 2016-12-06 Sony Corporation Three-dimensional sliding object arrangement method and system
US7839269B2 (en) 2007-12-12 2010-11-23 Immersion Corporation Method and apparatus for distributing haptic synchronous signals
US8140974B2 (en) 2007-12-14 2012-03-20 Microsoft Corporation Presenting secondary media objects to a user
JP4605214B2 (ja) 2007-12-19 2011-01-05 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
TW200930009A (en) 2007-12-21 2009-07-01 Inventec Appliances Corp Procedure of acting personally hot function setting
US8233671B2 (en) 2007-12-27 2012-07-31 Intel-Ge Care Innovations Llc Reading device with hierarchal navigation
US9170649B2 (en) 2007-12-28 2015-10-27 Nokia Technologies Oy Audio and tactile feedback based on visual environment
US9857872B2 (en) 2007-12-31 2018-01-02 Apple Inc. Multi-touch display screen with localized tactile feedback
US8138896B2 (en) 2007-12-31 2012-03-20 Apple Inc. Tactile feedback in an electronic device
US9063627B2 (en) 2008-01-04 2015-06-23 Tactus Technology, Inc. User interface and methods
US9274612B2 (en) 2008-01-04 2016-03-01 Tactus Technology, Inc. User interface system
US8327272B2 (en) 2008-01-06 2012-12-04 Apple Inc. Portable multifunction device, method, and graphical user interface for viewing and managing electronic calendars
JP5001182B2 (ja) 2008-01-10 2012-08-15 パナソニック株式会社 表示制御装置、電子機器、表示制御方法、およびプログラム
US8196042B2 (en) 2008-01-21 2012-06-05 Microsoft Corporation Self-revelation aids for interfaces
US9665197B2 (en) 2008-01-30 2017-05-30 Nokia Technologies Oy Apparatus and method for enabling user input
US20090195959A1 (en) 2008-01-31 2009-08-06 Research In Motion Limited Electronic device and method for controlling same
US8504945B2 (en) 2008-02-01 2013-08-06 Gabriel Jakobson Method and system for associating content with map zoom function
US8423076B2 (en) 2008-02-01 2013-04-16 Lg Electronics Inc. User interface for a mobile device
KR101467513B1 (ko) 2008-02-11 2014-12-01 삼성전자 주식회사 모바일 단말 제어장치 및 그 방법
US20090295713A1 (en) 2008-05-30 2009-12-03 Julien Piot Pointing device with improved cursor control in-air and allowing multiple modes of operations
US20090207140A1 (en) * 2008-02-19 2009-08-20 Sony Ericsson Mobile Communications Ab Identifying and responding to multiple time-overlapping touches on a touch panel
US8314801B2 (en) 2008-02-29 2012-11-20 Microsoft Corporation Visual state manager for control skinning
US8201109B2 (en) 2008-03-04 2012-06-12 Apple Inc. Methods and graphical user interfaces for editing on a portable multifunction device
US20090276730A1 (en) 2008-03-04 2009-11-05 Alexandre Aybes Techniques for navigation of hierarchically-presented data
US8650507B2 (en) 2008-03-04 2014-02-11 Apple Inc. Selecting of text using gestures
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
JP4650699B2 (ja) 2008-03-06 2011-03-16 Necインフロンティア株式会社 入力装置、入力方法およびプログラム
KR101012300B1 (ko) 2008-03-07 2011-02-08 삼성전자주식회사 터치스크린을 구비한 휴대 단말기의 사용자 인터페이스장치 및 그 방법
JP4670879B2 (ja) 2008-03-11 2011-04-13 ブラザー工業株式会社 接触入力型の情報処理装置、接触入力型の情報処理方法、及び情報処理プログラム
US20090237374A1 (en) 2008-03-20 2009-09-24 Motorola, Inc. Transparent pressure sensor and method for using
JP4530067B2 (ja) 2008-03-27 2010-08-25 ソニー株式会社 撮像装置、撮像方法及びプログラム
US8640040B2 (en) 2008-03-28 2014-01-28 Sprint Communications Company L.P. Persistent event-management access in a mobile communications device
JP2009245239A (ja) 2008-03-31 2009-10-22 Sony Corp ポインタ表示装置、ポインタ表示検出方法、ポインタ表示検出プログラム及び情報機器
US8612888B2 (en) 2008-04-01 2013-12-17 Litl, Llc Method and apparatus for managing digital media content
GB0806183D0 (en) 2008-04-04 2008-05-14 Picsel Res Ltd Presentation of objects in 3D displays
US20090251421A1 (en) 2008-04-08 2009-10-08 Sony Ericsson Mobile Communications Ab Method and apparatus for tactile perception of digital images
JP5200641B2 (ja) 2008-04-10 2013-06-05 ソニー株式会社 リスト表示装置及びリスト表示方法
US8745514B1 (en) 2008-04-11 2014-06-03 Perceptive Pixel, Inc. Pressure-sensitive layering of displayed objects
US8259208B2 (en) 2008-04-15 2012-09-04 Sony Corporation Method and apparatus for performing touch-based adjustments within imaging devices
JP5428189B2 (ja) 2008-04-17 2014-02-26 三洋電機株式会社 ナビゲーション装置
US20090267906A1 (en) 2008-04-25 2009-10-29 Nokia Corporation Touch sensitive apparatus
US20090267909A1 (en) 2008-04-27 2009-10-29 Htc Corporation Electronic device and user interface display method thereof
JP4792058B2 (ja) 2008-04-28 2011-10-12 株式会社東芝 情報処理装置、制御方法およびプログラム
US20150205775A1 (en) 2008-05-01 2015-07-23 Eric Berdahl Managing Documents and Document Workspaces
US8159469B2 (en) 2008-05-06 2012-04-17 Hewlett-Packard Development Company, L.P. User interface for initiating activities in an electronic device
KR101461954B1 (ko) 2008-05-08 2014-11-14 엘지전자 주식회사 단말기 및 그 제어 방법
US20090280860A1 (en) 2008-05-12 2009-11-12 Sony Ericsson Mobile Communications Ab Mobile phone with directional force feedback and method
US20090284478A1 (en) 2008-05-15 2009-11-19 Microsoft Corporation Multi-Contact and Single-Contact Input
WO2009143294A2 (en) 2008-05-20 2009-11-26 Citrix Systems, Inc. Methods and systems for using external display devices with a mobile computing device
US7958447B2 (en) 2008-05-23 2011-06-07 International Business Machines Corporation Method and system for page navigating user interfaces for electronic devices
US20090295739A1 (en) 2008-05-27 2009-12-03 Wes Albert Nagara Haptic tactile precision selection
EP2129085B1 (en) 2008-05-29 2011-03-30 LG Electronics Inc. Transparent display and operation method thereof
US8314859B2 (en) 2008-05-29 2012-11-20 Lg Electronics Inc. Mobile terminal and image capturing method thereof
US20090307633A1 (en) 2008-06-06 2009-12-10 Apple Inc. Acceleration navigation of media device displays
US8099332B2 (en) 2008-06-06 2012-01-17 Apple Inc. User interface for application management for a mobile device
KR101498623B1 (ko) 2008-06-25 2015-03-04 엘지전자 주식회사 휴대 단말기 및 그 제어방법
US8174372B2 (en) 2008-06-26 2012-05-08 Immersion Corporation Providing haptic feedback on a touch surface
US8254902B2 (en) 2008-06-26 2012-08-28 Apple Inc. Apparatus and methods for enforcement of policies upon a wireless device
WO2009155981A1 (en) 2008-06-26 2009-12-30 Uiq Technology Ab Gesture on touch sensitive arrangement
JP4896932B2 (ja) 2008-06-26 2012-03-14 京セラ株式会社 入力装置
US8504946B2 (en) 2008-06-27 2013-08-06 Apple Inc. Portable device, method, and graphical user interface for automatically scrolling to display the top of an electronic document
WO2009158549A2 (en) 2008-06-28 2009-12-30 Apple Inc. Radial menu selection
US8477228B2 (en) 2008-06-30 2013-07-02 Verizon Patent And Licensing Inc. Camera data management and user interface apparatuses, systems, and methods
JP4938733B2 (ja) 2008-06-30 2012-05-23 株式会社ソニー・コンピュータエンタテインメント メニュー画面表示方法およびメニュー画面表示装置
EP2141574B1 (en) 2008-07-01 2017-09-27 LG Electronics Inc. Mobile terminal using proximity sensor and method of controlling the mobile terminal
KR101540779B1 (ko) 2008-07-01 2015-07-29 엘지전자 주식회사 휴대 단말기 및 그 제어방법
US20100013613A1 (en) 2008-07-08 2010-01-21 Jonathan Samuel Weston Haptic feedback projection system
US10095375B2 (en) 2008-07-09 2018-10-09 Apple Inc. Adding a contact to a home screen
JP4198190B1 (ja) 2008-07-11 2008-12-17 任天堂株式会社 画像通信システム、画像通信装置、および画像通信プログラム
EP2300789A1 (en) 2008-07-15 2011-03-30 Roland Guéneux Conductor centric electronic music stand system
KR101404367B1 (ko) 2008-07-15 2014-06-20 임머숀 코퍼레이션 메시지 콘텐츠를 진동촉각 메시징을 위한 가상 물리적 속성들로 맵핑하기 위한 시스템 및 방법
US8274484B2 (en) 2008-07-18 2012-09-25 Microsoft Corporation Tracking input in a screen-reflective interface environment
KR101495559B1 (ko) 2008-07-21 2015-02-27 삼성전자주식회사 사용자 명령 입력 방법 및 그 장치
US9176620B2 (en) 2008-07-22 2015-11-03 Lg Electronics Inc. Mobile terminal and method for displaying information list thereof
KR20100010302A (ko) 2008-07-22 2010-02-01 엘지전자 주식회사 이동단말기 및 그 메뉴 표시방법
US20100220065A1 (en) 2009-02-27 2010-09-02 Research In Motion Limited Touch-sensitive display including a force-sensor and portable electronic device including same
KR20100010860A (ko) 2008-07-23 2010-02-02 엘지전자 주식회사 이동 단말기 및 그의 이벤트 제어방법
JP5100556B2 (ja) 2008-07-30 2012-12-19 キヤノン株式会社 情報処理方法及び装置
US10983665B2 (en) 2008-08-01 2021-04-20 Samsung Electronics Co., Ltd. Electronic apparatus and method for implementing user interface
CN101650615B (zh) 2008-08-13 2011-01-26 怡利电子工业股份有限公司 按压式触控板的光标控制器与键盘的自动切换方法
US8604364B2 (en) 2008-08-15 2013-12-10 Lester F. Ludwig Sensors, algorithms and applications for a high dimensional touchpad
JP4600548B2 (ja) 2008-08-27 2010-12-15 ソニー株式会社 再生装置、再生方法、およびプログラム
US10375223B2 (en) 2008-08-28 2019-08-06 Qualcomm Incorporated Notifying a user of events in a computing device
US8913176B2 (en) 2008-09-05 2014-12-16 Lg Electronics Inc. Mobile terminal and method of performing multi-focusing and photographing image including plurality of objects using the same
JP4636146B2 (ja) 2008-09-05 2011-02-23 ソニー株式会社 画像処理方法、画像処理装置、プログラム及び画像処理システム
KR101505681B1 (ko) 2008-09-05 2015-03-30 엘지전자 주식회사 터치 스크린을 구비한 이동 단말기 및 이를 이용한 이미지 촬상 방법
KR101482125B1 (ko) 2008-09-09 2015-01-13 엘지전자 주식회사 휴대 단말기 및 그 동작방법
JP5346941B2 (ja) 2008-09-16 2013-11-20 パナソニック株式会社 データ表示装置、集積回路、データ表示方法、データ表示プログラム及び記録媒体
EP2330485A4 (en) 2008-09-17 2014-08-06 Nec Corp INPUT UNIT, METHOD FOR CONTROLLING IT AND EQUIPPED WITH THE INPUT DEVICE ELECTRONIC DEVICE
US20100070908A1 (en) 2008-09-18 2010-03-18 Sun Microsystems, Inc. System and method for accepting or rejecting suggested text corrections
US9041650B2 (en) 2008-09-18 2015-05-26 Apple Inc. Using measurement of lateral force for a tracking input device
US8769427B2 (en) 2008-09-19 2014-07-01 Google Inc. Quick gesture input
KR101451667B1 (ko) 2008-09-24 2014-10-16 엘지전자 주식회사 단말기 및 그 제어 방법
US8359547B2 (en) 2008-10-01 2013-01-22 Nintendo Co., Ltd. Movable user interface indicator of at least one parameter that is adjustable with different operations for increasing and decreasing the parameter and/or methods of providing the same
US8462107B2 (en) 2008-10-03 2013-06-11 International Business Machines Corporation Pointing device and method with error prevention features
EP3654141A1 (en) 2008-10-06 2020-05-20 Samsung Electronics Co., Ltd. Method and apparatus for displaying graphical user interface depending on a user's contact pattern
US20100088628A1 (en) 2008-10-07 2010-04-08 Sony Ericsson Mobile Communications Ab Live preview of open windows
US9442648B2 (en) 2008-10-07 2016-09-13 Blackberry Limited Portable electronic device and method of controlling same
EP2175357B1 (en) 2008-10-08 2012-11-21 Research In Motion Limited Portable electronic device and method of controlling same
US8245143B2 (en) 2008-10-08 2012-08-14 Research In Motion Limited Method and handheld electronic device having a graphical user interface which arranges icons dynamically
US20100088654A1 (en) 2008-10-08 2010-04-08 Research In Motion Limited Electronic device having a state aware touchscreen
US20100085314A1 (en) 2008-10-08 2010-04-08 Research In Motion Limited Portable electronic device and method of controlling same
US9395867B2 (en) 2008-10-08 2016-07-19 Blackberry Limited Method and system for displaying an image on an electronic device
KR100961473B1 (ko) 2008-10-15 2010-06-08 주식회사 케이티 무선 인터넷 브라우저의 웹 페이지 내용을 메시징하는 이동단말 및 그 방법
JP2010097353A (ja) 2008-10-15 2010-04-30 Access Co Ltd 情報端末
KR100941512B1 (ko) 2008-10-15 2010-02-10 (주)엠쓰리모바일 스타일러스 펜
KR101510738B1 (ko) 2008-10-20 2015-04-10 삼성전자주식회사 휴대단말의 대기화면 구성 방법 및 장치
JP5540344B2 (ja) 2008-10-30 2014-07-02 シャープ株式会社 電子機器、メニューの選択方法、メニューの選択プログラム
KR101569176B1 (ko) 2008-10-30 2015-11-20 삼성전자주식회사 오브젝트 실행 방법 및 장치
US20100110082A1 (en) 2008-10-31 2010-05-06 John David Myrick Web-Based Real-Time Animation Visualization, Creation, And Distribution
CN101727268A (zh) 2008-11-03 2010-06-09 英业达股份有限公司 手持式电子装置与其程序显示切换方法
US8704775B2 (en) 2008-11-11 2014-04-22 Adobe Systems Incorporated Biometric adjustments for touchscreens
EP2187290A1 (en) 2008-11-18 2010-05-19 Studer Professional Audio GmbH Input device and method of detecting a user input with an input device
JP4752900B2 (ja) 2008-11-19 2011-08-17 ソニー株式会社 画像処理装置、画像表示方法および画像表示プログラム
US20100123686A1 (en) 2008-11-19 2010-05-20 Sony Ericsson Mobile Communications Ab Piezoresistive force sensor integrated in a display
US8788977B2 (en) 2008-11-20 2014-07-22 Amazon Technologies, Inc. Movement recognition as input mechanism
EP2368170B1 (en) 2008-11-26 2017-11-01 BlackBerry Limited Touch-sensitive display method and apparatus
US20100138776A1 (en) 2008-11-30 2010-06-03 Nokia Corporation Flick-scrolling
CN102239069B (zh) 2008-12-04 2014-03-26 三菱电机株式会社 显示输入装置
JP5231571B2 (ja) 2008-12-04 2013-07-10 三菱電機株式会社 表示入力装置およびナビゲーション装置
US20100146507A1 (en) 2008-12-05 2010-06-10 Kang Dong-Oh System and method of delivery of virtual machine using context information
US8638311B2 (en) 2008-12-08 2014-01-28 Samsung Electronics Co., Ltd. Display device and data displaying method thereof
WO2010071630A1 (en) 2008-12-15 2010-06-24 Hewlett-Packard Development Company, L.P. Gesture based edit mode
JP2010165337A (ja) 2008-12-15 2010-07-29 Sony Corp 情報処理装置、情報処理方法およびプログラム
US9246487B2 (en) 2008-12-16 2016-01-26 Dell Products Lp Keyboard with user configurable granularity scales for pressure sensitive keys
US8711011B2 (en) 2008-12-16 2014-04-29 Dell Products, Lp Systems and methods for implementing pressure sensitive keyboards
US20100149096A1 (en) * 2008-12-17 2010-06-17 Migos Charles J Network management using interaction with display surface
KR101352264B1 (ko) 2008-12-18 2014-01-17 엘지디스플레이 주식회사 멀티 터치 감지방법 및 장치
KR101476088B1 (ko) 2008-12-18 2014-12-23 닛본 덴끼 가부시끼가이샤 슬라이드바 디스플레이 제어 장치 및 슬라이드바 디스플레이 제어 방법
US8331992B2 (en) 2008-12-19 2012-12-11 Verizon Patent And Licensing Inc. Interactive locked state mobile communication device
US8289286B2 (en) 2008-12-19 2012-10-16 Verizon Patent And Licensing Inc. Zooming keyboard/keypad
US8453057B2 (en) 2008-12-22 2013-05-28 Verizon Patent And Licensing Inc. Stage interaction for mobile device
US8547342B2 (en) 2008-12-22 2013-10-01 Verizon Patent And Licensing Inc. Gesture-based delivery from mobile device
JP4975722B2 (ja) 2008-12-22 2012-07-11 京セラ株式会社 入力装置および入力装置の制御方法
US8451236B2 (en) 2008-12-22 2013-05-28 Hewlett-Packard Development Company L.P. Touch-sensitive display screen with absolute and relative input modes
US8686952B2 (en) 2008-12-23 2014-04-01 Apple Inc. Multi touch with multi haptics
US20100156823A1 (en) 2008-12-23 2010-06-24 Research In Motion Limited Electronic device including touch-sensitive display and method of controlling same to provide tactile feedback
EP2202619A1 (en) 2008-12-23 2010-06-30 Research In Motion Limited Portable electronic device including tactile touch-sensitive input device and method of controlling same
JP4885938B2 (ja) 2008-12-25 2012-02-29 京セラ株式会社 入力装置
JP4746085B2 (ja) 2008-12-25 2011-08-10 京セラ株式会社 入力装置
JP4683126B2 (ja) 2008-12-26 2011-05-11 ブラザー工業株式会社 入力装置
WO2010077063A2 (ko) 2008-12-30 2010-07-08 엘지전자 주식회사 영상표시기기 및 그 제어 방법
US8219927B2 (en) 2009-01-06 2012-07-10 Microsoft Corporation Revealing of truncated content on scrollable grid
US8446376B2 (en) 2009-01-13 2013-05-21 Microsoft Corporation Visual response to touch inputs
JP2010176174A (ja) 2009-01-27 2010-08-12 Fujifilm Corp 電子機器および電子機器の操作入力制御方法、並びに電子機器の操作入力制御プログラム
JP5173870B2 (ja) 2009-01-28 2013-04-03 京セラ株式会社 入力装置
EP2214087B1 (en) 2009-01-30 2015-07-08 BlackBerry Limited A handheld electronic device having a touchscreen and a method of using a touchscreen of a handheld electronic device
US20100194693A1 (en) 2009-01-30 2010-08-05 Sony Ericsson Mobile Communications Ab Electronic apparatus, method and computer program with adaptable user interface environment
JP4723656B2 (ja) 2009-02-03 2011-07-13 京セラ株式会社 入力装置
JP5174704B2 (ja) 2009-02-03 2013-04-03 株式会社ゼンリンデータコム 画像処理装置および画像処理方法
US9152292B2 (en) 2009-02-05 2015-10-06 Hewlett-Packard Development Company, L.P. Image collage authoring
US9176747B2 (en) 2009-02-17 2015-11-03 Sandisk Il Ltd. User-application interface
US20100214239A1 (en) 2009-02-23 2010-08-26 Compal Electronics, Inc. Method and touch panel for providing tactile feedback
DE102009010277A1 (de) 2009-02-24 2010-09-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Eingabevorrichtung und Verfahren zum Bereitstellen eines einer Sensorfeldbelegung zugeordneten Ausgangssignals
JP5734546B2 (ja) 2009-02-25 2015-06-17 京セラ株式会社 オブジェクト表示装置
CN101498979B (zh) 2009-02-26 2010-12-29 苏州瀚瑞微电子有限公司 利用电容式触摸屏实现虚拟键盘的方法
US20100214135A1 (en) 2009-02-26 2010-08-26 Microsoft Corporation Dynamic rear-projected user interface
KR100993064B1 (ko) 2009-03-02 2010-11-08 주식회사 팬택 터치 스크린 적용 음원 재생 장치에서의 음원 선택 재생 방법
JP5157969B2 (ja) 2009-03-09 2013-03-06 ソニー株式会社 情報処理装置、閾値設定方法及びそのプログラム
JP5267229B2 (ja) 2009-03-09 2013-08-21 ソニー株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2010105245A2 (en) 2009-03-12 2010-09-16 Exbiblio B.V. Automatically providing content associated with captured information, such as information captured in real-time
KR101670109B1 (ko) 2009-03-12 2016-10-27 임머숀 코퍼레이션 표면-기반 햅틱 효과를 특징으로 하는 인터페이스에 대한 시스템 및 방법
CN102349038B (zh) 2009-03-12 2016-08-24 意美森公司 用于纹理引擎的系统和方法
US8572513B2 (en) 2009-03-16 2013-10-29 Apple Inc. Device, method, and graphical user interface for moving a current position in content at a variable scrubbing rate
US20100235784A1 (en) 2009-03-16 2010-09-16 Bas Ording Methods and Graphical User Interfaces for Editing on a Multifunction Device with a Touch Screen Display
US9852761B2 (en) 2009-03-16 2017-12-26 Apple Inc. Device, method, and graphical user interface for editing an audio or video attachment in an electronic message
US20100241955A1 (en) 2009-03-23 2010-09-23 Microsoft Corporation Organization and manipulation of content items on a touch-sensitive display
JP5398728B2 (ja) 2009-03-23 2014-01-29 パナソニック株式会社 情報処理装置、情報処理方法、記録媒体、及び集積回路
JP5252378B2 (ja) 2009-03-26 2013-07-31 ヤマハ株式会社 ミキサ装置のウィンドウ制御方法、ミキサ装置、およびミキサ装置のウィンドウ制御プログラム
US8175653B2 (en) 2009-03-30 2012-05-08 Microsoft Corporation Chromeless user interface
JP4904375B2 (ja) 2009-03-31 2012-03-28 京セラ株式会社 ユーザインタフェース装置及び携帯端末装置
DE102009015991A1 (de) 2009-04-02 2010-10-07 Pi Ceramic Gmbh Keramische Technologien Und Bauelemente Vorrichtung zur Erzeugung einer haptischen Rückmeldung einer tastenlosen Eingabeeinheit
US9189124B2 (en) 2009-04-15 2015-11-17 Wyse Technology L.L.C. Custom pointer features for touch-screen on remote client devices
US20100271312A1 (en) 2009-04-22 2010-10-28 Rachid Alameh Menu Configuration System and Method for Display on an Electronic Device
WO2010122813A1 (ja) 2009-04-24 2010-10-28 京セラ株式会社 入力装置
JP4801228B2 (ja) 2009-04-24 2011-10-26 京セラ株式会社 入力装置
KR20100118458A (ko) 2009-04-28 2010-11-05 엘지전자 주식회사 이미지 처리 방법 및 이를 적용한 카메라가 장착된 이동 통신 단말기
US9354795B2 (en) 2009-04-29 2016-05-31 Lenovo (Singapore) Pte. Ltd Refining manual input interpretation on touch surfaces
US8418082B2 (en) 2009-05-01 2013-04-09 Apple Inc. Cross-track edit indicators and edit selections
US8627207B2 (en) 2009-05-01 2014-01-07 Apple Inc. Presenting an editing tool in a composite display area
US8739055B2 (en) 2009-05-07 2014-05-27 Microsoft Corporation Correction of typographical errors on touch displays
US8669945B2 (en) 2009-05-07 2014-03-11 Microsoft Corporation Changing of list views on mobile device
US8427503B2 (en) 2009-05-18 2013-04-23 Nokia Corporation Method, apparatus and computer program product for creating graphical objects with desired physical features for usage in animation
KR101640463B1 (ko) 2009-05-19 2016-07-18 삼성전자 주식회사 휴대 단말기의 운용 방법 및 이를 지원하는 휴대 단말기
KR101601040B1 (ko) 2009-05-19 2016-03-09 삼성전자주식회사 휴대 단말기의 화면 표시 방법 및 이를 지원하는 휴대 단말기
US20140078318A1 (en) 2009-05-22 2014-03-20 Motorola Mobility Llc Electronic Device with Sensing Assembly and Method for Interpreting Consecutive Gestures
US8549432B2 (en) 2009-05-29 2013-10-01 Apple Inc. Radial menus
KR101560718B1 (ko) 2009-05-29 2015-10-15 엘지전자 주식회사 이동 단말기 및 이동 단말기에서의 정보 표시 방법
US9148618B2 (en) 2009-05-29 2015-09-29 Apple Inc. Systems and methods for previewing newly captured image content and reviewing previously stored image content
KR20100129424A (ko) 2009-06-01 2010-12-09 한국표준과학연구원 터치스크린의 접촉위치 및 접촉힘의 세기를 이용한 사용자 인터페이스 제공 방법 및 장치
US9086875B2 (en) 2009-06-05 2015-07-21 Qualcomm Incorporated Controlling power consumption of a mobile device based on gesture recognition
US9372536B2 (en) 2009-06-05 2016-06-21 Empire Technology Development Llc Touch screen with tactile feedback
US9009612B2 (en) 2009-06-07 2015-04-14 Apple Inc. Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface
US9405456B2 (en) 2009-06-08 2016-08-02 Xerox Corporation Manipulation of displayed objects by virtual magnetism
US20100313158A1 (en) 2009-06-08 2010-12-09 Lg Electronics Inc. Method for editing data in mobile terminal and mobile terminal using the same
US8612883B2 (en) 2009-06-08 2013-12-17 Apple Inc. User interface for managing the display of multiple display regions
US8823749B2 (en) 2009-06-10 2014-09-02 Qualcomm Incorporated User interface methods providing continuous zoom functionality
KR101598335B1 (ko) 2009-06-11 2016-02-29 엘지전자 주식회사 휴대 단말기 및 그 동작방법
US8593415B2 (en) 2009-06-19 2013-11-26 Lg Electronics Inc. Method for processing touch signal in mobile terminal and mobile terminal using the same
US9330503B2 (en) 2009-06-19 2016-05-03 Microsoft Technology Licensing, Llc Presaging and surfacing interactivity within data visualizations
CN101609380A (zh) 2009-06-23 2009-12-23 苏州瀚瑞微电子有限公司 一种在触摸屏上文件操作的方法
EP2447857A4 (en) 2009-06-26 2016-05-11 Kyocera Corp COMMUNICATION DEVICE AND ELECTRONIC DEVICE
JP5370754B2 (ja) 2009-06-30 2013-12-18 ソニー株式会社 入力装置および入力方法
US20100328229A1 (en) 2009-06-30 2010-12-30 Research In Motion Limited Method and apparatus for providing tactile feedback
CN102483675B (zh) 2009-07-03 2015-09-09 泰克图斯科技公司 用户界面增强系统
US20110010626A1 (en) 2009-07-09 2011-01-13 Jorge Fino Device and Method for Adjusting a Playback Control with a Finger Gesture
KR101608764B1 (ko) 2009-07-14 2016-04-04 엘지전자 주식회사 이동 단말기 및 이것의 디스플레이 제어 방법
WO2011011025A1 (en) 2009-07-24 2011-01-27 Research In Motion Limited Method and apparatus for a touch-sensitive display
JP2011028635A (ja) 2009-07-28 2011-02-10 Sony Corp 表示制御装置、表示制御方法およびコンピュータプログラム
JP5197521B2 (ja) 2009-07-29 2013-05-15 京セラ株式会社 入力装置
US9244562B1 (en) 2009-07-31 2016-01-26 Amazon Technologies, Inc. Gestures and touches on force-sensitive input devices
KR101276749B1 (ko) 2009-08-03 2013-06-19 엘지디스플레이 주식회사 전기영동 표시장치 및 그 제조 방법
CN101630230A (zh) 2009-08-04 2010-01-20 苏州瀚瑞微电子有限公司 感应量控制缩放倍率的方法
JP5398408B2 (ja) 2009-08-07 2014-01-29 オリンパスイメージング株式会社 カメラ、カメラの制御方法、表示制御装置、および表示制御方法
KR101608532B1 (ko) 2009-08-11 2016-04-01 엘지전자 주식회사 이동 통신 단말기에서의 데이터 표시방법 및 이를 적용한 이동 통신 단말기
US20110039602A1 (en) 2009-08-13 2011-02-17 Mcnamara Justin Methods And Systems For Interacting With Content On A Mobile Device
US8243983B2 (en) 2009-08-14 2012-08-14 Microsoft Corporation Graphically encoded data copy and paste
US20110037706A1 (en) 2009-08-14 2011-02-17 Research In Motion Limited Electronic device including tactile touch-sensitive input device and method of controlling same
US8434153B2 (en) 2009-08-24 2013-04-30 Microsoft Corporation Application display on a locked device
US20110055135A1 (en) 2009-08-26 2011-03-03 International Business Machines Corporation Deferred Teleportation or Relocation in Virtual Worlds
US20110070342A1 (en) 2009-08-26 2011-03-24 Wilkens Patrick J Method for evaluating and orientating baked product
US8363020B2 (en) 2009-08-27 2013-01-29 Symbol Technologies, Inc. Methods and apparatus for pressure-based manipulation of content on a touch screen
JP2011048686A (ja) 2009-08-27 2011-03-10 Kyocera Corp 入力装置
JP2011048669A (ja) 2009-08-27 2011-03-10 Kyocera Corp 入力装置
JP5310389B2 (ja) 2009-08-27 2013-10-09 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP5304544B2 (ja) 2009-08-28 2013-10-02 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP5593655B2 (ja) 2009-08-31 2014-09-24 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
JP5267388B2 (ja) 2009-08-31 2013-08-21 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US8390583B2 (en) 2009-08-31 2013-03-05 Qualcomm Incorporated Pressure sensitive user interface for mobile devices
KR20110023977A (ko) 2009-09-01 2011-03-09 삼성전자주식회사 휴대단말기의 위젯 관리 방법 및 장치
JP5508792B2 (ja) 2009-09-01 2014-06-04 オリンパス株式会社 画像処理方法、画像処理装置および画像処理プログラム
JP2011053974A (ja) 2009-09-02 2011-03-17 Sony Corp 操作制御装置、操作制御方法およびコンピュータプログラム
US9262063B2 (en) 2009-09-02 2016-02-16 Amazon Technologies, Inc. Touch-screen user interface
JP5709871B2 (ja) 2009-09-02 2015-04-30 アマゾン テクノロジーズ インコーポレイテッド タッチスクリーンユーザインターフェース
JP5182260B2 (ja) 2009-09-02 2013-04-17 ソニー株式会社 操作制御装置、操作制御方法およびコンピュータプログラム
US8451238B2 (en) 2009-09-02 2013-05-28 Amazon Technologies, Inc. Touch-screen user interface
JP5310403B2 (ja) 2009-09-02 2013-10-09 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
JP2011053971A (ja) 2009-09-02 2011-03-17 Sony Corp 情報処理装置、情報処理方法およびプログラム
TW201109990A (en) 2009-09-04 2011-03-16 Higgstec Inc Touch gesture detecting method of a touch panel
JP5278259B2 (ja) 2009-09-07 2013-09-04 ソニー株式会社 入力装置、入力方法及びプログラム
KR101150545B1 (ko) 2009-09-07 2012-06-11 주식회사 팬택앤큐리텔 이동통신단말기 및 그것의 화면 전환 방법
KR101691823B1 (ko) 2009-09-09 2017-01-02 엘지전자 주식회사 이동 단말기 및 이것의 디스플레이 제어 방법
EP2302496A1 (en) 2009-09-10 2011-03-30 Research In Motion Limited Dynamic sizing of identifier on a touch-sensitive display
US20110057886A1 (en) 2009-09-10 2011-03-10 Oliver Ng Dynamic sizing of identifier on a touch-sensitive display
KR20110028834A (ko) * 2009-09-14 2011-03-22 삼성전자주식회사 터치스크린을 구비한 휴대 단말기의 터치 압력을 이용한 사용자 인터페이스 제공 방법 및 장치
US8264471B2 (en) 2009-09-22 2012-09-11 Sony Mobile Communications Ab Miniature character input mechanism
EP2480957B1 (en) 2009-09-22 2017-08-09 Apple Inc. Device, method, and graphical user interface for manipulating user interface objects
JP5393377B2 (ja) 2009-09-25 2014-01-22 京セラ株式会社 入力装置
US8421762B2 (en) 2009-09-25 2013-04-16 Apple Inc. Device, method, and graphical user interface for manipulation of user interface objects with activation regions
US8780055B2 (en) 2009-10-02 2014-07-15 Blackberry Limited Low power wakeup detection circuit and a portable electronic device having a low power wakeup detection circuit
US8436806B2 (en) 2009-10-02 2013-05-07 Research In Motion Limited Method of synchronizing data acquisition and a portable electronic device configured to perform the same
US8970507B2 (en) 2009-10-02 2015-03-03 Blackberry Limited Method of waking up and a portable electronic device configured to perform the same
US9141260B2 (en) 2009-10-08 2015-09-22 Red Hat, Inc. Workspace management tool
US20110084910A1 (en) 2009-10-13 2011-04-14 Research In Motion Limited Portable electronic device including touch-sensitive display and method of controlling same
KR101092592B1 (ko) 2009-10-14 2011-12-13 주식회사 팬택 이동통신단말기 및 이의 터치 인터페이스 제공 방법
US10068728B2 (en) 2009-10-15 2018-09-04 Synaptics Incorporated Touchpad with capacitive force sensing
CA2680602C (en) 2009-10-19 2011-07-26 Ibm Canada Limited - Ibm Canada Limitee System and method for generating and displaying hybrid context menus
US20110102829A1 (en) 2009-10-30 2011-05-05 Jourdan Arlene T Image size warning
KR20110047349A (ko) 2009-10-30 2011-05-09 주식회사 팬택 휴대용 단말기에서 터치와 가압을 이용하는 사용자 인터페이스 장치 및 방법
US8677284B2 (en) 2009-11-04 2014-03-18 Alpine Electronics, Inc. Method and apparatus for controlling and displaying contents in a user interface
JP5328611B2 (ja) 2009-11-05 2013-10-30 シャープ株式会社 携帯情報端末
US20110109617A1 (en) 2009-11-12 2011-05-12 Microsoft Corporation Visualizing Depth
JP2011107823A (ja) 2009-11-13 2011-06-02 Canon Inc 表示制御装置及び表示制御方法
US8843838B2 (en) 2009-11-13 2014-09-23 Google Inc. Live wallpaper
KR101725888B1 (ko) 2009-11-13 2017-04-13 삼성전자주식회사 카메라 또는 원격 제어 장치에서의 이미지 제공 방법 및 그 장치
KR101611440B1 (ko) 2009-11-16 2016-04-11 삼성전자주식회사 이미지 처리 방법 및 장치
US8432367B2 (en) 2009-11-19 2013-04-30 Google Inc. Translating user interaction with a touch screen into input commands
US8665227B2 (en) 2009-11-19 2014-03-04 Motorola Mobility Llc Method and apparatus for replicating physical key function with soft keys in an electronic device
KR101620058B1 (ko) 2009-11-23 2016-05-24 삼성전자주식회사 가상 머신 간 화면 전환 장치 및 방법
KR101073309B1 (ko) 2009-11-24 2011-10-12 삼성모바일디스플레이주식회사 터치 스크린 시스템 및 그 구동방법
US8799816B2 (en) 2009-12-07 2014-08-05 Motorola Mobility Llc Display interface and method for displaying multiple items arranged in a sequence
US9268466B2 (en) 2009-12-09 2016-02-23 Citrix Systems, Inc. Methods and systems for updating a dock with a user interface element representative of a remote application
US8633916B2 (en) 2009-12-10 2014-01-21 Apple, Inc. Touch pad with force sensors and actuator feedback
US9557735B2 (en) 2009-12-10 2017-01-31 Fisher-Rosemount Systems, Inc. Methods and apparatus to manage process control status rollups
JP5490508B2 (ja) 2009-12-11 2014-05-14 京セラ株式会社 タッチセンサを有する装置、触感呈示方法及び触感呈示プログラム
US8358281B2 (en) 2009-12-15 2013-01-22 Apple Inc. Device, method, and graphical user interface for management and manipulation of user interface elements
US8381125B2 (en) 2009-12-16 2013-02-19 Apple Inc. Device and method for resizing user interface content while maintaining an aspect ratio via snapping a perimeter to a gridline
US20110154199A1 (en) 2009-12-17 2011-06-23 Flying Car Ltd. Method of Playing An Enriched Audio File
WO2011076248A1 (en) 2009-12-21 2011-06-30 Promethean Limited Multi-point contacts with pressure data on an interactive surface
US8274592B2 (en) 2009-12-22 2012-09-25 Eastman Kodak Company Variable rate browsing of an image collection
US8793611B2 (en) 2010-01-06 2014-07-29 Apple Inc. Device, method, and graphical user interface for manipulating selectable user interface objects
US8525839B2 (en) 2010-01-06 2013-09-03 Apple Inc. Device, method, and graphical user interface for providing digital content products
US8862576B2 (en) 2010-01-06 2014-10-14 Apple Inc. Device, method, and graphical user interface for mapping directions between search results
US8510677B2 (en) 2010-01-06 2013-08-13 Apple Inc. Device, method, and graphical user interface for navigating through a range of values
US8698762B2 (en) 2010-01-06 2014-04-15 Apple Inc. Device, method, and graphical user interface for navigating and displaying content in context
US8438504B2 (en) 2010-01-06 2013-05-07 Apple Inc. Device, method, and graphical user interface for navigating through multiple viewing areas
US8698845B2 (en) 2010-01-06 2014-04-15 Apple Inc. Device, method, and graphical user interface with interactive popup views
US20110167339A1 (en) 2010-01-06 2011-07-07 Lemay Stephen O Device, Method, and Graphical User Interface for Attachment Viewing and Editing
KR101616875B1 (ko) 2010-01-07 2016-05-02 삼성전자주식회사 터치 패널 및 이를 구비한 전자기기
US20110175826A1 (en) 2010-01-15 2011-07-21 Bradford Allen Moore Automatically Displaying and Hiding an On-screen Keyboard
US9715332B1 (en) 2010-08-26 2017-07-25 Cypress Lake Software, Inc. Methods, systems, and computer program products for navigating between visual components
JP5636678B2 (ja) 2010-01-19 2014-12-10 ソニー株式会社 表示制御装置、表示制御方法及び表示制御プログラム
US10007393B2 (en) 2010-01-19 2018-06-26 Apple Inc. 3D view of file structure
JP2011170834A (ja) 2010-01-19 2011-09-01 Sony Corp 情報処理装置、操作予測方法及び操作予測プログラム
US20110179381A1 (en) 2010-01-21 2011-07-21 Research In Motion Limited Portable electronic device and method of controlling same
US8914732B2 (en) 2010-01-22 2014-12-16 Lg Electronics Inc. Displaying home screen profiles on a mobile terminal
KR101319264B1 (ko) 2010-01-22 2013-10-18 전자부품연구원 멀티 터치 압력에 기반한 ui 제공방법 및 이를 적용한 전자기기
US8683363B2 (en) 2010-01-26 2014-03-25 Apple Inc. Device, method, and graphical user interface for managing user interface content and user interface elements
JP2011176794A (ja) 2010-01-26 2011-09-08 Canon Inc 撮像装置及び撮像方法
US20110181521A1 (en) 2010-01-26 2011-07-28 Apple Inc. Techniques for controlling z-ordering in a user interface
JP5635274B2 (ja) 2010-01-27 2014-12-03 京セラ株式会社 触感呈示装置および触感呈示方法
US8261213B2 (en) 2010-01-28 2012-09-04 Microsoft Corporation Brush, carbon-copy, and fill gestures
US20110185299A1 (en) 2010-01-28 2011-07-28 Microsoft Corporation Stamp Gestures
US10397639B1 (en) 2010-01-29 2019-08-27 Sitting Man, Llc Hot key systems and methods
US20110191675A1 (en) 2010-02-01 2011-08-04 Nokia Corporation Sliding input user interface
US20110193881A1 (en) 2010-02-05 2011-08-11 Sony Ericsson Mobile Communications Ab Regulation of navigation speed among displayed items and tilt angle thereof responsive to user applied pressure
US8988367B2 (en) 2010-02-05 2015-03-24 Broadcom Corporation Systems and methods for providing enhanced touch sensing
US8839150B2 (en) 2010-02-10 2014-09-16 Apple Inc. Graphical objects that respond to touch or motion input
KR101673918B1 (ko) 2010-02-11 2016-11-09 삼성전자주식회사 휴대단말에서 복수의 정보들을 제공하는 방법 및 장치
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US9417787B2 (en) 2010-02-12 2016-08-16 Microsoft Technology Licensing, Llc Distortion effects to indicate location in a movable data collection
KR101690786B1 (ko) 2010-02-12 2016-12-28 삼성전자주식회사 멀티태스킹 수행 장치 및 방법
CA2731745A1 (en) 2010-02-15 2011-08-15 Research In Motion Limited Contact objects
US20110202879A1 (en) 2010-02-15 2011-08-18 Research In Motion Limited Graphical context short menu
JP2011170538A (ja) 2010-02-17 2011-09-01 Sony Corp 情報処理装置、情報処理方法およびプログラム
JP2011197848A (ja) 2010-03-18 2011-10-06 Rohm Co Ltd タッチパネル入力装置
US9367205B2 (en) 2010-02-19 2016-06-14 Microsoft Technolgoy Licensing, Llc Radial menus with bezel gestures
US9965165B2 (en) 2010-02-19 2018-05-08 Microsoft Technology Licensing, Llc Multi-finger gestures
US9310994B2 (en) 2010-02-19 2016-04-12 Microsoft Technology Licensing, Llc Use of bezel as an input mechanism
US8799827B2 (en) 2010-02-19 2014-08-05 Microsoft Corporation Page manipulations using on and off-screen gestures
US9274682B2 (en) 2010-02-19 2016-03-01 Microsoft Technology Licensing, Llc Off-screen gestures to create on-screen input
EP2360507B1 (en) 2010-02-22 2014-11-05 DST Innovations Limited Display elements
CA2828222A1 (en) 2010-02-23 2011-09-01 Muv Interactive Ltd. A system for projecting content to a display surface having user-controlled size, shape and location/direction and apparatus and methods useful in conjunction therewith
CN103097992B (zh) 2010-02-23 2016-10-12 京瓷株式会社 电子设备
US8751970B2 (en) 2010-02-25 2014-06-10 Microsoft Corporation Multi-screen synchronous slide gesture
EP2363790A1 (en) 2010-03-01 2011-09-07 Research In Motion Limited Method of providing tactile feedback and apparatus
US9361018B2 (en) 2010-03-01 2016-06-07 Blackberry Limited Method of providing tactile feedback and apparatus
KR101161943B1 (ko) 2010-03-04 2012-07-04 삼성전기주식회사 햅틱 피드백 디바이스 및 전자 장치
JP5413250B2 (ja) 2010-03-05 2014-02-12 ソニー株式会社 画像処理装置、画像処理方法およびプログラム
US8941600B2 (en) 2010-03-05 2015-01-27 Mckesson Financial Holdings Apparatus for providing touch feedback for user input to a touch sensitive surface
US20110221684A1 (en) 2010-03-11 2011-09-15 Sony Ericsson Mobile Communications Ab Touch-sensitive input device, mobile device and method for operating a touch-sensitive input device
JP2011192179A (ja) 2010-03-16 2011-09-29 Kyocera Corp 文字入力装置、文字入力方法及び文字入力プログラム
JP2011192215A (ja) 2010-03-16 2011-09-29 Kyocera Corp 文字入力装置、文字入力方法及び文字入力プログラム
WO2011114630A1 (ja) 2010-03-18 2011-09-22 京セラ株式会社 電子機器
CN101840299A (zh) * 2010-03-18 2010-09-22 华为终端有限公司 一种触摸操作方法、装置和移动终端
US8756522B2 (en) 2010-03-19 2014-06-17 Blackberry Limited Portable electronic device and method of controlling same
CA2734427C (en) 2010-03-19 2018-05-08 Xavier Pierre-Emmanuel Saynac Systems and methods for determining the location and pressure of a touchload applied to a touchpad
US9069416B2 (en) 2010-03-25 2015-06-30 Google Inc. Method and system for selecting content using a touchscreen
US9335894B1 (en) 2010-03-26 2016-05-10 Open Invention Network, Llc Providing data input touch screen interface to multiple users based on previous command selections
US8725706B2 (en) 2010-03-26 2014-05-13 Nokia Corporation Method and apparatus for multi-item searching
CN102822784A (zh) 2010-03-31 2012-12-12 诺基亚公司 用于虚拟触笔的装置、方法和计算机程序
US8996901B2 (en) 2010-03-31 2015-03-31 Lenovo (Singapore) Pte. Ltd. Power management of electronic device with display
US8826184B2 (en) 2010-04-05 2014-09-02 Lg Electronics Inc. Mobile terminal and image display controlling method thereof
JP2011221640A (ja) 2010-04-06 2011-11-04 Sony Corp 情報処理装置、情報処理方法およびプログラム
US9823831B2 (en) 2010-04-07 2017-11-21 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US20110252349A1 (en) 2010-04-07 2011-10-13 Imran Chaudhri Device, Method, and Graphical User Interface for Managing Folders
US9058186B2 (en) 2010-04-07 2015-06-16 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US10788976B2 (en) 2010-04-07 2020-09-29 Apple Inc. Device, method, and graphical user interface for managing folders with multiple pages
EP2375314A1 (en) 2010-04-08 2011-10-12 Research in Motion Limited Touch-sensitive device and method of control
US20110248948A1 (en) * 2010-04-08 2011-10-13 Research In Motion Limited Touch-sensitive device and method of control
EP2375309A1 (en) 2010-04-08 2011-10-12 Research in Motion Limited Handheld device with localized delays for triggering tactile feedback
US9417695B2 (en) 2010-04-08 2016-08-16 Blackberry Limited Tactile feedback method and apparatus
EP2378406B1 (en) 2010-04-13 2018-08-22 LG Electronics Inc. Mobile terminal and method of controlling operation of the mobile terminal
JP5459031B2 (ja) 2010-04-13 2014-04-02 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US9026932B1 (en) 2010-04-16 2015-05-05 Amazon Technologies, Inc. Edge navigation user interface
KR101668240B1 (ko) 2010-04-19 2016-10-21 엘지전자 주식회사 휴대 단말기 및 그 동작 제어방법
EP2381351B1 (en) 2010-04-20 2017-12-06 BlackBerry Limited Portable electronic device having touch-sensitive display with a variable repeat control mode.
KR101704531B1 (ko) 2010-04-22 2017-02-08 삼성전자주식회사 휴대 단말기의 텍스트 정보 표시 방법 및 장치
JP2011242386A (ja) 2010-04-23 2011-12-01 Immersion Corp 接触センサと触覚アクチュエータとの透明複合圧電材結合体
JP2011232947A (ja) 2010-04-27 2011-11-17 Lenovo Singapore Pte Ltd 情報処理装置、そのウィンドウ表示方法、およびコンピュータが実行可能なプログラム
JP2011238125A (ja) 2010-05-12 2011-11-24 Sony Corp 画像処理装置および方法、並びにプログラム
US8466889B2 (en) 2010-05-14 2013-06-18 Research In Motion Limited Method of providing tactile feedback and electronic device
US8451255B2 (en) 2010-05-14 2013-05-28 Arnett Ryan Weber Method of providing tactile feedback and electronic device
EP2386935B1 (en) 2010-05-14 2015-02-11 BlackBerry Limited Method of providing tactile feedback and electronic device
WO2011146740A2 (en) 2010-05-19 2011-11-24 Google Inc. Sliding motion to change computer keys
US20110296333A1 (en) 2010-05-25 2011-12-01 Bateman Steven S User interaction gestures with virtual keyboard
JP4983961B2 (ja) 2010-05-25 2012-07-25 株式会社ニコン 撮像装置
US8860672B2 (en) 2010-05-26 2014-10-14 T-Mobile Usa, Inc. User interface with z-axis interaction
US20110296351A1 (en) 2010-05-26 2011-12-01 T-Mobile Usa, Inc. User Interface with Z-axis Interaction and Multiple Stacks
CN102947850B (zh) 2010-05-28 2016-07-06 乐天株式会社 内容输出装置、内容输出方法
US8669946B2 (en) 2010-05-28 2014-03-11 Blackberry Limited Electronic device including touch-sensitive display and method of controlling same
KR101626301B1 (ko) 2010-05-28 2016-06-01 엘지전자 주식회사 휴대 단말기 및 그 동작 제어방법
US20130120280A1 (en) 2010-05-28 2013-05-16 Tim Kukulski System and Method for Evaluating Interoperability of Gesture Recognizers
EP2390772A1 (en) 2010-05-31 2011-11-30 Sony Ericsson Mobile Communications AB User interface with three dimensional user input
EP2577436A4 (en) 2010-06-01 2016-03-30 Nokia Technologies Oy METHOD, DEVICE AND SYSTEM FOR RECEIVING USER DEVICES
US9046999B1 (en) 2010-06-08 2015-06-02 Google Inc. Dynamic input at a touch-based interface based on pressure
JP2011257941A (ja) 2010-06-08 2011-12-22 Panasonic Corp 文字入力装置、文字装飾方法、及び文字装飾プログラム
US20110307778A1 (en) 2010-06-10 2011-12-15 Acer Incorporated Mobile electronic apparatus and method of switching application programs thereof
US20120089951A1 (en) 2010-06-10 2012-04-12 Cricket Communications, Inc. Method and apparatus for navigation within a multi-level application
US20110304559A1 (en) 2010-06-11 2011-12-15 Research In Motion Limited Portable electronic device including touch-sensitive display and method of changing tactile feedback
US20110304577A1 (en) 2010-06-11 2011-12-15 Sp Controls, Inc. Capacitive touch screen stylus
US9106194B2 (en) 2010-06-14 2015-08-11 Sony Corporation Regulation of audio volume and/or rate responsive to user applied pressure and related methods
US20110319136A1 (en) 2010-06-23 2011-12-29 Motorola, Inc. Method of a Wireless Communication Device for Managing Status Components for Global Call Control
US8477109B1 (en) 2010-06-24 2013-07-02 Amazon Technologies, Inc. Surfacing reference work entries on touch-sensitive displays
US8542205B1 (en) 2010-06-24 2013-09-24 Amazon Technologies, Inc. Refining search results based on touch gestures
KR20120002727A (ko) 2010-07-01 2012-01-09 주식회사 팬택 3d ui 표시 장치
GB201011146D0 (en) 2010-07-02 2010-08-18 Vodafone Ip Licensing Ltd Mobile computing device
US20120001856A1 (en) 2010-07-02 2012-01-05 Nokia Corporation Responding to tactile inputs
US8972903B2 (en) 2010-07-08 2015-03-03 Apple Inc. Using gesture to navigate hierarchically ordered user interface screens
JP5589625B2 (ja) 2010-07-08 2014-09-17 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US20120013541A1 (en) 2010-07-14 2012-01-19 Research In Motion Limited Portable electronic device and method of controlling same
US20120013542A1 (en) 2010-07-16 2012-01-19 Research In Motion Limited Portable electronic device and method of determining a location of a touch
US8854316B2 (en) 2010-07-16 2014-10-07 Blackberry Limited Portable electronic device with a touch-sensitive display and navigation device and method
EP2410413B1 (en) 2010-07-19 2018-12-12 Telefonaktiebolaget LM Ericsson (publ) Method for text input, apparatus, and computer program
KR20120009564A (ko) 2010-07-19 2012-02-02 삼성전자주식회사 3차원 마우스 포인터 생성방법 및 생성장치
US20120019448A1 (en) 2010-07-22 2012-01-26 Nokia Corporation User Interface with Touch Pressure Level Sensing
JP5529663B2 (ja) 2010-07-28 2014-06-25 京セラ株式会社 入力装置
JP2012027875A (ja) 2010-07-28 2012-02-09 Sony Corp 電子機器、処理方法及びプログラム
JP5494337B2 (ja) 2010-07-30 2014-05-14 ソニー株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US8799815B2 (en) 2010-07-30 2014-08-05 Apple Inc. Device, method, and graphical user interface for activating an item in a folder
US8402533B2 (en) 2010-08-06 2013-03-19 Google Inc. Input to locked computing device
US8593418B2 (en) 2010-08-08 2013-11-26 Qualcomm Incorporated Method and system for adjusting display content
CA2807956C (en) 2010-08-09 2019-02-12 Intelligent Mechatronic Systems Inc. Interface for mobile device and computing device
US8698765B1 (en) 2010-08-17 2014-04-15 Amazon Technologies, Inc. Associating concepts within content items
US8576184B2 (en) 2010-08-19 2013-11-05 Nokia Corporation Method and apparatus for browsing content files
JP5625612B2 (ja) 2010-08-19 2014-11-19 株式会社リコー 操作表示装置および操作表示方法
JP5510185B2 (ja) 2010-08-20 2014-06-04 ソニー株式会社 情報処理装置、プログラム及び表示制御方法
JP5573487B2 (ja) 2010-08-20 2014-08-20 ソニー株式会社 情報処理装置、プログラム及び操作制御方法
US8751838B2 (en) 2010-08-23 2014-06-10 Nokia Corporation Method, apparatus and computer program product for presentation of information in a low power mode
JP2011048832A (ja) 2010-08-27 2011-03-10 Kyocera Corp 入力装置
JP5813301B2 (ja) 2010-09-01 2015-11-17 京セラ株式会社 表示装置
JP5732783B2 (ja) 2010-09-02 2015-06-10 ソニー株式会社 情報処理装置、情報処理装置の入力制御方法及びプログラム
US20120060123A1 (en) 2010-09-03 2012-03-08 Hugh Smith Systems and methods for deterministic control of instant-on mobile devices with touch screens
US8954427B2 (en) 2010-09-07 2015-02-10 Google Inc. Search result previews
KR101739054B1 (ko) 2010-09-08 2017-05-24 삼성전자주식회사 디바이스상의 움직임 제어 방법 및 장치
US10645344B2 (en) 2010-09-10 2020-05-05 Avigilion Analytics Corporation Video system with intelligent visual display
US20120062470A1 (en) 2010-09-10 2012-03-15 Chang Ray L Power Management
US20120066648A1 (en) 2010-09-14 2012-03-15 Xerox Corporation Move and turn touch screen interface for manipulating objects in a 3d scene
JP6049990B2 (ja) 2010-09-15 2016-12-21 京セラ株式会社 携帯電子機器、画面制御方法および画面制御プログラム
KR101657122B1 (ko) 2010-09-15 2016-09-30 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US9164670B2 (en) 2010-09-15 2015-10-20 Microsoft Technology Licensing, Llc Flexible touch-based scrolling
EP2431870B1 (en) 2010-09-17 2019-11-27 LG Electronics Inc. Mobile terminal and control method thereof
GB201015720D0 (en) 2010-09-20 2010-10-27 Gammons Richard Findability of data elements
EP2619646B1 (en) 2010-09-24 2018-11-07 BlackBerry Limited Portable electronic device and method of controlling same
EP3451123B8 (en) 2010-09-24 2020-06-17 BlackBerry Limited Method for conserving power on a portable electronic device and a portable electronic device configured for the same
US9030419B1 (en) 2010-09-28 2015-05-12 Amazon Technologies, Inc. Touch and force user interface navigation
JP5959797B2 (ja) 2010-09-28 2016-08-02 京セラ株式会社 入力装置及び入力装置の制御方法
JP5725533B2 (ja) 2010-09-29 2015-05-27 Necカシオモバイルコミュニケーションズ株式会社 情報処理装置および入力方法
KR101685991B1 (ko) 2010-09-30 2016-12-13 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법
US20120084644A1 (en) 2010-09-30 2012-04-05 Julien Robert Content preview
US9323442B2 (en) 2010-09-30 2016-04-26 Apple Inc. Managing items in a user interface
US8817053B2 (en) 2010-09-30 2014-08-26 Apple Inc. Methods and systems for opening a file
US8713474B2 (en) 2010-10-05 2014-04-29 Citrix Systems, Inc. Providing user interfaces and window previews for hosted applications
EP2447818A1 (en) 2010-10-07 2012-05-02 Research in Motion Limited Method and portable electronic device for presenting text
US20120089942A1 (en) 2010-10-07 2012-04-12 Research In Motion Limited Method and portable electronic device for presenting text
JP5664103B2 (ja) 2010-10-08 2015-02-04 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP5751934B2 (ja) 2010-10-15 2015-07-22 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
KR20130052743A (ko) 2010-10-15 2013-05-23 삼성전자주식회사 항목 선택 방법
KR101726607B1 (ko) 2010-10-19 2017-04-13 삼성전자주식회사 휴대 단말기의 화면 제어 방법 및 장치
US9043732B2 (en) 2010-10-21 2015-05-26 Nokia Corporation Apparatus and method for user input for controlling displayed information
US20120102437A1 (en) 2010-10-22 2012-04-26 Microsoft Corporation Notification Group Touch Gesture Dismissal Techniques
JP5710934B2 (ja) 2010-10-25 2015-04-30 シャープ株式会社 コンテンツ表示装置、およびコンテンツ表示方法
US8706172B2 (en) 2010-10-26 2014-04-22 Miscrosoft Corporation Energy efficient continuous sensing for communications devices
US8655085B2 (en) 2010-10-28 2014-02-18 Microsoft Corporation Burst mode image compression and decompression
US20120105367A1 (en) 2010-11-01 2012-05-03 Impress Inc. Methods of using tactile force sensing for intuitive user interface
US9262002B2 (en) 2010-11-03 2016-02-16 Qualcomm Incorporated Force sensing touch screen
US8587547B2 (en) 2010-11-05 2013-11-19 Apple Inc. Device, method, and graphical user interface for manipulating soft keyboards
US9760241B1 (en) 2010-11-05 2017-09-12 Amazon Technologies, Inc. Tactile interaction with content
US8593422B2 (en) 2010-11-05 2013-11-26 Apple Inc. Device, method, and graphical user interface for manipulating soft keyboards
RU2596994C2 (ru) 2010-11-09 2016-09-10 Конинклейке Филипс Электроникс Н.В. Пользовательский интерфейс с тактильной обратной связью
US9645722B1 (en) 2010-11-19 2017-05-09 A9.Com, Inc. Preview search results
JP5719205B2 (ja) 2010-11-22 2015-05-13 シャープ株式会社 電子機器および表示制御方法
US8560960B2 (en) 2010-11-23 2013-10-15 Apple Inc. Browsing and interacting with open windows
JP2012118825A (ja) 2010-12-01 2012-06-21 Fujitsu Ten Ltd 表示装置
US9069452B2 (en) 2010-12-01 2015-06-30 Apple Inc. Morphing a user-interface control object
US10503255B2 (en) 2010-12-02 2019-12-10 Immersion Corporation Haptic feedback assisted text manipulation
US9223445B2 (en) 2010-12-02 2015-12-29 Atmel Corporation Position-sensing and force detection panel
JP5700783B2 (ja) 2010-12-07 2015-04-15 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、及び情報処理方法
US9223461B1 (en) 2010-12-08 2015-12-29 Wendell Brown Graphical user interface
US8660978B2 (en) 2010-12-17 2014-02-25 Microsoft Corporation Detecting and responding to unintentional contact with a computing device
KR101645685B1 (ko) 2010-12-20 2016-08-04 애플 인크. 이벤트 인식
US9244606B2 (en) 2010-12-20 2016-01-26 Apple Inc. Device, method, and graphical user interface for navigation of concurrently open software applications
KR101701852B1 (ko) 2010-12-29 2017-02-13 엘지전자 주식회사 이동단말기 및 그 제어방법
US9354804B2 (en) 2010-12-29 2016-05-31 Microsoft Technology Licensing, Llc Touch event anticipation in a computing device
JP5698529B2 (ja) 2010-12-29 2015-04-08 任天堂株式会社 表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法
US9471145B2 (en) 2011-01-06 2016-10-18 Blackberry Limited Electronic device and method of displaying information in response to a gesture
US20120180001A1 (en) 2011-01-06 2012-07-12 Research In Motion Limited Electronic device and method of controlling same
US20120179967A1 (en) 2011-01-06 2012-07-12 Tivo Inc. Method and Apparatus for Gesture-Based Controls
KR101892630B1 (ko) 2011-01-10 2018-08-28 삼성전자주식회사 터치 디스플레이 장치 및 그 디스플레이 방법
US20120185787A1 (en) 2011-01-13 2012-07-19 Microsoft Corporation User interface interaction behavior based on insertion point
US20120183271A1 (en) 2011-01-17 2012-07-19 Qualcomm Incorporated Pressure-based video recording
US9519418B2 (en) 2011-01-18 2016-12-13 Nokia Technologies Oy Method and apparatus for providing a multi-stage device transition mechanism initiated based on a touch gesture
US20120192108A1 (en) 2011-01-26 2012-07-26 Google Inc. Gesture-based menu controls
JP5452738B2 (ja) 2011-02-10 2014-03-26 京セラ株式会社 入力装置
JP5537458B2 (ja) 2011-02-10 2014-07-02 シャープ株式会社 タッチ入力可能な画像表示装置、表示装置の制御装置、及びコンピュータプログラム
KR101889838B1 (ko) 2011-02-10 2018-08-20 삼성전자주식회사 터치 스크린 디스플레이를 구비한 휴대 기기 및 그 제어 방법
US20120218203A1 (en) 2011-02-10 2012-08-30 Kanki Noriyoshi Touch drawing display apparatus and operation method thereof, image display apparatus allowing touch-input, and controller for the display apparatus
US9557816B2 (en) 2011-02-10 2017-01-31 Kyocera Corporation Input device
US8780140B2 (en) 2011-02-16 2014-07-15 Sony Corporation Variable display scale control device and variable playing speed control device
US8756503B2 (en) 2011-02-21 2014-06-17 Xerox Corporation Query generation from displayed text documents using virtual magnets
WO2012114760A1 (ja) 2011-02-23 2012-08-30 京セラ株式会社 タッチセンサを備えた電子機器
US8593420B1 (en) 2011-03-04 2013-11-26 Amazon Technologies, Inc. Providing tactile output and interaction
EP2686758B1 (en) 2011-03-17 2020-09-30 Laubach, Kevin Input device user interface enhancements
US8479110B2 (en) 2011-03-20 2013-07-02 William J. Johnson System and method for summoning user interface objects
US11580155B2 (en) 2011-03-28 2023-02-14 Kodak Alaris Inc. Display device for displaying related digital images
US20120249853A1 (en) 2011-03-28 2012-10-04 Marc Krolczyk Digital camera for reviewing related images
US9220062B2 (en) 2011-03-30 2015-12-22 Nokia Technologies Oy Method and apparatus for low-power browsing
US20120256857A1 (en) 2011-04-05 2012-10-11 Mak Genevieve Elizabeth Electronic device and method of controlling same
US20120256846A1 (en) 2011-04-05 2012-10-11 Research In Motion Limited Electronic device and method of controlling same
EP2508972B1 (en) 2011-04-05 2017-10-18 2236008 Ontario Inc. Portable electronic device and method of controlling same
US8872773B2 (en) 2011-04-05 2014-10-28 Blackberry Limited Electronic device and method of controlling same
US20120260220A1 (en) 2011-04-06 2012-10-11 Research In Motion Limited Portable electronic device having gesture recognition and a method for controlling the same
JPWO2012137946A1 (ja) 2011-04-06 2014-07-28 京セラ株式会社 電子機器、操作制御方法および操作制御プログラム
US8736716B2 (en) 2011-04-06 2014-05-27 Apple Inc. Digital camera having variable duration burst mode
US20120260219A1 (en) 2011-04-08 2012-10-11 Piccolotto Jose P Method of cursor control
CN102752441A (zh) 2011-04-22 2012-10-24 比亚迪股份有限公司 一种具有触控屏的移动终端及其控制方法
US20120274578A1 (en) 2011-04-26 2012-11-01 Research In Motion Limited Electronic device and method of controlling same
US9110556B2 (en) 2011-04-28 2015-08-18 Nokia Technologies Oy Method and apparatus for increasing the functionality of an electronic device in a locked state
US10222974B2 (en) 2011-05-03 2019-03-05 Nokia Technologies Oy Method and apparatus for providing quick access to device functionality
JP5695740B2 (ja) 2011-05-12 2015-04-08 アルプス電気株式会社 入力装置及び前記入力装置を用いた複数点の荷重検出方法
US9152288B2 (en) 2011-05-19 2015-10-06 Microsoft Technology Licensing, Llc Remote multi-touch
US8952987B2 (en) 2011-05-19 2015-02-10 Qualcomm Incorporated User interface elements augmented with force detection
WO2012162158A1 (en) 2011-05-20 2012-11-29 Citrix Systems, Inc. Shell integration on a mobile device for an application executing remotely on a server
US8972295B2 (en) 2011-05-23 2015-03-03 Visible Market, Inc. Dynamic visual statistical data display and method for limited display device
WO2012159254A1 (en) 2011-05-23 2012-11-29 Microsoft Corporation Invisible control
KR101240406B1 (ko) 2011-05-24 2013-03-11 주식회사 미성포리테크 힘센서를 이용한 휴대형 정보통신 단말기의 프로그램 동작 제어 방법
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US10180722B2 (en) 2011-05-27 2019-01-15 Honeywell International Inc. Aircraft user interfaces with multi-mode haptics
JP5808404B2 (ja) 2011-05-27 2015-11-10 京セラ株式会社 電子機器
US20120304132A1 (en) 2011-05-27 2012-11-29 Chaitanya Dev Sareen Switching back to a previously-interacted-with application
KR101802759B1 (ko) 2011-05-30 2017-11-29 엘지전자 주식회사 이동 단말기 및 이것의 디스플레이 제어 방법
KR101290145B1 (ko) 2011-05-31 2013-07-26 삼성전자주식회사 터치 스크린 제어 방법 및 장치, 컴퓨터에 의해 독출될 수 있는 기록 매체, 그리고 단말장치
US8661339B2 (en) 2011-05-31 2014-02-25 Apple Inc. Devices, methods, and graphical user interfaces for document manipulation
US8587542B2 (en) 2011-06-01 2013-11-19 Motorola Mobility Llc Using pressure differences with a touch-sensitive display screen
US8508494B2 (en) 2011-06-01 2013-08-13 Motorola Mobility Llc Using pressure differences with a touch-sensitive display screen
US9310958B2 (en) 2011-06-02 2016-04-12 Lenovo (Singapore) Pte. Ltd. Dock for favorite applications
CN105955617B (zh) 2011-06-03 2019-07-12 谷歌有限责任公司 用于选择文本的手势
US9383820B2 (en) 2011-06-03 2016-07-05 Apple Inc. Custom vibration patterns
US9513799B2 (en) 2011-06-05 2016-12-06 Apple Inc. Devices, methods, and graphical user interfaces for providing control of a touch-based user interface absent physical touch capabilities
US8661337B2 (en) 2011-06-05 2014-02-25 Apple Inc. Techniques for use of snapshots with browsing transitions
WO2012169176A1 (ja) 2011-06-07 2012-12-13 パナソニック株式会社 電子機器
KR20120135723A (ko) 2011-06-07 2012-12-17 김연수 터치패널 타입의 신호입력장치
WO2012167735A1 (zh) 2011-06-07 2012-12-13 联想(北京)有限公司 电子设备、触摸输入方法和控制方法
CN105718192B (zh) 2011-06-07 2023-05-02 联想(北京)有限公司 移动终端及其触摸输入方法
TWI431516B (zh) 2011-06-21 2014-03-21 Quanta Comp Inc 觸覺回饋方法及其電子裝置
US9304668B2 (en) 2011-06-28 2016-04-05 Nokia Technologies Oy Method and apparatus for customizing a display screen of a user interface
CA2839729A1 (en) 2011-06-29 2013-01-03 Blackberry Limited Character preview method and apparatus
CN102301322B (zh) 2011-07-04 2013-08-28 华为终端有限公司 一种实现虚拟手写输入的方法及电子装置
US20130014057A1 (en) 2011-07-07 2013-01-10 Thermal Matrix USA, Inc. Composite control for a graphical user interface
US9720587B2 (en) 2011-07-11 2017-08-01 Kddi Corporation User interface device enabling input motions by finger touch in different modes, and method and program for recognizing input motion
US20130016042A1 (en) 2011-07-12 2013-01-17 Ville Makinen Haptic device with touch gesture interface
JP5325943B2 (ja) 2011-07-12 2013-10-23 富士フイルム株式会社 情報処理装置、情報処理方法及びプログラム
US9158455B2 (en) 2011-07-12 2015-10-13 Apple Inc. Multifunctional environment for image cropping
US9086794B2 (en) 2011-07-14 2015-07-21 Microsoft Technology Licensing, Llc Determining gestures on context based menus
JP5799628B2 (ja) 2011-07-15 2015-10-28 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US20130212515A1 (en) 2012-02-13 2013-08-15 Syntellia, Inc. User interface for text input
US9285976B2 (en) 2011-07-22 2016-03-15 Kddi Corporation User interface device capable of image scrolling not accompanying finger movement, image scrolling method, and program
CN102243662A (zh) 2011-07-27 2011-11-16 北京风灵创景科技有限公司 一种在移动设备上显示浏览器界面的方法
US8713482B2 (en) 2011-07-28 2014-04-29 National Instruments Corporation Gestures for presentation of different views of a system diagram
JP5295328B2 (ja) 2011-07-29 2013-09-18 Kddi株式会社 スクリーンパッドによる入力が可能なユーザインタフェース装置、入力処理方法及びプログラム
KR101830965B1 (ko) 2011-08-03 2018-02-22 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
CN103797784A (zh) 2011-08-05 2014-05-14 汤姆逊许可公司 视频偷看
US9317196B2 (en) 2011-08-10 2016-04-19 Microsoft Technology Licensing, Llc Automatic zooming for text selection/cursor placement
US20130044062A1 (en) 2011-08-16 2013-02-21 Nokia Corporation Method and apparatus for translating between force inputs and temporal inputs
US20130047100A1 (en) 2011-08-17 2013-02-21 Google Inc. Link Disambiguation For Touch Screens
CN102354269B (zh) 2011-08-18 2013-06-12 宇龙计算机通信科技(深圳)有限公司 用于控制显示装置的方法和系统
US20130050131A1 (en) 2011-08-23 2013-02-28 Garmin Switzerland Gmbh Hover based navigation user interface control
US8806369B2 (en) 2011-08-26 2014-08-12 Apple Inc. Device, method, and graphical user interface for managing and interacting with concurrently open software applications
KR101351162B1 (ko) 2011-08-30 2014-01-14 주식회사 팬택 플리킹을 이용한 리스트 선택 지원 단말 장치 및 방법
US20130050143A1 (en) 2011-08-31 2013-02-28 Samsung Electronics Co., Ltd. Method of providing of user interface in portable terminal and apparatus thereof
US9052765B2 (en) 2011-08-31 2015-06-09 Sony Corporation Method for operating a touch sensitive user interface
US8743069B2 (en) 2011-09-01 2014-06-03 Google Inc. Receiving input at a computing device
CN102981659B (zh) 2011-09-06 2016-01-27 宸鸿光电科技股份有限公司 触控面板的控制系统与控制方法及其使用的触控笔
TWI475470B (zh) 2011-09-07 2015-03-01 Acer Inc 電子裝置及應用程式操作方法
US20130067411A1 (en) 2011-09-08 2013-03-14 Google Inc. User gestures indicating rates of execution of functions
JP5576841B2 (ja) 2011-09-09 2014-08-20 Kddi株式会社 押圧による画像のズームが可能なユーザインタフェース装置、画像ズーム方法及びプログラム
US9612670B2 (en) 2011-09-12 2017-04-04 Microsoft Technology Licensing, Llc Explicit touch selection and cursor placement
US8976128B2 (en) 2011-09-12 2015-03-10 Google Technology Holdings LLC Using pressure differences with a touch-sensitive display screen
US9071854B2 (en) 2011-09-12 2015-06-30 Disney Enterprises, Inc. System and method for transmitting a services list to a playback device
US9069460B2 (en) 2011-09-12 2015-06-30 Google Technology Holdings LLC Using pressure differences with a touch-sensitive display screen
US9501213B2 (en) 2011-09-16 2016-11-22 Skadool, Inc. Scheduling events on an electronic calendar utilizing fixed-positioned events and a draggable calendar grid
US9519350B2 (en) 2011-09-19 2016-12-13 Samsung Electronics Co., Ltd. Interface controlling apparatus and method using force
US20130074003A1 (en) 2011-09-21 2013-03-21 Nokia Corporation Method and apparatus for integrating user interfaces
US8959430B1 (en) 2011-09-21 2015-02-17 Amazon Technologies, Inc. Facilitating selection of keys related to a selected key
JP2013070303A (ja) 2011-09-26 2013-04-18 Kddi Corp 画面への押圧で撮影が可能な撮影装置、撮影方法及びプログラム
US8723824B2 (en) 2011-09-27 2014-05-13 Apple Inc. Electronic devices with sidewall displays
CN103019427B (zh) 2011-09-28 2017-06-27 联想(北京)有限公司 控制方法及电子设备
US20130082824A1 (en) 2011-09-30 2013-04-04 Nokia Corporation Feedback response
US9395800B2 (en) 2011-09-30 2016-07-19 Qualcomm Incorporated Enabling instant handwritten input on mobile computing devices
US20130086056A1 (en) 2011-09-30 2013-04-04 Matthew G. Dyor Gesture based context menus
JP5771585B2 (ja) 2011-10-03 2015-09-02 京セラ株式会社 装置、方法、及びプログラム
JP2012027940A (ja) 2011-10-05 2012-02-09 Toshiba Corp 電子機器
CN103907086B (zh) 2011-10-06 2017-11-03 索尼移动通信株式会社 用于操纵第一用户接口对象或第二用户接口对象的方法和电子装置
US10394441B2 (en) 2011-10-15 2019-08-27 Apple Inc. Device, method, and graphical user interface for controlling display of application windows
US8634807B2 (en) 2011-10-17 2014-01-21 Blackberry Limited System and method for managing electronic groups
JP5527304B2 (ja) 2011-10-17 2014-06-18 株式会社デンソー 入力装置
US9170607B2 (en) 2011-10-17 2015-10-27 Nokia Technologies Oy Method and apparatus for determining the presence of a device for executing operations
US20130093764A1 (en) 2011-10-18 2013-04-18 Research In Motion Limited Method of animating a rearrangement of ui elements on a display screen of an electronic device
CA2792900C (en) 2011-10-18 2017-09-05 Research In Motion Limited Method of rendering a user interface
CA2792685C (en) 2011-10-18 2017-08-22 Research In Motion Limited Method of modifying rendered attributes of list elements in a user interface
CA2792895C (en) 2011-10-18 2020-04-28 Research In Motion Limited Method of rendering a user interface
US8810535B2 (en) 2011-10-18 2014-08-19 Blackberry Limited Electronic device and method of controlling same
EP2584462B1 (en) 2011-10-18 2019-03-27 BlackBerry Limited Method of rendering a user interface
US9389707B2 (en) 2011-10-28 2016-07-12 Atmel Corporation Active stylus with configurable touch sensor
US20130111378A1 (en) 2011-10-31 2013-05-02 Nokia Corporation Portable electronic device, associated apparatus and methods
US20130111415A1 (en) 2011-10-31 2013-05-02 Nokia Corporation Portable electronic device, associated apparatus and methods
US20130111345A1 (en) 2011-10-31 2013-05-02 Nokia Corporation Portable electronic device, associated apparatus and methods
US20130111579A1 (en) 2011-10-31 2013-05-02 Nokia Corporation Electronic device mode, associated apparatus and methods
DE102012110278A1 (de) 2011-11-02 2013-05-02 Beijing Lenovo Software Ltd. Verfahren und Vorrichtungen zur Fensterdarstellung und Verfahren und Vorrichtungen zur Berührungsbedienung von Anwendungen
CN103092386A (zh) 2011-11-07 2013-05-08 联想(北京)有限公司 一种电子设备及其触控方法
US9582178B2 (en) 2011-11-07 2017-02-28 Immersion Corporation Systems and methods for multi-pressure interaction on touch-sensitive surfaces
US20130113760A1 (en) 2011-11-07 2013-05-09 Google Inc. Techniques for providing localized tactile feedback to a user via an electro-acoustic touch display of a user device
JP2013101465A (ja) 2011-11-08 2013-05-23 Sony Corp 情報処理装置、情報処理方法およびコンピュータプログラム
WO2013067618A1 (en) 2011-11-09 2013-05-16 Research In Motion Limited Touch-sensitive display method and apparatus
JP5884421B2 (ja) 2011-11-14 2016-03-15 ソニー株式会社 画像処理装置、画像処理装置の制御方法およびプログラム
JP5520918B2 (ja) 2011-11-16 2014-06-11 富士ソフト株式会社 タッチパネル操作方法及びプログラム
KR101888457B1 (ko) 2011-11-16 2018-08-16 삼성전자주식회사 복수 개의 어플리케이션을 실행하는 터치스크린을 가지는 장치 및 그 제어 방법
KR101750300B1 (ko) 2011-11-18 2017-06-23 센톤스 아이엔씨. 터치 입력 힘 검출
KR101652744B1 (ko) 2011-11-18 2016-09-09 센톤스 아이엔씨. 국소형 햅틱 피드백
KR101796481B1 (ko) 2011-11-28 2017-12-04 삼성전자주식회사 저전력 셔터랙 제거 방법, 카메라 모듈 및 이를 구비하는 모바일 기기
KR101873744B1 (ko) 2011-11-29 2018-07-03 엘지전자 주식회사 이동단말기 및 그 제어방법
US9372593B2 (en) 2011-11-29 2016-06-21 Apple Inc. Using a three-dimensional model to render a cursor
KR101824007B1 (ko) 2011-12-05 2018-01-31 엘지전자 주식회사 이동 단말기 및 그의 멀티 태스킹 방법
US8581870B2 (en) 2011-12-06 2013-11-12 Apple Inc. Touch-sensitive button with two levels
CN102566908A (zh) 2011-12-13 2012-07-11 鸿富锦精密工业(深圳)有限公司 电子设备及其页面缩放方法
US8633911B2 (en) 2011-12-14 2014-01-21 Synaptics Incorporated Force sensing input device and method for determining force information
CA2798979C (en) 2011-12-16 2017-02-28 Research In Motion Limited Method of rendering a user interface
CN102722312B (zh) 2011-12-16 2015-12-16 江南大学 一种基于压力传感器的动作趋势预测交互体验方法及系统
US20130155018A1 (en) 2011-12-20 2013-06-20 Synaptics Incorporated Device and method for emulating a touch screen using force information
US20130154959A1 (en) 2011-12-20 2013-06-20 Research In Motion Limited System and method for controlling an electronic device
JP2013131185A (ja) 2011-12-22 2013-07-04 Kyocera Corp 装置、方法、及びプログラム
US9671880B2 (en) 2011-12-22 2017-06-06 Sony Corporation Display control device, display control method, and computer program
US9257098B2 (en) 2011-12-23 2016-02-09 Nokia Technologies Oy Apparatus and methods for displaying second content in response to user inputs
CN103186329B (zh) 2011-12-27 2017-08-18 富泰华工业(深圳)有限公司 电子设备及其触摸输入控制方法
KR102006470B1 (ko) 2011-12-28 2019-08-02 삼성전자 주식회사 사용자 디바이스에서 멀티태스킹 운용 방법 및 장치
US9116611B2 (en) 2011-12-29 2015-08-25 Apple Inc. Devices, methods, and graphical user interfaces for providing multitouch inputs and hardware-based features using a single touch input
US10248278B2 (en) 2011-12-30 2019-04-02 Nokia Technologies Oy Method and apparatus for intuitive multitasking
US8756511B2 (en) 2012-01-03 2014-06-17 Lg Electronics Inc. Gesture based unlocking of a mobile terminal
DE102012207931A1 (de) 2012-01-07 2013-07-11 Johnson Controls Gmbh Kameraanordnung zur Distanzmessung
WO2013106289A1 (en) 2012-01-09 2013-07-18 Airbiquity Inc. User interface for mobile device
KR101710547B1 (ko) 2012-01-10 2017-02-27 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법
US9058168B2 (en) 2012-01-23 2015-06-16 Blackberry Limited Electronic device and method of controlling a display
US9619038B2 (en) 2012-01-23 2017-04-11 Blackberry Limited Electronic device and method of displaying a cover image and an application image from a low power condition
JP5410555B2 (ja) 2012-01-26 2014-02-05 京セラドキュメントソリューションズ株式会社 タッチパネル装置
JP2013153376A (ja) 2012-01-26 2013-08-08 Sony Corp 画像処理装置、画像処理方法および記録媒体
US20130198690A1 (en) 2012-02-01 2013-08-01 Microsoft Corporation Visual indication of graphical user interface relationship
KR101973631B1 (ko) 2012-02-01 2019-04-29 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
US9164779B2 (en) 2012-02-10 2015-10-20 Nokia Technologies Oy Apparatus and method for providing for remote user interaction
US9128605B2 (en) 2012-02-16 2015-09-08 Microsoft Technology Licensing, Llc Thumbnail-image selection of applications
US9146914B1 (en) 2012-02-17 2015-09-29 Google Inc. System and method for providing a context sensitive undo function
KR101356368B1 (ko) 2012-02-24 2014-01-29 주식회사 팬택 어플리케이션 전환 장치 및 방법
US9778706B2 (en) 2012-02-24 2017-10-03 Blackberry Limited Peekable user interface on a portable electronic device
TWI519155B (zh) 2012-02-24 2016-01-21 宏達國際電子股份有限公司 影像連續拍攝方法與相關影像擷取系統
EP2631737A1 (en) 2012-02-24 2013-08-28 Research In Motion Limited Method and apparatus for providing a contextual user interface on a device
KR101894567B1 (ko) 2012-02-24 2018-09-03 삼성전자 주식회사 락스크린 운용 방법 및 이를 지원하는 단말기
US9898174B2 (en) 2012-02-28 2018-02-20 Google Llc Previewing expandable content items
US9817568B2 (en) 2012-02-29 2017-11-14 Blackberry Limited System and method for controlling an electronic device
KR20130099647A (ko) 2012-02-29 2013-09-06 한국과학기술원 사이드 인터페이스를 이용한 사용자 단말 컨텐츠 제어방법 및 제어장치
US9542013B2 (en) 2012-03-01 2017-01-10 Nokia Technologies Oy Method and apparatus for determining recipients of a sharing operation based on an indication associated with a tangible object
US20130232402A1 (en) 2012-03-01 2013-09-05 Huawei Technologies Co., Ltd. Method for Processing Sensor Data and Computing Node
US9460029B2 (en) 2012-03-02 2016-10-04 Microsoft Technology Licensing, Llc Pressure sensitive keys
US9131192B2 (en) 2012-03-06 2015-09-08 Apple Inc. Unified slider control for modifying multiple image properties
US20130234929A1 (en) 2012-03-07 2013-09-12 Evernote Corporation Adapting mobile user interface to unfavorable usage conditions
EP2825943A1 (en) 2012-03-13 2015-01-21 Telefonaktiebolaget LM Ericsson (Publ) An apparatus and method for navigating on a touch sensitive screen thereof
US9378581B2 (en) 2012-03-13 2016-06-28 Amazon Technologies, Inc. Approaches for highlighting active interface elements
US8760425B2 (en) 2012-03-20 2014-06-24 Sony Corporation Method and apparatus for enabling touchpad gestures
US10331769B1 (en) 2012-03-23 2019-06-25 Amazon Technologies, Inc. Interaction based prioritized retrieval of embedded resources
CN102662573B (zh) 2012-03-24 2016-04-27 上海量明科技发展有限公司 通过触压获得选择项的方法及终端
US10673691B2 (en) 2012-03-24 2020-06-02 Fred Khosropour User interaction platform
US9063644B2 (en) 2012-03-26 2015-06-23 The Boeing Company Adjustment mechanisms for virtual knobs on a touchscreen interface
CN102662571B (zh) 2012-03-26 2016-05-25 华为技术有限公司 解锁屏幕保护的方法及用户设备
US9116571B2 (en) 2012-03-27 2015-08-25 Adonit Co., Ltd. Method and system of data input for an electronic device equipped with a touch screen
US11474645B2 (en) 2012-03-27 2022-10-18 Nokia Technologies Oy Method and apparatus for force sensing
CN102662577B (zh) 2012-03-29 2016-08-10 华为终端有限公司 一种基于三维显示的光标操作方法及移动终端
US9146655B2 (en) 2012-04-06 2015-09-29 Samsung Electronics Co., Ltd. Method and device for executing object on display
KR101924095B1 (ko) 2012-04-06 2018-11-30 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
TWI455011B (zh) 2012-04-11 2014-10-01 Wistron Corp 觸控顯示裝置及條件式改變顯示範圍之方法
US20130271355A1 (en) 2012-04-13 2013-10-17 Nokia Corporation Multi-segment wearable accessory
WO2013154720A1 (en) 2012-04-13 2013-10-17 Tk Holdings Inc. Pressure sensor including a pressure sensitive material for use with control systems and methods of using the same
WO2013156815A1 (en) 2012-04-18 2013-10-24 Nokia Corporation A display apparatus with haptic feedback
TWI459287B (zh) 2012-04-20 2014-11-01 Hon Hai Prec Ind Co Ltd 觸控操作方法及使用其的電子系統
US9864483B2 (en) 2012-04-26 2018-01-09 Blackberry Limited Methods and apparatus for the management and viewing of calendar event information
US9317119B2 (en) 2012-04-27 2016-04-19 Panasonic Intellectual Property Management Co., Ltd. Haptic feedback device, haptic feedback method, driving signal generating device and driving signal generation method
EP2660702B1 (en) 2012-05-02 2020-12-30 Sony Corporation Technique for displaying on the basis of duration of operation of an input device
WO2013169851A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for facilitating user interaction with controls in a user interface
WO2013169845A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for scrolling nested regions
JP6182207B2 (ja) 2012-05-09 2017-08-16 アップル インコーポレイテッド ユーザインタフェースオブジェクトのアクティブ化状態を変更するためのフィードバックを提供するためのデバイス、方法、及びグラフィカルユーザインタフェース
CN106201316B (zh) 2012-05-09 2020-09-29 苹果公司 用于选择用户界面对象的设备、方法和图形用户界面
WO2013169865A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input
WO2013169842A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for selecting object within a group of objects
WO2013169875A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for displaying content associated with a corresponding affordance
WO2013169853A1 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for providing tactile feedback for operations performed in a user interface
JP6002836B2 (ja) 2012-05-09 2016-10-05 アップル インコーポレイテッド ジェスチャに応答して表示状態間を遷移するためのデバイス、方法、及びグラフィカルユーザインタフェース
WO2013169849A2 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for displaying user interface objects corresponding to an application
CN105260049B (zh) 2012-05-09 2018-10-23 苹果公司 用于响应于用户接触来显示附加信息的设备、方法和图形用户界面
CN104395860B (zh) 2012-05-09 2018-06-22 苹果公司 用于确定计算设备中的反馈的阈值
EP3264252B1 (en) 2012-05-09 2019-11-27 Apple Inc. Device, method, and graphical user interface for performing an operation in accordance with a selected mode of operation
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
EP2662761B1 (en) 2012-05-11 2020-07-01 Samsung Electronics Co., Ltd Multiple display window providing apparatus and method
US9454303B2 (en) 2012-05-16 2016-09-27 Google Inc. Gesture touch inputs for controlling video on a touchscreen
US8570296B2 (en) 2012-05-16 2013-10-29 Immersion Corporation System and method for display of multiple data channels on a single haptic display
US20130307790A1 (en) 2012-05-17 2013-11-21 Nokia Corporation Methods And Apparatus For Device Control
CN111176516B (zh) 2012-05-18 2023-10-20 苹果公司 用于操纵用户界面的设备、方法和图形用户界面
US9360942B2 (en) 2012-05-21 2016-06-07 Door Number 3 Cursor driven interface for layer control
US8816989B2 (en) 2012-05-22 2014-08-26 Lenovo (Singapore) Pte. Ltd. User interface navigation utilizing pressure-sensitive touch
US9251763B2 (en) 2012-05-25 2016-02-02 Picmonkey, Llc System and method for image collage editing
WO2013180454A1 (en) 2012-05-29 2013-12-05 Samsung Electronics Co., Ltd. Method for displaying item in terminal and terminal using the same
JP2013250602A (ja) 2012-05-30 2013-12-12 Seiko Epson Corp 端末装置、端末装置の制御方法、及び、プログラム
CN102699776B (zh) 2012-05-31 2016-05-11 新昌县盛大科技有限公司 外圆磨全自动上下料装置工件定向排列机构
US9418672B2 (en) 2012-06-05 2016-08-16 Apple Inc. Navigation application with adaptive instruction text
CN102799347B (zh) * 2012-06-05 2017-01-04 北京小米科技有限责任公司 应用于触屏设备的用户界面交互方法、装置及触屏设备
KR101909030B1 (ko) 2012-06-08 2018-10-17 엘지전자 주식회사 비디오 편집 방법 및 이를 위한 디지털 디바이스
CN102819401A (zh) 2012-06-08 2012-12-12 中标软件有限公司 一种Android操作系统及其桌面图标布置方法
US9063595B2 (en) 2012-06-08 2015-06-23 Apple Inc. Devices and methods for reducing power usage of a touch-sensitive display
JP2013257657A (ja) 2012-06-11 2013-12-26 Fujitsu Ltd 情報端末装置及び表示制御方法
US9041667B2 (en) 2012-06-12 2015-05-26 Blackberry Limited Electronic device and method of control of displays
KR20130142301A (ko) 2012-06-19 2013-12-30 삼성전자주식회사 단말기의 메뉴환경 설정 장치 및 방법
US20130339001A1 (en) 2012-06-19 2013-12-19 Microsoft Corporation Spelling candidate generation
US20140002374A1 (en) 2012-06-29 2014-01-02 Lenovo (Singapore) Pte. Ltd. Text selection utilizing pressure-sensitive touch
US20140013271A1 (en) 2012-07-05 2014-01-09 Research In Motion Limited Prioritization of multitasking applications in a mobile device interface
US20140026098A1 (en) 2012-07-19 2014-01-23 M2J Think Box, Inc. Systems and methods for navigating an interface of an electronic device
US9256351B2 (en) 2012-07-20 2016-02-09 Blackberry Limited Method and electronic device for facilitating user control of a menu
US9298295B2 (en) 2012-07-25 2016-03-29 Facebook, Inc. Gestures for auto-correct
US20140028554A1 (en) 2012-07-26 2014-01-30 Google Inc. Recognizing gesture on tactile input device
US9836213B2 (en) 2012-07-27 2017-12-05 Symbol Technologies, Llc Enhanced user interface for pressure sensitive touch screen
KR102014775B1 (ko) 2012-07-30 2019-08-27 엘지전자 주식회사 휴대 단말기 및 그 제어 방법
US9280280B2 (en) 2012-07-31 2016-03-08 Nokia Technologies Oy Method, apparatus and computer program product for presenting designated information on a display operating in a restricted mode
US8896556B2 (en) 2012-07-31 2014-11-25 Verizon Patent And Licensing Inc. Time-based touch interface
JP2014032506A (ja) 2012-08-02 2014-02-20 Sharp Corp 情報処理装置、選択操作検出方法およびプログラム
CN103959802B (zh) 2012-08-10 2018-01-26 松下电器(美国)知识产权公司 影像提供方法、发送装置以及接收装置
US9280206B2 (en) 2012-08-20 2016-03-08 Samsung Electronics Co., Ltd. System and method for perceiving images with multimodal feedback
KR101946365B1 (ko) 2012-08-20 2019-02-11 엘지전자 주식회사 디스플레이 디바이스 및 그 제어 방법
US9720586B2 (en) 2012-08-21 2017-08-01 Nokia Technologies Oy Apparatus and method for providing for interaction with content within a digital bezel
US9250783B2 (en) 2012-08-21 2016-02-02 Apple Inc. Toggle gesture during drag gesture
KR101946366B1 (ko) 2012-08-23 2019-02-11 엘지전자 주식회사 디스플레이 디바이스 및 그 제어 방법
TWI484405B (zh) 2012-08-23 2015-05-11 Egalax Empia Technology Inc 圖形使用者界面的顯示方法及使用該方法的電子裝置
US9063731B2 (en) 2012-08-27 2015-06-23 Samsung Electronics Co., Ltd. Ultra low power apparatus and method to wake up a main processor
KR20140029720A (ko) 2012-08-29 2014-03-11 엘지전자 주식회사 이동단말 제어방법
KR101956170B1 (ko) 2012-08-29 2019-03-08 삼성전자 주식회사 카메라의 이미지 저장 장치 및 방법
JP6077794B2 (ja) 2012-08-29 2017-02-08 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US20140067293A1 (en) 2012-09-05 2014-03-06 Apple Inc. Power sub-state monitoring
US9696879B2 (en) 2012-09-07 2017-07-04 Google Inc. Tab scrubbing using navigation gestures
JP5977627B2 (ja) 2012-09-07 2016-08-24 シャープ株式会社 情報処理装置、情報処理方法およびプログラム
US20140071060A1 (en) 2012-09-11 2014-03-13 International Business Machines Corporation Prevention of accidental triggers of button events
US20140078343A1 (en) 2012-09-20 2014-03-20 Htc Corporation Methods for generating video and multiple still images simultaneously and apparatuses using the same
US9063563B1 (en) 2012-09-25 2015-06-23 Amazon Technologies, Inc. Gesture actions for interface elements
US9372538B2 (en) 2012-09-28 2016-06-21 Denso International America, Inc. Multiple-force, dynamically-adjusted, 3-D touch surface with feedback for human machine interface (HMI)
US9671943B2 (en) 2012-09-28 2017-06-06 Dassault Systemes Simulia Corp. Touch-enabled complex data entry
US9785217B2 (en) 2012-09-28 2017-10-10 Synaptics Incorporated System and method for low power input object detection and interaction
US9507500B2 (en) 2012-10-05 2016-11-29 Tactual Labs Co. Hybrid systems and methods for low-latency user input processing and feedback
US9445109B2 (en) 2012-10-16 2016-09-13 Microsoft Technology Licensing, Llc Color adaptation in video coding
US20140109016A1 (en) 2012-10-16 2014-04-17 Yu Ouyang Gesture-based cursor control
KR102032336B1 (ko) 2012-10-19 2019-11-08 한국전자통신연구원 압력 변화를 통한 촉각 피드백을 제공하는 터치 패널 및 그것의 동작 방법
US20140111670A1 (en) 2012-10-23 2014-04-24 Nvidia Corporation System and method for enhanced image capture
US20140118268A1 (en) 2012-11-01 2014-05-01 Google Inc. Touch screen operation using additional inputs
US9448694B2 (en) 2012-11-09 2016-09-20 Intel Corporation Graphical user interface for navigating applications
CN103019586B (zh) 2012-11-16 2017-03-15 小米科技有限责任公司 用户界面管理方法及装置
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
KR102108061B1 (ko) 2012-11-27 2020-05-08 엘지전자 주식회사 디스플레이 디바이스 및 그 제어 방법
JP5786909B2 (ja) 2012-11-30 2015-09-30 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理システム、情報の表示方法、制御方法、及びプログラム
US20140152581A1 (en) 2012-11-30 2014-06-05 Lenovo (Singapore) Pte. Ltd. Force as a device action modifier
KR20140071118A (ko) 2012-12-03 2014-06-11 삼성전자주식회사 가상 버튼을 디스플레이하기 위한 방법 및 그 전자 장치
US10282088B2 (en) 2012-12-06 2019-05-07 Samsung Electronics Co., Ltd. Configuration of application execution spaces and sub-spaces for sharing data on a mobile tough screen device
US9189131B2 (en) 2012-12-11 2015-11-17 Hewlett-Packard Development Company, L.P. Context menus
JP5794399B2 (ja) 2012-12-12 2015-10-14 株式会社村田製作所 タッチ式入力装置
US20140168093A1 (en) 2012-12-13 2014-06-19 Nvidia Corporation Method and system of emulating pressure sensitivity on a surface
CN103870190B (zh) 2012-12-17 2018-03-27 联想(北京)有限公司 一种控制电子设备的方法及电子设备
US20140168153A1 (en) 2012-12-17 2014-06-19 Corning Incorporated Touch screen systems and methods based on touch location and touch force
KR20140079110A (ko) 2012-12-18 2014-06-26 엘지전자 주식회사 이동 단말기 및 그 동작 방법
KR101457632B1 (ko) 2012-12-20 2014-11-10 주식회사 팬택 프로그램 알림 기능을 갖는 휴대용 전자 기기 및 이를 위한 프로그램 알림 방법
DE112012006009T5 (de) 2012-12-20 2014-11-27 Intel Corporation Berührungsbildschirm mit Kraftsensoren
US9244576B1 (en) 2012-12-21 2016-01-26 Cypress Semiconductor Corporation User interface with child-lock feature
WO2014100953A1 (en) 2012-12-24 2014-07-03 Nokia Corporation An apparatus and associated methods
WO2014105279A1 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for switching between user interfaces
KR102001332B1 (ko) 2012-12-29 2019-07-17 애플 인크. 콘텐츠를 스크롤할지 선택할지 결정하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
WO2014105275A1 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for forgoing generation of tactile output for a multi-contact gesture
KR102000253B1 (ko) 2012-12-29 2019-07-16 애플 인크. 사용자 인터페이스 계층을 내비게이션하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
EP2939095B1 (en) 2012-12-29 2018-10-03 Apple Inc. Device, method, and graphical user interface for moving a cursor according to a change in an appearance of a control icon with simulated three-dimensional characteristics
EP3435220B1 (en) 2012-12-29 2020-09-16 Apple Inc. Device, method and graphical user interface for transitioning between touch input to display output relationships
KR102072582B1 (ko) 2012-12-31 2020-02-03 엘지전자 주식회사 듀얼 디스플레이 방법 및 장치
US9665762B2 (en) 2013-01-11 2017-05-30 Synaptics Incorporated Tiered wakeup strategy
US10082949B2 (en) 2013-01-17 2018-09-25 Samsung Electronics Co., Ltd. Apparatus and method for application peel
US9141259B2 (en) 2013-01-21 2015-09-22 International Business Machines Corporation Pressure navigation on a touch sensitive user interface
JP6075854B2 (ja) 2013-01-21 2017-02-08 キヤノン株式会社 表示制御装置、その制御方法、およびプログラム、並びに撮像装置および記憶媒体
KR20140097902A (ko) 2013-01-30 2014-08-07 삼성전자주식회사 햅틱 패턴을 생성하는 휴대 단말 및 방법
KR102133410B1 (ko) 2013-01-31 2020-07-14 삼성전자 주식회사 멀티태스킹 운용 방법 및 이를 지원하는 단말기
US20140210798A1 (en) 2013-01-31 2014-07-31 Hewlett-Packard Development Company, L.P. Digital Drawing Using A Touch-Sensitive Device To Detect A Position And Force For An Input Event
US9747014B2 (en) 2013-02-05 2017-08-29 Nokia Technologies Oy Method and apparatus for a slider interface element
EP2767896B1 (en) 2013-02-14 2019-01-16 LG Electronics Inc. Mobile terminal and method of controlling the mobile terminal
US9910527B2 (en) * 2013-02-15 2018-03-06 Flatfrog Laboratories Ab Interpretation of pressure based gesture
US20140237408A1 (en) 2013-02-15 2014-08-21 Flatfrog Laboratories Ab Interpretation of pressure based gesture
KR101761190B1 (ko) 2013-02-22 2017-07-25 삼성전자 주식회사 휴대 단말기의 사용자 인터페이스 제공 방법 및 장치
CN103186345B (zh) 2013-02-25 2016-09-14 北京极兴莱博信息科技有限公司 一种文段选择方法及装置
JP2014165663A (ja) 2013-02-25 2014-09-08 Kyocera Corp 携帯端末装置、プログラムおよび携帯端末装置の制御方法
CN104020868B (zh) 2013-02-28 2017-09-01 联想(北京)有限公司 一种信息处理的方法及电子设备
US8769431B1 (en) 2013-02-28 2014-07-01 Roy Varada Prasad Method of single-handed software operation of large form factor mobile electronic devices
US9690476B2 (en) 2013-03-14 2017-06-27 Blackberry Limited Electronic device and method of displaying information in response to a gesture
US10203815B2 (en) 2013-03-14 2019-02-12 Apple Inc. Application-based touch sensitivity
EP2973406B1 (en) 2013-03-14 2019-11-27 NIKE Innovate C.V. Athletic attribute determinations from image data
US10055418B2 (en) 2014-03-14 2018-08-21 Highspot, Inc. Narrowing information search results for presentation to a user
US9274685B2 (en) 2013-03-15 2016-03-01 Google Technology Holdings LLC Systems and methods for predictive text entry for small-screen devices with touch-based two-stage text input
DE112014001380T5 (de) 2013-03-15 2015-12-03 Tk Holdings Inc. Adaptive Mensch-Maschine-Schnittstellen für druckempfindliche Steuerung in einer abgelenkten Betriebsumgebung und Verfahren zur Anwendung derselben
CN110851034B (zh) 2013-03-15 2024-03-15 苹果公司 用于管理用户界面的方法和电子设备
US9451230B1 (en) 2013-03-15 2016-09-20 Google Inc. Playback adjustments for digital media items
US9355472B2 (en) 2013-03-15 2016-05-31 Apple Inc. Device, method, and graphical user interface for adjusting the appearance of a control
US9225677B2 (en) 2013-03-15 2015-12-29 Facebook, Inc. Systems and methods for displaying a digest of messages or notifications without launching applications associated with the messages or notifications
CN104077014B (zh) 2013-03-28 2018-04-10 阿里巴巴集团控股有限公司 一种信息处理的方法和设备
US9507495B2 (en) 2013-04-03 2016-11-29 Blackberry Limited Electronic device and method of displaying information in response to a gesture
US9389718B1 (en) 2013-04-04 2016-07-12 Amazon Technologies, Inc. Thumb touch interface
KR20140122000A (ko) 2013-04-09 2014-10-17 옥윤선 모바일 메신저 기반의 드래그를 이용한 정보전달 방법, 그리고 모바일 메신저 기반의 드래그를 이용한 정보전달을 위한 모바일단말
US9146672B2 (en) 2013-04-10 2015-09-29 Barnes & Noble College Booksellers, Llc Multidirectional swipe key for virtual keyboard
KR102091235B1 (ko) 2013-04-10 2020-03-18 삼성전자주식회사 휴대 단말기에서 메시지를 편집하는 장치 및 방법
US20140306897A1 (en) 2013-04-10 2014-10-16 Barnesandnoble.Com Llc Virtual keyboard swipe gestures for cursor movement
US20160092071A1 (en) 2013-04-30 2016-03-31 Hewlett-Packard Development Company, L.P. Generate preview of content
CN103279295A (zh) 2013-05-03 2013-09-04 广东欧珀移动通信有限公司 一种终端桌面图标切换方法及装置
KR20140132632A (ko) 2013-05-08 2014-11-18 삼성전자주식회사 휴대 장치 및 휴대 장치의 오브젝트 표시 방법
WO2014179940A1 (en) 2013-05-08 2014-11-13 Nokia Corporation An apparatus and associated methods
CN104142798A (zh) 2013-05-10 2014-11-12 北京三星通信技术研究有限公司 启动应用程序的方法及触摸屏智能终端设备
US20140344765A1 (en) 2013-05-17 2014-11-20 Barnesandnoble.Com Llc Touch Sensitive UI Pinch and Flick Techniques for Managing Active Applications
KR20140137509A (ko) 2013-05-22 2014-12-03 삼성전자주식회사 알림 기능 운용 방법 및 이를 지원하는 전자 장치
US9307112B2 (en) 2013-05-31 2016-04-05 Apple Inc. Identifying dominant and non-dominant images in a burst mode capture
US9319589B2 (en) 2013-05-31 2016-04-19 Sony Corporation Device and method for capturing images and selecting a desired image by tilting the device
US10282067B2 (en) 2013-06-04 2019-05-07 Sony Corporation Method and apparatus of controlling an interface based on touch operations
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US9477393B2 (en) 2013-06-09 2016-10-25 Apple Inc. Device, method, and graphical user interface for displaying application status information
US10481769B2 (en) 2013-06-09 2019-11-19 Apple Inc. Device, method, and graphical user interface for providing navigation and search functionalities
KR102113674B1 (ko) 2013-06-10 2020-05-21 삼성전자주식회사 다중 터치를 이용한 객체 선택 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
US9400601B2 (en) 2013-06-21 2016-07-26 Nook Digital, Llc Techniques for paging through digital content on touch screen devices
US20150012861A1 (en) 2013-07-02 2015-01-08 Dropbox, Inc. Syncing content clipboard
CN103309618A (zh) 2013-07-02 2013-09-18 姜洪明 移动操作系统
US20150020033A1 (en) 2013-07-09 2015-01-15 Qualcomm Incorporated Method and apparatus for activating a user interface from a low power state
KR102136602B1 (ko) 2013-07-10 2020-07-22 삼성전자 주식회사 휴대단말기의 컨텐츠 처리 장치 및 방법
KR102080746B1 (ko) 2013-07-12 2020-02-24 엘지전자 주식회사 이동 단말기 및 그것의 제어 방법
CA2918459C (en) 2013-07-16 2019-06-04 Pinterest, Inc. Object based contextual menu controls
US9342228B2 (en) 2013-07-17 2016-05-17 Blackberry Limited Device and method for filtering messages using sliding touch input
KR102187505B1 (ko) 2013-07-22 2020-12-08 삼성전자 주식회사 전자 디바이스의 표시 제어 방법 및 장치
KR20150013991A (ko) 2013-07-25 2015-02-06 삼성전자주식회사 휴대단말기의 어플리케이션 실행 방법 및 장치
US20150040065A1 (en) 2013-07-31 2015-02-05 Vonage Network Llc Method and apparatus for generating customized menus for accessing application functionality
US9335897B2 (en) 2013-08-08 2016-05-10 Palantir Technologies Inc. Long click display of a context menu
KR20150019165A (ko) 2013-08-12 2015-02-25 엘지전자 주식회사 이동 단말기 및 이의 제어방법
US10108310B2 (en) 2013-08-16 2018-10-23 Marvell World Trade Ltd Method and apparatus for icon based application control
KR102101741B1 (ko) 2013-08-16 2020-05-29 엘지전자 주식회사 이동 단말기 및 이의 제어방법
US9547525B1 (en) 2013-08-21 2017-01-17 Google Inc. Drag toolbar to enter tab switching interface
US9740712B2 (en) 2013-08-26 2017-08-22 Ab Minenda Oy System for processing image data, storing image data and accessing image data
CN104423740B (zh) 2013-08-30 2018-07-13 唐山东唐电气股份有限公司 基于电容式触控装置的感测方法
KR102332675B1 (ko) 2013-09-02 2021-11-30 삼성전자 주식회사 전자 장치의 컨텐츠 공유 방법 및 장치
KR20150026649A (ko) 2013-09-03 2015-03-11 삼성전자주식회사 전자 장치에서 제스처를 설정하는 장치 및 방법
US20150071547A1 (en) 2013-09-09 2015-03-12 Apple Inc. Automated Selection Of Keeper Images From A Burst Photo Captured Set
US9798443B1 (en) 2013-09-10 2017-10-24 Amazon Technologies, Inc. Approaches for seamlessly launching applications
WO2015037932A1 (en) 2013-09-13 2015-03-19 Samsung Electronics Co., Ltd. Display apparatus and method for performing function of the same
JP6138641B2 (ja) 2013-09-13 2017-05-31 株式会社Nttドコモ 地図情報表示装置、地図情報表示方法、及び地図情報表示プログラム
US20150082238A1 (en) 2013-09-18 2015-03-19 Jianzhong Meng System and method to display and interact with a curve items list
CN110058697B (zh) 2013-10-08 2023-02-28 Tk控股公司 具有集成的多感觉反馈的基于力的触摸界面
US9407964B2 (en) 2013-10-25 2016-08-02 Verizon Patent And Licensing Inc. Method and system for navigating video to an instant time
JP6020742B2 (ja) * 2013-10-25 2016-11-02 株式会社村田製作所 電子機器、および、操作入力プログラム
KR20150049700A (ko) 2013-10-30 2015-05-08 삼성전자주식회사 전자 장치에서 입력을 제어하는 방법 및 장치
US10067651B2 (en) 2013-11-15 2018-09-04 Thomson Reuters Global Resources Unlimited Company Navigable layering of viewable areas for hierarchical content
CN103677632A (zh) 2013-11-19 2014-03-26 三星电子(中国)研发中心 一种虚拟键盘调整方法和移动终端
JP6177669B2 (ja) 2013-11-20 2017-08-09 株式会社Nttドコモ 画像表示装置およびプログラム
US9111076B2 (en) 2013-11-20 2015-08-18 Lg Electronics Inc. Mobile terminal and control method thereof
US20150143294A1 (en) 2013-11-21 2015-05-21 UpTo, Inc. System and method for presenting a responsive multi-layered ordered set of elements
US20150153897A1 (en) 2013-12-03 2015-06-04 Microsoft Corporation User interface adaptation from an input source identifier change
JP6399744B2 (ja) * 2013-12-04 2018-10-03 キヤノン株式会社 表示装置、表示方法
JP2015114836A (ja) 2013-12-11 2015-06-22 キヤノン株式会社 画像処理装置、触感制御方法及びプログラム
CN104714741A (zh) 2013-12-11 2015-06-17 北京三星通信技术研究有限公司 触控操作的方法及装置
CN103699295A (zh) 2013-12-12 2014-04-02 宇龙计算机通信科技(深圳)有限公司 终端和图标显示方法
US9483118B2 (en) 2013-12-27 2016-11-01 Rovi Guides, Inc. Methods and systems for selecting media guidance functions based on tactile attributes of a user input
US9804665B2 (en) 2013-12-29 2017-10-31 Google Inc. Apparatus and method for passing event handling control from a primary processor to a secondary processor during sleep mode
US9753527B2 (en) 2013-12-29 2017-09-05 Google Technology Holdings LLC Apparatus and method for managing graphics buffers for a processor in sleep mode
CN103793134A (zh) 2013-12-30 2014-05-14 深圳天珑无线科技有限公司 一种触摸屏终端多界面切换的方法及触摸屏终端
KR20150081125A (ko) 2014-01-03 2015-07-13 삼성전자주식회사 전자 장치 스크린에서의 입자 효과 디스플레이
CN103777850A (zh) 2014-01-17 2014-05-07 广州华多网络科技有限公司 菜单显示方法、装置和终端
CN104834456A (zh) 2014-02-12 2015-08-12 深圳富泰宏精密工业有限公司 触控界面多任务切换方法、系统及电子装置
CN106030483B (zh) 2014-02-18 2019-12-17 剑桥触控科技有限公司 使用压感触摸的触摸屏的功率模式的动态切换
CN103838465B (zh) 2014-03-08 2018-03-02 广东欧珀移动通信有限公司 一种生动有趣的桌面图标显示方法及装置
US9436348B2 (en) 2014-03-18 2016-09-06 Blackberry Limited Method and system for controlling movement of cursor in an electronic device
JP6247651B2 (ja) 2014-03-24 2017-12-13 株式会社 ハイディープHiDeep Inc. メニュー操作方法及びこれを行うタッチ入力装置を含むメニュー操作装置
US9829979B2 (en) 2014-04-28 2017-11-28 Ford Global Technologies, Llc Automotive touchscreen controls with simulated texture for haptic feedback
KR102129798B1 (ko) 2014-05-08 2020-07-03 엘지전자 주식회사 비히클 및 그 제어 방법
US20150332607A1 (en) 2014-05-13 2015-11-19 Viewplus Technologies, Inc. System for Producing Tactile Images
CN104020955B (zh) 2014-05-30 2016-05-11 深圳市爱培科技术股份有限公司 基于WinCE系统的触摸式设备桌面自定义方法及系统
US9032321B1 (en) 2014-06-16 2015-05-12 Google Inc. Context-based presentation of a user interface
CN104021021A (zh) 2014-06-19 2014-09-03 深圳市中兴移动通信有限公司 移动终端及其通过压力检测实现快捷启动的方法和装置
US9477653B2 (en) 2014-06-26 2016-10-25 Blackberry Limited Character entry for an electronic device using a position sensing keyboard
US9294719B2 (en) 2014-06-30 2016-03-22 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing in-app live support functionality
US20160004393A1 (en) 2014-07-01 2016-01-07 Google Inc. Wearable device user interface control
TW201602893A (zh) 2014-07-07 2016-01-16 欣興電子股份有限公司 附加資訊提供方法及使用其的觸控顯示裝置
US9990105B2 (en) 2014-07-08 2018-06-05 Verizon Patent And Licensing Inc. Accessible contextual controls within a graphical user interface
US9363644B2 (en) 2014-07-16 2016-06-07 Yahoo! Inc. System and method for detection of indoor tracking units
US20160019718A1 (en) 2014-07-16 2016-01-21 Wipro Limited Method and system for providing visual feedback in a virtual reality environment
US9600114B2 (en) 2014-07-31 2017-03-21 International Business Machines Corporation Variable pressure touch system
KR20160021524A (ko) 2014-08-18 2016-02-26 엘지전자 주식회사 이동 단말기 및 이의 제어방법
US10203858B2 (en) * 2014-08-28 2019-02-12 Blackberry Limited Portable electronic device and method of controlling the display of information
CN115756154A (zh) 2014-09-02 2023-03-07 苹果公司 用于可变触觉输出的语义框架
CN104267902B (zh) 2014-09-22 2017-03-08 努比亚技术有限公司 一种应用程序交互控制方法、装置及终端
US20160124924A1 (en) 2014-10-09 2016-05-05 Wrap Media, LLC Displaying a wrap package of cards within an overlay window embedded in an application or web page
US20160132139A1 (en) 2014-11-11 2016-05-12 Qualcomm Incorporated System and Methods for Controlling a Cursor Based on Finger Pressure and Direction
CN104331239A (zh) 2014-11-26 2015-02-04 上海斐讯数据通信技术有限公司 单手操作手持设备的方法及系统
KR20150021977A (ko) 2015-01-19 2015-03-03 인포뱅크 주식회사 휴대용 단말기에서의 ui 구성 방법
US20160224220A1 (en) 2015-02-04 2016-08-04 Wipro Limited System and method for navigating between user interface screens
US10191614B2 (en) 2015-02-25 2019-01-29 Htc Corporation Panel displaying method, portable electronic device and recording medium using the method
US9632664B2 (en) 2015-03-08 2017-04-25 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
US10095396B2 (en) 2015-03-08 2018-10-09 Apple Inc. Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
US10048757B2 (en) 2015-03-08 2018-08-14 Apple Inc. Devices and methods for controlling media presentation
US9645732B2 (en) 2015-03-08 2017-05-09 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US9990107B2 (en) 2015-03-08 2018-06-05 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US9785305B2 (en) 2015-03-19 2017-10-10 Apple Inc. Touch input cursor manipulation
US9639184B2 (en) 2015-03-19 2017-05-02 Apple Inc. Touch input cursor manipulation
US20170045981A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices and Methods for Processing Touch Inputs Based on Their Intensities
US10101877B2 (en) 2015-04-16 2018-10-16 Blackberry Limited Portable electronic device including touch-sensitive display and method of providing access to an application
US9625987B1 (en) 2015-04-17 2017-04-18 Google Inc. Updating and displaying information in different power modes
US9830048B2 (en) 2015-06-07 2017-11-28 Apple Inc. Devices and methods for processing touch inputs with instructions in a web page
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US10346030B2 (en) 2015-06-07 2019-07-09 Apple Inc. Devices and methods for navigating between user interfaces
DK179292B1 (en) 2015-06-07 2018-04-09 Apple Inc Devices, methods and graphical user interfaces for providing and interacting with notifications
US9891811B2 (en) 2015-06-07 2018-02-13 Apple Inc. Devices and methods for navigating between user interfaces
US10200598B2 (en) 2015-06-07 2019-02-05 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US10319177B2 (en) 2015-07-31 2019-06-11 Novomatic Ag User interface with slider and popup window feature
US10416800B2 (en) 2015-08-10 2019-09-17 Apple Inc. Devices, methods, and graphical user interfaces for adjusting user interface objects
US10235035B2 (en) 2015-08-10 2019-03-19 Apple Inc. Devices, methods, and graphical user interfaces for content navigation and manipulation
US10248308B2 (en) 2015-08-10 2019-04-02 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interfaces with physical gestures
US20170046058A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices, Methods, and Graphical User Interfaces for Adjusting User Interface Objects
US9880735B2 (en) 2015-08-10 2018-01-30 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
US10346510B2 (en) 2015-09-29 2019-07-09 Apple Inc. Device, method, and graphical user interface for providing handwriting support in document editing
KR102348670B1 (ko) 2015-09-30 2022-01-06 엘지디스플레이 주식회사 멀티 터치 감지형 표시장치와 그의 터치 식별코드 할당방법
US11182068B2 (en) 2015-10-27 2021-11-23 Verizon Patent And Licensing Inc. Method and system for interacting with a touch screen
US10506165B2 (en) 2015-10-29 2019-12-10 Welch Allyn, Inc. Concussion screening system
JP6685695B2 (ja) 2015-10-30 2020-04-22 キヤノン株式会社 端末及び撮像装置
KR101749933B1 (ko) 2015-11-12 2017-06-22 엘지전자 주식회사 이동 단말기 및 그 제어방법
KR20170085419A (ko) 2016-01-14 2017-07-24 삼성전자주식회사 터치 입력에 기반한 동작 방법 및 그 전자 장치
CN107329602A (zh) 2016-04-28 2017-11-07 珠海金山办公软件有限公司 一种触摸屏轨迹识别方法及装置
US10402042B2 (en) 2016-06-13 2019-09-03 Lenovo (Singapore) Pte. Ltd. Force vector cursor control
US10152173B2 (en) 2016-08-25 2018-12-11 Parade Technologies, Ltd. Using 3D touch for signal conditioning and noise reduction on a touch surface
DK201670728A1 (en) 2016-09-06 2018-03-19 Apple Inc Devices, Methods, and Graphical User Interfaces for Providing Feedback During Interaction with an Intensity-Sensitive Button
DK201670720A1 (en) 2016-09-06 2018-03-26 Apple Inc Devices, Methods, and Graphical User Interfaces for Generating Tactile Outputs
US10445935B2 (en) 2017-05-26 2019-10-15 Microsoft Technology Licensing, Llc Using tracking to simulate direct tablet interaction in mixed reality
US20180364898A1 (en) 2017-06-14 2018-12-20 Zihan Chen Systems, Devices, and/or Methods for Managing Text Rendering
US10908783B2 (en) 2018-11-06 2021-02-02 Apple Inc. Devices, methods, and graphical user interfaces for interacting with user interface objects and providing feedback

Also Published As

Publication number Publication date
DK201500594A1 (en) 2017-03-06
AU2017261478A1 (en) 2018-01-18
US20170046038A1 (en) 2017-02-16
CN106843711A (zh) 2017-06-13
JP2018523243A (ja) 2018-08-16
DK201500593A1 (en) 2017-03-06
CN107850976A (zh) 2018-03-27
AU2016304890B2 (en) 2019-03-21
KR20180030603A (ko) 2018-03-23
US20170045982A1 (en) 2017-02-16
AU2016304890A8 (en) 2017-08-03
CN107850976B (zh) 2021-05-28
DK179296B1 (en) 2018-04-16
WO2017027632A1 (en) 2017-02-16
US20170045983A1 (en) 2017-02-16
KR102033863B1 (ko) 2019-10-17
CN106843711B (zh) 2024-02-27
AU2016304890A1 (en) 2017-07-06
DK201500598A1 (en) 2017-03-06
US10162452B2 (en) 2018-12-25
EP3286629A1 (en) 2018-02-28
US11182017B2 (en) 2021-11-23
AU2016101418A4 (en) 2016-10-06
US20170045981A1 (en) 2017-02-16
AU2017261478B2 (en) 2019-01-24
AU2016101418B4 (en) 2017-06-08

Similar Documents

Publication Publication Date Title
JP6559881B2 (ja) デバイス及びその強度に基づいてタッチ入力を処理するための方法
JP7383059B2 (ja) アプリケーション切り替えユーザインタフェースと対話するためのデバイス及び方法
JP6705842B2 (ja) ナビゲーション及び検索機能を提供するためのデバイス、方法、及びグラフィカルユーザインタフェース
AU2016100246A4 (en) Device, method, and user interface for processing intensity of touch contacts
US20190346986A1 (en) Devices, Methods, and Graphical User Interfaces for Touch Input Processing
KR20230107710A (ko) 사용자 인터페이스들 사이에 내비게이팅하고 제어 객체들과상호작용하기 위한 디바이스, 방법, 및 그래픽 사용자 인터페이스
US11249579B2 (en) Devices, methods, and graphical user interfaces for manipulating embedded interactive content
JP2016521886A (ja) カメラインターフェース間で切り替えるためのデバイス、方法及びグラフィカルユーザインターフェース
KR20140026218A (ko) 콘텐츠 관찰 및 텍스트 엔트리 인터페이스들의 크기를 조절하기 위한 장치, 방법 및 그래픽 사용자 인터페이스
US10152208B2 (en) Devices and methods for processing touch inputs based on their intensities
CN111026306B (zh) 用于触摸输入处理的设备、方法和图形用户界面
US20220253189A1 (en) Devices and Methods for Interacting with an Application Switching User Interface
US10007418B2 (en) Device, method, and graphical user interface for enabling generation of contact-intensity-dependent interface responses
US20170357568A1 (en) Device, Method, and Graphical User Interface for Debugging Accessibility Information of an Application
CN117971106A (zh) 用于与用户界面交互的系统和方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190521

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190717

R150 Certificate of patent or registration of utility model

Ref document number: 6559881

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250