KR102033863B1 - 세기에 기초하여 터치 입력을 프로세싱하기 위한 디바이스 및 방법 - Google Patents

세기에 기초하여 터치 입력을 프로세싱하기 위한 디바이스 및 방법 Download PDF

Info

Publication number
KR102033863B1
KR102033863B1 KR1020187003890A KR20187003890A KR102033863B1 KR 102033863 B1 KR102033863 B1 KR 102033863B1 KR 1020187003890 A KR1020187003890 A KR 1020187003890A KR 20187003890 A KR20187003890 A KR 20187003890A KR 102033863 B1 KR102033863 B1 KR 102033863B1
Authority
KR
South Korea
Prior art keywords
delete delete
input
intensity
touch
gesture
Prior art date
Application number
KR1020187003890A
Other languages
English (en)
Other versions
KR20180030603A (ko
Inventor
피터 엘. 하자스
소피아 튜스트클러
올리비에 디.알. 구트크네히트
콜린 에이치. 바렛
케네스 엘. 코시엔다
니콜 엠. 웰스
차나카 지. 카루나무니
마르코스 알론소 루이즈
그레고리 엠. 아포다카
조나단 알. 다스콜라
크리스토퍼 피. 포스
마이클 티. 주레비츠
제임스 티. 몽고메리
케빈 이. 리즈데일
웨인 씨. 웨스터만
모건 에이치. 와이너
알렉스 비자모브
제이콥 에이. 샤오
Original Assignee
애플 인크.
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 애플 인크. filed Critical 애플 인크.
Publication of KR20180030603A publication Critical patent/KR20180030603A/ko
Application granted granted Critical
Publication of KR102033863B1 publication Critical patent/KR102033863B1/ko

Links

Images

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/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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스는, 제1 소프트웨어 애플리케이션의 제1 사용자 인터페이스를 디스플레이하고 - 제1 사용자 인터페이스는 복수의 사용자 인터페이스 객체들을 포함하고, 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체는 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트와 연관됨 -; 포커스 선택자가 디스플레이 상에서 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체 위에 있는 동안, 접촉에 의한 입력의 제1 부분을 검출하고; 입력의 제1 부분을 검출하는 것에 응답하여 그리고 입력의 제1 부분이 미리정의된 기준들을 만족한다는 결정에 따라, 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트를 실행한다.

Description

세기에 기초하여 터치 입력을 프로세싱하기 위한 디바이스 및 방법
본 발명은 대체로, 터치 감응형 표면들 상의 접촉들의 세기를 검출하는 센서들을 갖는 전자 디바이스들을 포함하지만 이로 한정되지 않는, 터치 감응형 표면들을 갖는 전자 디바이스들에 관한 것이다.
컴퓨터 및 다른 전자 컴퓨팅 디바이스를 위한 입력 디바이스로서의 터치 감응형 표면의 사용이 최근에 현저히 증가되고 있다. 예시적인 터치 감응형 표면은 터치 패드 및 터치 스크린 디스플레이를 포함한다. 그러한 표면은 디스플레이 상의 사용자 인터페이스 객체들을 조작하는 데 널리 사용된다.
예시적인 조작들은 하나 이상의 사용자 인터페이스 객체의 위치 및/또는 크기를 조절하는 것 또는 버튼들을 활성화시키는 것 또는 사용자 인터페이스 객체들에 의해 표현된 파일들/애플리케이션들을 여는 것은 물론, 메타데이터를 하나 이상의 사용자 인터페이스 객체와 연관시키는 것 또는 사용자 인터페이스들을 다른 방식으로 조작하는 것을 포함한다. 예시적인 사용자 인터페이스 객체들은 디지털 이미지, 비디오, 텍스트, 아이콘, 버튼과 같은 제어 요소, 및 기타 그래픽을 포함한다. 일부 상황들에서, 사용자는 그러한 조작들을 파일 관리 프로그램(예를 들어, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.(Apple Inc.)로부터의 파인더(Finder)), 이미지 관리 애플리케이션(예를 들어, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 애퍼처(Aperture), 아이포토(iPhoto), 포토스(Photos)), 디지털 콘텐츠(예를 들어, 비디오 및 음악) 관리 애플리케이션(예를 들어, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 아이튠즈(iTunes)), 드로잉 애플리케이션, 프레젠테이션 애플리케이션(예를 들어, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 키노트(Keynote)), 워드 프로세싱 애플리케이션(예를 들어, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 페이지스(Pages)), 웹사이트 제작 애플리케이션(예를 들어, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 아이웹(iWeb)), 디스크 저작 애플리케이션(예를 들어, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 아이디비디(iDVD)), 또는 스프레드시트 애플리케이션(예를 들어, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 넘버스(Numbers))에서의 사용자 인터페이스 객체들에 대해 수행할 필요가 있을 것이다.
그러나, 이러한 조작들을 프로세싱하기 위한 기존의 방법들은 번거롭고 비효율적이다. 게다가, 기존의 방법들은 필요 이상으로 오래 걸려서, 에너지가 낭비된다. 이러한 후자의 고려사항은 배터리-작동형 디바이스들에서 특히 중요하다.
따라서, 본 발명은 터치 입력들을 프로세싱하기 위한 보다 빠르고 보다 효율적인 방법들을 갖는 전자 디바이스들을 제공한다. 그러한 방법들 및 인터페이스들은 터치 입력들을 프로세싱하기 위한 종래의 방법들을 선택적으로 보완하거나 대체한다. 그러한 방법들 및 인터페이스들은 터치 입력들의 맞춤화된 프로세싱을 허용함으로써 보다 효율적인 인간-기계 인터페이스를 제공한다. 추가로, 그러한 방법들은 터치 입력들을 프로세싱하기 위해 소비되는 프로세싱 전력을 감소시키고, 전력을 절약하고, 불필요한/관련없는/반복적인 입력들을 감소시키고, 메모리 사용량을 잠재적으로 감소시킨다. 배터리-작동형 디바이스들의 경우, 그러한 방법들 및 인터페이스들은 배터리 전력을 절약하고 배터리 충전들 사이의 시간을 증가시킨다.
터치 감응형 표면들을 갖는 전자 디바이스들에 대한 사용자 인터페이스들과 연관된 상기 결함들 및 다른 문제들은 개시된 디바이스들에 의해 감소되거나 제거된다. 일부 실시예들에서, 디바이스는 데스크톱 컴퓨터이다. 일부 실시예들에서, 디바이스는 휴대용(예컨대, 노트북 컴퓨터, 태블릿 컴퓨터, 또는 핸드헬드 디바이스)이다. 일부 실시예들에서, 디바이스는 터치 패드를 갖는다. 일부 실시예들에서, 디바이스는 터치 감응형 디스플레이("터치 스크린" 또는 "터치 스크린 디스플레이"로도 알려짐)를 갖는다. 일부 실시예들에서, 디바이스는 그래픽 사용자 인터페이스(GUI), 하나 이상의 프로세서들, 메모리, 및 다수의 기능들을 수행하기 위해 메모리에 저장된 하나 이상의 모듈들, 프로그램들 또는 명령어들의 세트들을 갖는다. 일부 실시예들에서, 사용자는 주로 터치 감응형 표면 상의 스타일러스 및/또는 손가락 접촉들 및 제스처들을 통해 GUI와 상호작용한다. 일부 실시예들에서, 기능들은 이미지 편집, 드로잉, 프레젠팅(presenting), 워드 프로세싱, 웹사이트 제작, 디스크 저작, 스프레드시트 작성, 게임하기, 전화하기, 화상 회의, 이메일 보내기, 인스턴트 메시징(instant messaging), 운동 지원, 디지털 사진촬영, 디지털 비디오 녹화, 웹 브라우징, 디지털 음악 재생, 및/또는 디지털 비디오 재생을 선택적으로 포함한다. 이러한 기능들을 수행하기 위한 실행가능한 명령어들은, 선택적으로, 하나 이상의 프로세서들에 의한 실행을 위해 구성된 비일시적 컴퓨터 판독가능 저장 매체 또는 다른 컴퓨터 프로그램 제품에 포함된다. 대안적으로, 또는 추가로, 이러한 기능들을 수행하기 위한 실행가능한 명령어들은, 선택적으로, 하나 이상의 프로세서들에 의한 실행을 위해 구성된 일시적 컴퓨터 판독가능 저장 매체 또는 다른 컴퓨터 프로그램 제품에 포함된다.
일부 실시예들에 따르면, 방법은, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행된다. 본 방법은 제1 사용자 인터페이스를 디스플레이하는 단계, 및 제1 사용자 인터페이스를 디스플레이하는 단계 동안 터치 감응형 표면 상의 입력을 검출하는 단계를 포함한다. 본 방법은, 제1 사용자 인터페이스를 디스플레이하는 단계 동안 입력을 검출하는 단계에 응답하여, 입력이 제1 미리정의된 기간 동안 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라, 제1 동작을 수행하는 단계; 및 입력이 제1 미리정의된 기간 동안 제1 세기 임계치 미만으로 유지되는 것을 포함하는 길게 누르기(long press) 기준들을 입력이 만족한다는 결정에 따라, 제1 동작과는 별개인 제2 동작을 수행하는 단계를 추가로 포함한다.
일부 실시예들에 따르면, 방법은, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행된다. 본 방법은 제1 사용자 인터페이스를 디스플레이하는 단계, 및 제1 사용자 인터페이스를 디스플레이하는 단계 동안 터치 감응형 표면 상의 입력을 검출하는 단계를 포함한다. 본 방법은, 제1 사용자 인터페이스를 디스플레이하는 단계 동안 입력을 검출하는 단계에 응답하여, 입력이 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라, 제1 동작을 수행하는 단계; 및 입력이 터치 감응형 표면을 가로질러 적어도 미리정의된 거리만큼 이동하였음을 포함하는 팬(pan) 기준들을 입력이 만족한다는 결정에 따라, 제1 동작과는 별개인 제2 동작을 수행하는 단계를 추가로 포함한다.
일부 실시예들에 따르면, 방법은, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행된다. 본 방법은 제1 사용자 인터페이스를 디스플레이하는 단계, 및 제1 사용자 인터페이스를 디스플레이하는 단계 동안 터치 감응형 표면 상의 입력을 검출하는 단계를 포함한다. 본 방법은, 제1 사용자 인터페이스를 디스플레이하는 단계 동안 입력을 검출하는 단계에 응답하여, 입력이 제1 세기 임계치를 만족하고 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라, 제1 동작을 수행하는 단계; 및 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 중지하는 것을 포함하는 탭 기준들을 입력이 만족한다는 결정에 따라, 제1 동작과는 별개인 제2 동작을 수행하는 단계를 추가로 포함한다.
일부 실시예들에 따르면, 방법은, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행된다. 본 방법은, 제1 소프트웨어 애플리케이션의 제1 사용자 인터페이스를 디스플레이하는 단계 - 제1 사용자 인터페이스는 복수의 사용자 인터페이스 객체들을 포함하고, 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체는 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트(application-independent set)와 연관됨 -; 포커스 선택자가 디스플레이 상에서 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체 위에 있는 동안, 접촉에 의한 입력의 제1 부분을 검출하는 단계; 및 입력의 제1 부분을 검출하는 단계에 응답하여 그리고 입력이 제1 세기 임계치를 만족하는 것을 포함하는 드러냄(reveal) 기준들을 입력의 제1 부분이 만족한다는 결정에 따라, 미리정의된 명령어들의 애플리케이션 독립적인 세트에 대한 프리뷰 콘텐츠(preview content)를 제공하는 단계를 포함하는, 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트를 실행하는 단계를 포함한다. 미리정의된 명령어들의 애플리케이션 독립적인 세트를 실행함으로써 수행되는 프리뷰 동작들은, 제1 사용자 인터페이스에서 제1 사용자 인터페이스 객체를 시각적으로 구별하는 것; 및 제1 사용자 인터페이스에서의 제1 사용자 인터페이스 객체의 시각적 구별의 시작에 후속하여: 입력의 제1 부분에 후속하는 입력의 제2 부분을 수신하는 것; 및 입력이 제2 세기 임계치를 만족하는 것을 포함하는 프리뷰 기준들을 입력의 제2 부분이 만족한다는 결정에 따라, 제1 사용자 인터페이스 상에 오버레이된 프리뷰 영역을 디스플레이하는 것을 포함한다. 프리뷰 영역은 프리뷰 콘텐츠를 포함한다.
일부 실시예들에 따르면, 방법은, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행된다. 본 방법은, 제1 소프트웨어 애플리케이션의 제1 사용자 인터페이스를 디스플레이하는 단계 - 제1 사용자 인터페이스는 복수의 사용자 인터페이스 객체들을 포함하고, 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체는 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트와 연관됨 -; 포커스 선택자가 디스플레이 상에서 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체 위에 있는 동안, 접촉에 의한 입력의 제1 부분을 검출하는 단계; 및 입력의 제1 부분을 검출하는 단계에 응답하여 그리고 입력의 제1 부분이 프리뷰 기준들을 충족한다는 결정에 따라, 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트를 실행하는 단계를 포함한다. 미리정의된 명령어들의 애플리케이션 독립적인 세트를 실행함으로써 수행되는 프리뷰 동작들은, 제1 사용자 인터페이스 상에 오버레이된 프리뷰 영역을 디스플레이하는 것; 입력의 제1 부분을 검출한 후에, 입력의 제2 부분을 검출하는 것; 및 접촉에 의한 입력의 제2 부분을 검출하는 것에 응답하여, 입력의 제2 부분이 사용자 인터페이스 대체 기준들을 충족한다는 결정에 따라, 제1 사용자 인터페이스의 디스플레이를 제1 사용자 인터페이스와는 별개인 제2 사용자 인터페이스로 대체하는 것을 포함한다.
일부 실시예들에 따르면, 방법은, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행된다. 본 방법은, 디스플레이 상에 소프트웨어 애플리케이션의 사용자 인터페이스를 디스플레이하는 단계; 디스플레이 상에 소프트웨어 애플리케이션의 사용자 인터페이스를 디스플레이하는 단계 동안, 소프트웨어 애플리케이션의 사용자 인터페이스에 대응하는 위치에서 터치 감응형 표면 상의 입력을 검출하는 단계; 및 입력을 검출하는 단계에 응답하여, 입력에 대응하는 세기 정보를 명령어들의 애플리케이션 독립적인 세트로부터 소프트웨어 애플리케이션으로 전송하는 단계를 포함한다. 세기 정보는 하나 이상의 센서들에 할당되는 기준 세기; 및 입력의 검출된 세기에 대응하는 특성 세기를 포함한다.
일부 실시예들에 따르면, 방법은, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행된다. 본 방법은, 디스플레이 상에 소프트웨어 애플리케이션의 제1 사용자 인터페이스를 디스플레이하는 단계; 소프트웨어 애플리케이션의 제1 사용자 인터페이스를 디스플레이하는 단계 동안, 터치 감응형 표면 상의 입력을 검출하는 단계; 및 입력을 검출하는 단계 동안: 입력의 세기에 대한 변화들을 검출하는 것에 응답하여, 입력의 세기에 대한 변화들을 나타내는 제1 진행 표시자(progress indicator)의 값을 명령어들의 애플리케이션 독립적인 세트로부터 소프트웨어 애플리케이션에 제공하는 단계; 및 명령어들의 애플리케이션 독립적인 세트와는 상이한 소프트웨어 애플리케이션 내의 명령어들의 세트 및 제1 진행 표시자의 값에 따라 제1 사용자 인터페이스를 업데이트하는 단계를 포함한다.
일부 실시예들에 따르면, 방법은, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행된다. 본 방법은 디스플레이 상에, 운영 체제 내에서 구동되는 제1 제3자 애플리케이션의 사용자 인터페이스를 디스플레이하는 단계를 포함한다. 디바이스의 능력들은 운영 체제의 운영 체제 프레임워크를 통해 제1 제3자 애플리케이션에 노출된다. 운영 체제 프레임워크는 디바이스에 의해 인식될 수 있는 복수의 제스처 클래스들을 정의한다. 제1 제스처 클래스는 제1 제스처 인식 기준들이 충족될 때 터치 감응형 표면 상에서 검출되는 입력을 제1 제스처로서 인식하기 위한 제1 제스처 인식 기준들과 연관된다. 제1 제3자 애플리케이션은 제1 동작을 위해 사용자 인터페이스의 제1 부분을 제1 제스처 클래스로부터의 제1 제스처와 연관시켰다. 제1 제3자 애플리케이션은 제1 동작을 위해 사용자 인터페이스의 제1 부분과 연관된 제1 제스처에 대한 제1 세기 기준들을 특정하였다. 본 방법은 또한, 디스플레이 상에 제1 제3자 애플리케이션의 사용자 인터페이스를 디스플레이하는 단계 동안, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분에 대응하는 위치에서 터치 감응형 표면 상의 입력을 검출하는 단계를 포함한다. 본 방법은, 입력을 검출하는 단계에 응답하여: 입력이 제1 제스처 인식 기준들을 충족하고 입력이 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족한다는 결정에 따라, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제1 동작을 수행하는 단계; 및 입력이 제1 제스처 인식 기준들을 충족하지만 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족하지 않는다는 결정에 따라, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제1 동작의 수행을 보류하는 단계를 추가로 포함한다.
일부 실시예들에 따르면, 방법은, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행된다. 본 방법은 디스플레이 상에 사용자 인터페이스를 디스플레이하는 단계를 포함한다. 본 방법은 또한, 사용자 인터페이스를 디스플레이하는 단계 동안, 터치 감응형 표면 상의 입력을 검출하는 단계; 및 제1 사용자 인터페이스를 디스플레이하는 단계 동안 입력을 검출하는 단계에 응답하여 그리고 입력을 검출하는 단계 동안: 입력이 제1 타이밍 기준들 및 제1 세기 입력 기준들을 만족한다는 결정에 따라, 제1 동작을 수행하는 단계를 포함한다. 제1 타이밍 기준들은 제1 기간이 경과하는 동안 입력이 터치 감응형 표면 상에 유지될 것을 요구한다. 제1 세기 입력 기준들은 제1 기간의 끝에 또는 그에 후속하여 입력이 제1 세기 임계치를 만족할 것을 요구한다.
일부 실시예들에 따르면, 방법은, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행된다. 본 방법은 디스플레이 상에 사용자 인터페이스를 디스플레이하는 단계를 포함한다. 본 방법은 또한, 사용자 인터페이스를 디스플레이하는 단계 동안, 터치 감응형 표면 상의 입력을 검출하는 단계; 및 제1 사용자 인터페이스를 디스플레이하는 단계 동안 입력을 검출하는 단계에 응답하여 그리고 입력을 검출하는 단계 동안: 입력이 활성화 세기 임계치를 만족한다는 결정에 따라, 제1 동작을 수행하는 단계를 포함한다. 활성화 세기 임계치는 시간 경과에 따라 제1 세기 값으로부터 감소되는 제1 세기 임계치 성분을 포함한다.
일부 실시예들에 따르면, 전자 디바이스는 사용자 인터페이스를 디스플레이하도록 구성된 디스플레이 유닛, 접촉들을 수신하는 터치 감응형 표면 유닛, 터치 감응형 표면 유닛과의 접촉들의 세기를 검출하는 하나 이상의 센서 유닛들, 및 디스플레이 유닛, 터치 감응형 표면 유닛 및 하나 이상의 센서 유닛들과 결합된 프로세싱 유닛을 포함한다. 프로세싱 유닛은 길게 누르기 제스처와 깊게 누르기 입력을 구별하도록 그리고 길게 누르기 제스처 및 깊게 누르기 입력에 응답하여 별개의 동작들을 수행하도록 구성된다. 보다 구체적으로는, 프로세싱 유닛은, 제1 사용자 인터페이스의 디스플레이를 인에이블하도록, 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안, 터치 감응형 표면 유닛 상의 입력을 검출하도록, 그리고 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 입력이 제1 미리정의된 기간 동안 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라, 제1 동작을 수행하도록, 그리고 입력이 제1 미리정의된 기간 동안 제1 세기 임계치 미만으로 유지되는 것을 포함하는 길게 누르기 기준들을 입력이 만족한다는 결정에 따라, 제2 동작을 수행하도록 구성된다.
일부 실시예들에 따르면, 전자 디바이스는 사용자 인터페이스를 디스플레이하도록 구성된 디스플레이 유닛, 접촉들을 수신하는 터치 감응형 표면 유닛, 터치 감응형 표면 유닛과의 접촉들의 세기를 검출하는 하나 이상의 센서 유닛들, 및 디스플레이 유닛, 터치 감응형 표면 유닛 및 하나 이상의 센서 유닛들과 결합된 프로세싱 유닛을 포함한다. 프로세싱 유닛은 팬 제스처(pan gesture)와 깊게 누르기 입력을 구별하도록 그리고 팬 제스처 및 깊게 누르기 입력에 응답하여 별개의 동작들을 수행하도록 구성된다. 보다 구체적으로는, 프로세싱 유닛은, 제1 사용자 인터페이스의 디스플레이를 인에이블하도록, 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안, 터치 감응형 표면 유닛 상의 입력을 검출하도록, 그리고 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 입력이 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라, 제1 동작을 수행하도록, 그리고 입력이 터치 감응형 표면을 가로질러 적어도 미리정의된 거리만큼 이동하였음을 포함하는 팬 기준들을 입력이 만족한다는 결정에 따라, 제2 동작을 수행하도록 구성된다.
일부 실시예들에 따르면, 전자 디바이스는 사용자 인터페이스를 디스플레이하도록 구성된 디스플레이 유닛, 접촉들을 수신하는 터치 감응형 표면 유닛, 터치 감응형 표면 유닛과의 접촉들의 세기를 검출하는 하나 이상의 센서 유닛들, 및 디스플레이 유닛, 터치 감응형 표면 유닛 및 하나 이상의 센서 유닛들과 결합된 프로세싱 유닛을 포함한다. 프로세싱 유닛은 탭 제스처 입력과 깊게 누르기 입력을 구별하도록 그리고 탭 제스처 및 깊게 누르기 입력에 응답하여 별개의 동작들을 수행하도록 구성된다. 그러한 실시예들에서, 프로세싱 유닛은, 제1 사용자 인터페이스의 디스플레이를 인에이블하도록 구성되고, 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안, 터치 감응형 표면 유닛 상의 입력을 검출하도록, 그리고 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 입력이 제1 세기 임계치를 만족하고 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라, 제1 동작을 수행하도록, 그리고 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 중지하는 것을 포함하는 길게 누르기 기준들을 입력이 만족한다는 결정에 따라, 제2 동작을 수행하도록 추가로 구성된다.
일부 실시예들에 따르면, 전자 디바이스는 하나 이상의 사용자 인터페이스들을 디스플레이하도록 구성된 디스플레이 유닛, 사용자 입력들을 수신하는 터치 감응형 표면 유닛, 터치 감응형 표면 유닛과의 접촉들의 세기를 검출하는 하나 이상의 센서 유닛들, 및 디스플레이 유닛, 터치 감응형 표면 유닛 및 하나 이상의 센서 유닛들과 결합된 프로세싱 유닛을 포함한다. 프로세싱 유닛은, 제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 부분을 검출한 후에, 입력의 제2 부분을 검출하는 것; 및 접촉에 의한 입력의 제2 부분을 검출하는 것에 응답하여, 입력의 제2 부분이 사용자 인터페이스 대체 기준들을 충족한다는 결정에 따라, 제1 사용자 인터페이스의 디스플레이를 제1 사용자 인터페이스와는 별개인 제2 사용자 인터페이스로 대체하는 것을 포함한다.
일부 실시예들에 따르면, 전자 디바이스는 사용자 인터페이스를 디스플레이하도록 구성된 디스플레이 유닛, 사용자 입력들을 수신하도록 구성된 터치 감응형 표면 유닛, 터치 감응형 표면 유닛과의 접촉들의 세기를 검출하도록 구성된 하나 이상의 센서 유닛들, 및 디스플레이 유닛, 터치 감응형 표면 유닛 및 하나 이상의 센서 유닛들과 결합된 프로세싱 유닛을 포함한다. 프로세싱 유닛은, 디스플레이 유닛 상에, 소프트웨어 애플리케이션의 사용자 인터페이스의 디스플레이를 인에이블하도록; 디스플레이 유닛 상에 소프트웨어 애플리케이션의 사용자 인터페이스의 디스플레이를 인에이블하는 동안, 소프트웨어 애플리케이션의 사용자 인터페이스에 대응하는 위치에서 터치 감응형 표면 유닛 상의 입력을 검출하도록; 그리고 입력을 검출하는 것에 응답하여, 입력에 대응하는 세기 정보를 명령어들의 애플리케이션 독립적인 세트로부터 소프트웨어 애플리케이션으로 전송하도록 구성된다. 세기 정보는 하나 이상의 센서들에 할당되는 기준 세기; 및 입력의 검출된 세기에 대응하는 특성 세기를 포함한다.
일부 실시예들에 따르면, 전자 디바이스는 사용자 인터페이스를 디스플레이하도록 구성된 디스플레이 유닛, 사용자 입력들을 수신하도록 구성된 터치 감응형 표면 유닛, 터치 감응형 표면 유닛과의 접촉들의 세기를 검출하도록 구성된 하나 이상의 센서 유닛들, 및 디스플레이 유닛, 터치 감응형 표면 유닛 및 하나 이상의 센서 유닛들과 결합된 프로세싱 유닛을 포함한다. 프로세싱 유닛은, 디스플레이 유닛 상에, 소프트웨어 애플리케이션의 제1 사용자 인터페이스의 디스플레이를 인에이블하도록; 소프트웨어 애플리케이션의 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안, 터치 감응형 표면 유닛 상의 입력을 검출하도록; 그리고 입력을 검출하는 동안: 입력의 세기에 대한 변화들을 검출하는 것에 응답하여, 입력의 세기에 대한 변화들을 나타내는 제1 진행 표시자의 값을 명령어들의 애플리케이션 독립적인 세트로부터 소프트웨어 애플리케이션에 제공하도록; 그리고 명령어들의 애플리케이션 독립적인 세트와는 상이한 소프트웨어 애플리케이션 내의 명령어들의 세트 및 제1 진행 표시자의 값에 따라 제1 사용자 인터페이스를 업데이트하도록 구성된다.
일부 실시예들에 따르면, 사용자 인터페이스들을 디스플레이하도록 구성된 디스플레이 유닛; 접촉들을 수신하도록 구성된 터치 감응형 표면 유닛; 터치 감응형 표면 유닛 상의 접촉들의 세기를 검출하도록 구성된 하나 이상의 센서 유닛들; 및 디스플레이 유닛, 터치 감응형 표면 유닛, 및 하나 이상의 센서 유닛들과 결합된 프로세싱 유닛. 프로세싱 유닛은, 디스플레이 유닛 상에, 운영 체제 내에서 구동되는 제1 제3자 애플리케이션의 사용자 인터페이스의 디스플레이를 인에이블하도록 구성된다. 디바이스의 능력들은 운영 체제의 운영 체제 프레임워크를 통해 제1 제3자 애플리케이션에 노출된다. 운영 체제 프레임워크는 디바이스에 의해 인식될 수 있는 복수의 제스처 클래스들을 정의한다. 제1 제스처 클래스는 제1 제스처 인식 기준들이 충족될 때 터치 감응형 표면 상에서 검출되는 입력을 제1 제스처로서 인식하기 위한 제1 제스처 인식 기준들과 연관된다. 제1 제3자 애플리케이션은 제1 동작을 위해 사용자 인터페이스의 제1 부분을 제1 제스처 클래스로부터의 제1 제스처와 연관시켰다. 제1 제3자 애플리케이션은 제1 동작을 위해 사용자 인터페이스의 제1 부분과 연관된 제1 제스처에 대한 제1 세기 기준들을 특정하였다. 프로세싱 유닛은 또한, 디스플레이 유닛 상에 제1 제3자 애플리케이션의 사용자 인터페이스의 디스플레이를 인에이블하는 동안, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분에 대응하는 위치에서 터치 감응형 표면 상의 입력을 검출하도록; 그리고 입력을 검출하는 것에 응답하여: 입력이 제1 제스처 인식 기준들을 충족하고 입력이 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족한다는 결정에 따라, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제1 동작을 수행하도록; 그리고 입력이 제1 제스처 인식 기준들을 충족하지만 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족하지 않는다는 결정에 따라, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제1 동작의 수행을 보류하도록 구성된다.
일부 실시예들에 따르면, 전자 디바이스는 사용자 인터페이스를 디스플레이하도록 구성된 디스플레이 유닛, 접촉들을 수신하는 터치 감응형 표면 유닛, 터치 감응형 표면 유닛과의 접촉들의 세기를 검출하는 하나 이상의 센서 유닛들, 및 디스플레이 유닛, 터치 감응형 표면 유닛 및 하나 이상의 센서 유닛들과 결합된 프로세싱 유닛을 포함한다. 프로세싱 유닛은, 디스플레이 유닛 상에 사용자 인터페이스의 디스플레이를 인에이블하도록; 사용자 인터페이스의 디스플레이를 인에이블하는 동안, 터치 감응형 표면 유닛 상의 입력을 검출하도록; 그리고 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여 그리고 입력을 검출하는 동안, 입력이 제1 타이밍 기준들 및 제1 세기 입력 기준들을 만족한다는 결정에 따라, 제1 동작을 수행하도록 구성된다. 제1 타이밍 기준들은 제1 기간이 경과하는 동안 입력이 터치 감응형 표면 유닛 상에 유지될 것을 요구한다. 제1 세기 입력 기준들은 제1 기간의 끝에 또는 그에 후속하여 입력이 제1 세기 임계치를 만족할 것을 요구한다.
일부 실시예들에 따르면, 전자 디바이스는 사용자 인터페이스를 디스플레이하도록 구성된 디스플레이 유닛, 접촉들을 수신하는 터치 감응형 표면 유닛, 터치 감응형 표면 유닛과의 접촉들의 세기를 검출하는 하나 이상의 센서 유닛들, 및 디스플레이 유닛, 터치 감응형 표면 유닛 및 하나 이상의 센서 유닛들과 결합된 프로세싱 유닛을 포함한다. 프로세싱 유닛은, 디스플레이 유닛 상에 사용자 인터페이스의 디스플레이를 인에이블하도록; 사용자 인터페이스의 디스플레이를 인에이블하는 동안, 터치 감응형 표면 유닛 상의 입력을 검출하도록; 그리고 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여 그리고 입력을 검출하는 동안: 입력이 활성화 세기 임계치를 만족한다는 결정에 따라, 제1 동작을 수행하도록 구성된다. 활성화 세기 임계치는 시간 경과에 따라 제1 세기 값으로부터 감소되는 제1 세기 임계치 성분을 포함한다.
일부 실시예들에 따르면, 전자 디바이스는 디스플레이, 터치 감응형 표면, 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들, 하나 이상의 프로세서들, 메모리, 및 하나 이상의 프로그램들을 포함하고; 하나 이상의 프로그램들은 메모리에 저장되며 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 하나 이상의 프로그램들은 본 명세서에 기술된 방법들 중 임의의 방법의 동작들을 수행하거나 또는 그들의 수행을 야기하기 위한 명령어들을 포함한다. 일부 실시예들에서, 전자 디바이스는 전자 디바이스와 연관된 스타일러스로부터 신호들을 검출하기 위한 하나 이상의 센서들을 포함한다. 일부 실시예들에 따르면, 컴퓨터 판독가능 저장 매체(예컨대, 비일시적 컴퓨터 판독가능 저장 매체, 또는 대안적으로, 일시적 컴퓨터 판독가능 저장 매체)는, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에 의해 실행될 때, 디바이스로 하여금 본 명세서에 기술된 방법들 중 임의의 방법의 동작들을 수행하게 하거나 또는 그들의 수행을 야기하게 하기 위한 명령어들을 내부에 저장하고 있다. 일부 실시예들에 따르면, 디스플레이, 터치 감응형 표면, 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들, 메모리, 및 메모리에 저장된 하나 이상의 프로그램들을 실행하는 하나 이상의 프로세서들을 갖는 전자 디바이스 상의 그래픽 사용자 인터페이스는, 본 명세서에 기술된 방법들 중 임의의 방법에서 기술된 바와 같이, 입력들에 응답하여 업데이트되는, 위에서 기술된 방법들 중 임의의 방법에서 디스플레이된 요소들 중 하나 이상을 포함한다. 일부 실시예들에 따르면, 전자 디바이스는 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들; 및 본 명세서에 기술되는 방법들 중 임의의 방법의 동작들을 수행하거나 또는 그들의 수행을 야기하기 위한 수단을 포함한다. 일부 실시예들에 따르면, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 사용하기 위한 정보 프로세싱 장치는, 본 명세서에 기술된 방법들 중 임의의 방법의 동작들을 수행하거나 또는 그들의 수행을 야기하기 위한 수단을 포함한다.
이와 같이, 디스플레이들, 터치 감응형 표면들, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스들은 터치 입력들의 프로세싱을 위한 보다 빠르고 보다 효율적인 방법들 및 인터페이스들을 구비하며, 이에 의해 그러한 디바이스들의 유효성 및 효율, 및 그러한 디바이스들에서의 사용자 만족도를 향상시킨다. 또한, 그러한 방법들 및 인터페이스들은 프로세싱 전력을 감소시키고/시키거나, 메모리 사용량을 감소시키고/시키거나, 배터리 사용량을 감소시키고/시키거나, 불필요한 또는 관련없는 또는 반복적인 입력들을 감소시킨다. 더욱이, 그러한 방법들 및 인터페이스들은 터치 입력들의 프로세싱을 위한 종래의 방법들을 보완하거나 대체할 수 있다.
기술된 다양한 실시예들의 더 나은 이해를 위해, 유사한 도면 부호들이 도면들 전체에 걸쳐 대응하는 부분들을 나타내는 아래의 도면들과 관련하여, 아래의 발명을 실시하기 위한 구체적인 내용이 참조되어야 한다.
도 1a는 일부 실시예들에 따른, 터치 감응형 디스플레이를 갖는 휴대용 다기능 디바이스를 예시하는 블록도이다.
도 1b는 일부 실시예들에 따른, 이벤트 처리를 위한 예시적인 컴포넌트들을 예시하는 블록도이다.
도 1c는 일부 실시예들에 따른, 이벤트 객체의 전송을 예시하는 블록도이다.
도 2는 일부 실시예들에 따른, 터치 스크린을 갖는 휴대용 다기능 디바이스를 예시한다.
도 3은 일부 실시예들에 따른, 디스플레이 및 터치 감응형 표면을 갖는 예시적인 다기능 디바이스의 블록도이다.
도 4는 일부 실시예들에 따른 예시적인 전자 스타일러스의 블록도이다.
도 5a 및 도 5b는 일부 실시예들에 따른, 터치 감응형 표면에 대한 스타일러스의 위치 상태를 예시한다.
도 6a는 일부 실시예들에 따른, 휴대용 다기능 디바이스 상의 애플리케이션들의 메뉴에 대한 예시적인 사용자 인터페이스를 예시한다.
도 6b는 일부 실시예들에 따른, 디스플레이와 별개인 터치 감응형 표면을 갖는 다기능 디바이스에 대한 예시적인 사용자 인터페이스를 예시한다.
도 7a 내지 도 7bbb는 일부 실시예들에 따른, 터치 입력들 및 연관된 정보를 프로세싱하기 위한 예시적인 사용자 인터페이스들을 예시한다.
도 8a 내지 도 8e는 일부 실시예들에 따른, 길게 누르기 입력 및 깊게 누르기 입력의 중의성을 해소하는(disambiguating) 방법을 예시하는 흐름도들이다.
도 9a 내지 도 9d는 일부 실시예들에 따른, 팬 제스처 입력 및 깊게 누르기 입력의 중의성을 해소하는 방법을 예시하는 흐름도들이다.
도 10a 내지 도 10d는 일부 실시예들에 따른, 탭 제스처 입력 및 깊게 누르기 입력의 중의성을 해소하는 방법을 예시하는 흐름도들이다.
도 11a는 일부 실시예들에 따른, 미리정의된 명령어들의 애플리케이션 독립적인 세트를 사용하여 터치 입력들을 프로세싱하는 방법을 예시하는 고레벨 흐름도이다.
도 11b 내지 도 11d는 일부 실시예들에 따른, 미리정의된 명령어들의 애플리케이션 독립적인 세트를 사용하여 터치 입력들을 프로세싱하는 방법들을 예시하는 흐름도들이다.
도 12a 및 도 12b는 일부 실시예들에 따른, 미리정의된 데이터 구조를 사용하여 터치 입력을 프로세싱하는 방법을 예시하는 흐름도들이다.
도 13a 및 도 13b는 일부 실시예들에 따른, 힘 제스처 진행 표시자를 사용하여 터치 입력을 프로세싱하는 방법을 예시하는 흐름도들이다.
도 14a 내지 도 14c는 일부 실시예들에 따른, 제3자 애플리케이션들에 의해 특정된 세기 기준들에 기초하여 터치 입력들을 프로세싱하는 방법을 예시하는 흐름도들이다.
도 15a 및 도 15b는 일부 실시예들에 따른, 동적 임계치들에 기초하여 터치 입력들을 프로세싱하는 방법을 예시하는 흐름도들이다.
도 16a 및 도 16b는 일부 실시예들에 따른, 동적 임계치들에 기초하여 터치 입력들을 프로세싱하는 방법을 예시하는 흐름도들이다.
도 17 내지 도 23은 일부 실시예들에 따른 전자 디바이스의 기능 블록도들이다.
많은 전자 디바이스들은 터치 입력들에 응답하여 디스플레이된 사용자 인터페이스 객체들의 소정 조작들을 허용하는 애플리케이션들을 저장한다. 그러나, 종래의 방법들 및 사용자 인터페이스들은 비효율적이다. 개시된 실시예들은 이러한 제한들 및 결점들을 해소한다.
이하에서, 도 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는 제3자 애플리케이션들에 의해 특정된 세기 기준들에 기초하여 터치 입력들을 프로세싱하는 방법을 예시하는 흐름도들이다. 도 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")는 문맥상 명백히 달리 나타내지 않는다면 복수의 형태도 마찬가지로 포함하려는 것으로 의도된다. 또한, 본 명세서에서 사용되는 바와 같은 "및/또는"이라는 용어는 열거되는 연관된 항목들 중 하나 이상의 항목의 임의의 및 모든 가능한 조합들을 나타내고 그들을 포괄하는 것임이 이해될 것이다. 용어들 "포함한다(include)", "포함하는(including)", "포함한다(comprise)", 및/또는 "포함하는(comprising)"은, 본 명세서에서 사용될 때, 언급된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않음이 추가로 이해될 것이다.
본 명세서에서 사용되는 바와 같이, "~는 경우(if)"라는 용어는, 선택적으로, 문맥에 따라 "~할 때(when)" 또는 "~ 시(upon)" 또는 "결정하는 것에 응답하여(in response to determining)" 또는 "검출하는 것에 응답하여(in response to detecting)"를 의미하는 것으로 해석된다. 유사하게, 구문 "결정된 경우" 또는 "[언급된 상태 또는 이벤트가] 검출된 경우"는, 선택적으로, 문맥에 따라 "결정 시" 또는 "결정한 것에 응답하여" 또는 "[언급된 상태 또는 이벤트] 검출 시" 또는 "[언급된 상태 또는 이벤트를] 검출한 것에 응답하여"를 의미하는 것으로 해석된다.
전자 디바이스들, 그러한 디바이스들에 대한 사용자 인터페이스들, 및 그러한 디바이스들을 사용하기 위한 연관된 프로세스들의 실시예들이 기술된다. 일부 실시예들에서, 디바이스는 PDA 및/또는 음악 재생기 기능들과 같은 다른 기능들을 또한 포함하는 휴대용 통신 디바이스, 예컨대 모바일 전화기이다. 휴대용 다기능 디바이스들의 예시적인 실시예들은 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 아이폰(iPhone)®, 아이팟 터치(iPod Touch)®, 및 아이패드(iPad)® 디바이스들을 제한 없이 포함한다. 터치 감응형 표면들(예를 들면, 터치 스크린 디스플레이들 및/또는 터치 패드들)을 갖는 랩톱 또는 태블릿 컴퓨터들과 같은 다른 휴대용 전자 디바이스들이 선택적으로 사용된다. 일부 실시예들에서, 디바이스는 휴대용 통신 디바이스가 아니라 터치 감응형 표면(예컨대, 터치 스크린 디스플레이 및/또는 터치 패드)을 갖는 데스크톱 컴퓨터임이 또한 이해되어야 한다.
이하의 논의에서, 디스플레이 및 터치 감응형 표면을 포함하는 전자 디바이스가 기술된다. 그러나, 전자 디바이스가 선택적으로 물리적 키보드, 마우스 및/또는 조이스틱과 같은 하나 이상의 다른 물리적 사용자 인터페이스 디바이스들을 포함한다는 것이 이해되어야 한다.
디바이스는 전형적으로 다음 중 하나 이상과 같은 다양한 애플리케이션들을 지원한다: 드로잉 애플리케이션, 프레젠테이션 애플리케이션, 워드 프로세싱 애플리케이션, 웹사이트 제작 애플리케이션, 디스크 저작 애플리케이션, 스프레드시트 애플리케이션, 게임 애플리케이션, 전화 애플리케이션, 화상 회의 애플리케이션, 이메일 애플리케이션, 인스턴트 메시징 애플리케이션, 운동 지원 애플리케이션, 사진 관리 애플리케이션, 디지털 카메라 애플리케이션, 디지털 비디오 카메라 애플리케이션, 웹 브라우징 애플리케이션, 디지털 음악 재생기 애플리케이션, 및/또는 디지털 비디오 재생기 애플리케이션.
디바이스 상에서 실행되는 다양한 애플리케이션들은, 선택적으로, 터치 감응형 표면과 같은 적어도 하나의 보편적인 물리적 사용자 인터페이스 디바이스를 사용한다. 터치 감응형 표면의 하나 이상의 기능들뿐만 아니라 디바이스 상에 디스플레이되는 대응하는 정보는, 선택적으로, 하나의 애플리케이션으로부터 다음 애플리케이션으로 그리고/또는 각각의 애플리케이션 내에서 조정되고/되거나 변경된다. 이러한 방식으로, 디바이스의 (터치 감응형 표면과 같은) 통상적인 물리적 아키텍처는, 선택적으로, 사용자에게 직관적이고 투명한 사용자 인터페이스들을 이용하여 다양한 애플리케이션들을 지원한다.
이제, 터치 감응형 디스플레이들을 갖는 휴대용 디바이스들의 실시예들에 주목한다. 도 1a는 일부 실시예들에 따른, 터치 감응형 디스플레이 시스템(112)을 갖는 휴대용 다기능 디바이스(100)를 예시하는 블록도이다. 터치 감응형 디스플레이 시스템(112)은 때때로 편의상 "터치 스크린"이라고 지칭되고, 때때로 터치 감응형 디스플레이로 단순히 지칭된다. 디바이스(100)는 메모리(102)(선택적으로, 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함함), 메모리 제어기(122), 하나 이상의 프로세싱 유닛들(CPU)(120), 주변기기 인터페이스(118), RF 회로부(108), 오디오 회로부(110), 스피커(111), 마이크로폰(113), 입/출력(I/O) 서브시스템(106), 기타 입력 또는 제어 디바이스들(116) 및 외부 포트(124)를 포함한다. 디바이스(100)는 선택적으로 하나 이상의 광 센서(optical sensor)들(164)을 포함한다. 디바이스(100)는, 선택적으로, 디바이스(100) 상의 접촉들의 세기를 검출하기 위한 하나 이상의 세기 센서(165)(예컨대, 디바이스(100)의 터치 감응형 디스플레이 시스템(112)과 같은 터치 감응형 표면)를 포함한다. 디바이스(100)는, 선택적으로, 디바이스(100) 상의 촉각적 출력들을 생성하기 위한(예컨대, 디바이스(100)의 터치 감응형 디스플레이 시스템(112) 또는 디바이스(300)의 터치 패드(355)와 같은 터치 감응형 표면 상의 촉각적 출력들을 생성하기 위한) 하나 이상의 촉각적 출력 생성기들(163)을 포함한다. 이들 컴포넌트는 선택적으로 하나 이상의 통신 버스 또는 신호 라인(103)을 통해 통신한다.
명세서 및 청구범위에 사용되는 바와 같이, "촉각적 출력"이라는 용어는 디바이스의 이전 위치에 대한 디바이스의 물리적 변위, 디바이스의 다른 컴포넌트(예컨대, 하우징)에 대한 디바이스의 컴포넌트(예컨대, 터치 감응형 표면)의 물리적 변위, 또는 사용자의 촉각을 이용하여 사용자에 의해 검출될 디바이스의 질량 중심에 대한 컴포넌트의 변위를 지칭한다. 예컨대, 디바이스 또는 디바이스의 컴포넌트가 터치에 민감한 사용자의 표면(예컨대, 사용자의 손의 손가락, 손바닥, 또는 다른 부위)과 접촉하는 상황에서, 물리적 변위에 의해 생성된 촉각적 출력은 사용자에 의해 디바이스 또는 디바이스의 컴포넌트의 물리적 특성들의 인지된 변화에 대응하는 촉감(tactile sensation)으로서 해석될 것이다. 예컨대, 터치 감응형 표면(예컨대, 터치 감응형 디스플레이 또는 트랙패드)의 이동은, 선택적으로, 사용자에 의해 물리적 액추에이터 버튼의 "다운 클릭(down click)" 또는 "업 클릭(up click)"으로서 해석된다. 일부 경우들에 있어서, 사용자는 사용자의 이동에 의해 물리적으로 눌리는(예컨대, 변위되는) 터치 감응형 표면과 연관된 물리적 액추에이터 버튼의 이동이 없는 경우에도 "다운 클릭" 또는 "업 클릭"과 같은 촉감을 느낄 것이다. 다른 예로서, 터치 감응형 표면의 이동은, 터치 감응형 표면의 평탄성의 변화가 없는 경우에도, 선택적으로, 사용자에 의해 터치 감응형 표면의 "거칠기(roughness)"로서 해석 또는 감지된다. 사용자에 의한 터치의 그러한 해석들이 사용자의 개별화된 감각 인지(sensory perception)에 영향을 받기 쉬울 것이지만, 대다수의 사용자들에게 보편적인 많은 터치 감각 인지가 있다. 따라서, 촉각적 출력이 사용자의 특정 감각 인지(예컨대, "업 클릭", "다운 클릭", "거칠기")에 대응하는 것으로서 기술될 때, 달리 언급되지 않는다면, 생성된 촉각적 출력은 전형적인(또는 평균적인) 사용자에 대한 기술된 감각 인지를 생성할 디바이스 또는 그의 컴포넌트의 물리적 변위에 대응한다.
디바이스(100)는 휴대용 다기능 디바이스의 일례일 뿐이고, 디바이스(100)는, 선택적으로, 도시된 것보다 더 많거나 더 적은 컴포넌트들을 갖거나, 선택적으로, 2개 이상의 컴포넌트들을 조합하거나, 또는 선택적으로, 컴포넌트들의 상이한 구성 또는 배열을 갖는다는 것이 이해되어야 한다. 도 1a에 도시된 다양한 컴포넌트들은 하나 이상의 신호 프로세싱 및/또는 주문형 집적 회로(application specific integrated circuit)를 비롯한, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현된다.
메모리(102)는, 선택적으로, 고속 랜덤 액세스 메모리를 포함하고, 또한 선택적으로, 하나 이상의 자기 디스크 저장 디바이스, 플래시 메모리 디바이스, 또는 다른 비휘발성 솔리드 스테이트 메모리 디바이스(non-volatile solid-state memory device)와 같은 비휘발성 메모리를 포함한다. CPU(들)(120) 및 주변기기 인터페이스(118)와 같은 디바이스(100)의 다른 컴포넌트들에 의한 메모리(102)에의 액세스는 선택적으로 메모리 제어기(122)에 의해 제어된다.
주변기기 인터페이스(118)는 디바이스의 입력 및 출력 주변기기들을 CPU(들)(120) 및 메모리(102)에 결합하는 데 사용될 수 있다. 하나 이상의 프로세서들(120)은 디바이스(100)에 대한 다양한 기능들을 수행하기 위해 그리고 데이터를 프로세싱하기 위해 메모리(102)에 저장된 다양한 소프트웨어 프로그램들 및/또는 명령어들의 세트들을 구동 또는 실행시킨다.
일부 실시예들에서, 주변기기 인터페이스(118), CPU(들)(120) 및 메모리 제어기(122)는, 선택적으로, 칩(104)과 같은 단일 칩 상에서 구현된다. 일부 다른 실시예들에서, 이들은 선택적으로 별개의 칩들 상에 구현된다.
RF(radio frequency) 회로부(108)는 전자기 신호들이라고도 지칭되는 RF 신호들을 수신 및 전송한다. RF 회로부(108)는 전기 신호들을 전자기 신호들로/로부터 변환하고, 전자기 신호들을 통해 통신 네트워크들 및 다른 통신 디바이스들과 통신한다. RF 회로부(108)는, 선택적으로, 안테나 시스템, RF 송수신기, 하나 이상의 증폭기들, 튜너, 하나 이상의 발진기들, 디지털 신호 프로세서, CODEC 칩셋, SIM(subscriber identity module) 카드, 메모리 등을 제한 없이 포함하는, 이들 기능들을 수행하기 위한 주지의 회로부를 포함한다. RF 회로부(108)는, 선택적으로, 월드 와이드 웹(World Wide Web, WWW)으로도 지칭되는 인터넷, 인트라넷 및/또는 무선 네트워크, 예컨대 셀룰러 전화 네트워크, 무선 근거리 네트워크(local area network, LAN) 및/또는 도시권 네트워크(metropolitan area network, MAN)와 같은 네트워크들 및 다른 디바이스들과 무선 통신에 의해 통신한다. 무선 통신은, 선택적으로, GSM(Global System for Mobile Communications), EDGE(Enhanced Data GSM Environment), HSDPA(high-speed downlink packet access), HSUPA(high-speed uplink packet access), EV-DO(Evolution, Data-Only), HSPA, HSPA+, DC-HSPDA(Dual-Cell HSPA), LTE(long term evolution), NFC(near field communication), W-CDMA(wideband code division multiple access), CDMA(code division multiple access), TDMA(time division multiple access), 블루투스(Bluetooth), Wi-Fi(Wireless Fidelity)(예컨대, IEEE 802.11a, IEEE 802.11ac, IEEE 802.11ax, IEEE 802.11b, IEEE 802.11g 및/또는 IEEE 802.11n), VoIP(voice over Internet Protocol), Wi-MAX, 이메일용 프로토콜(예컨대, IMAP(Internet message access protocol) 및/또는 POP(post office protocol)), 인스턴트 메시징(예컨대, XMPP(extensible messaging and presence protocol), SIMPLE(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions), IMPS(Instant Messaging and Presence Service)), 및/또는 SMS(Short Message Service), 또는 본 문헌의 출원일 현재 아직 개발되지 않은 통신 프로토콜을 포함한 임의의 다른 적합한 통신 프로토콜을 포함하지만 이들로 제한되지는 않는 복수의 통신 표준, 프로토콜 및 기술 중 임의의 것을 이용한다.
오디오 회로부(110), 스피커(111) 및 마이크로폰(113)은 사용자와 디바이스(100) 사이에서 오디오 인터페이스를 제공한다. 오디오 회로부(110)는 주변기기 인터페이스(118)로부터 오디오 데이터를 수신하고, 그 오디오 데이터를 전기 신호로 변환하고, 그 전기 신호를 스피커(111)로 송신한다. 스피커(111)는 전기 신호를 사람이 들을 수 있는 음파로 변환한다. 오디오 회로부(110)는 또한 마이크로폰(113)에 의해 음파로부터 변환된 전기 신호를 수신한다. 오디오 회로부(110)는 전기 신호를 오디오 데이터로 변환하고, 프로세싱을 위해 오디오 데이터를 주변기기 인터페이스(118)로 송신한다. 오디오 데이터는, 선택적으로, 주변기기 인터페이스(118)에 의해 메모리(102) 및/또는 RF 회로부(108)로부터 인출되고/되거나 메모리(102) 및/또는 RF 회로부(108)로 전송된다. 일부 실시예들에서, 오디오 회로부(110)는 또한 헤드셋 잭(예를 들면, 도 2의 212)을 포함한다. 헤드셋 잭은 출력-전용 헤드폰들, 또는 출력(예컨대, 한쪽 또는 양쪽 귀용 헤드폰) 및 입력(예컨대, 마이크로폰) 양쪽 모두를 갖는 헤드셋과 같은 분리가능한 오디오 입/출력 주변기기들과 오디오 회로부(110) 사이의 인터페이스를 제공한다.
I/O 서브시스템(106)은 터치 감응형 디스플레이 시스템(112) 및 기타 입력 또는 제어 디바이스들(116)과 같은, 디바이스(100) 상의 입/출력 주변기기들을 주변기기 인터페이스(118)와 결합한다. I/O 서브시스템(106)은 선택적으로 디스플레이 제어기(156), 광 센서 제어기(158), 세기 센서 제어기(159), 햅틱 피드백 제어기(161), 및 기타 입력 또는 제어 디바이스들을 위한 하나 이상의 입력 제어기들(160)을 포함한다. 하나 이상의 입력 제어기들(160)은 기타 입력 또는 제어 디바이스들(116)로부터/로 전기 신호들을 수신/전송한다. 기타 입력 또는 제어 디바이스들(116)은 선택적으로 물리적 버튼들(예컨대, 푸시 버튼, 로커 버튼(rocker button) 등), 다이얼, 슬라이더 스위치, 조이스틱, 클릭 휠 등을 포함한다. 일부 다른 실시예들에서, 입력 제어기(들)(160)는 선택적으로 키보드, 적외선 포트, USB 포트, 스타일러스, 및/또는 마우스와 같은 포인터 디바이스 중 임의의 것과 결합된다(또는 어떤 것에도 결합되지 않는다). 하나 이상의 버튼(예를 들면, 도 2의 208)은 선택적으로 스피커(111) 및/또는 마이크로폰(113)의 음량 제어를 위한 업/다운 버튼을 포함한다. 하나 이상의 버튼은 선택적으로 푸시 버튼(예를 들면, 도 2의 206)을 포함한다.
터치 감응형 디스플레이 시스템(112)은 디바이스와 사용자 사이의 입력 인터페이스 및 출력 인터페이스를 제공한다. 디스플레이 제어기(156)는 터치 감응형 디스플레이 시스템(112)으로부터/으로 전기 신호들을 수신 및/또는 전송한다. 터치 감응형 디스플레이 시스템(112)은 사용자에게 시각적 출력을 디스플레이한다. 시각적 출력은 선택적으로 그래픽, 텍스트, 아이콘, 비디오 및 이들의 임의의 조합(총칭하여 "그래픽"으로 지칭됨)을 포함한다. 일부 실시예들에서, 시각적 출력의 일부 또는 전부가 사용자 인터페이스 객체들에 대응한다.
터치 감응형 디스플레이 시스템(112)은 햅틱/촉각적 접촉에 기초하여 사용자로부터의 입력을 수용하는 터치 감응형 표면, 센서 또는 센서들의 세트를 갖는다. 터치 감응형 디스플레이 시스템(112) 및 디스플레이 제어기(156)는 (메모리(102) 내의 임의의 연관된 모듈들 및/또는 명령어들의 세트들과 함께) 터치 감응형 디스플레이 시스템(112) 상의 접촉(및 접촉의 임의의 이동 또는 중단)을 검출하고, 검출된 접촉을 터치 감응형 디스플레이 시스템(112) 상에 디스플레이되는 사용자 인터페이스 객체들(예컨대, 하나 이상의 소프트 키, 아이콘, 웹 페이지 또는 이미지)과의 상호작용으로 변환한다. 일부 실시예들에서, 터치 감응형 디스플레이 시스템(112)과 사용자 사이의 접촉 지점은 사용자의 손가락 또는 스타일러스에 대응된다.
터치 감응형 디스플레이 시스템(112)은, 선택적으로, LCD(액정 디스플레이) 기술, LPD(발광 중합체 디스플레이) 기술, 또는 LED(발광 다이오드) 기술을 이용하지만, 다른 실시예들에서는 다른 디스플레이 기술들이 이용된다. 터치 감응형 디스플레이 시스템(112) 및 디스플레이 제어기(156)는 선택적으로 터치 감응형 디스플레이 시스템(112)과의 하나 이상의 접촉 지점을 결정하기 위해 정전용량, 저항, 적외선 및 표면 음향파 기술들뿐만 아니라 다른 근접 센서 어레이들 또는 다른 요소들을 포함하지만 이들로 한정되지 않는, 현재 알려져 있거나 추후에 개발될 복수의 터치 감지 기술 중 임의의 것을 이용하여, 접촉 및 그의 임의의 이동 또는 중단을 검출한다. 일부 실시예들에서, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 아이폰®, 아이팟 터치®, 및 아이패드®에서 발견되는 것과 같은 투영형 상호 용량 감지 기술(projected mutual capacitance sensing technology)이 이용된다.
터치 감응형 디스플레이 시스템(112)은, 선택적으로, 100 dpi를 초과하는 비디오 해상도를 갖는다. 일부 실시예들에서, 터치 스크린 비디오 해상도는 400dpi를 초과한다(예를 들어, 500dpi, 800dpi, 또는 그 이상). 사용자는 선택적으로 스타일러스, 손가락 등과 같은 임의의 적합한 객체 또는 부속물을 이용하여 터치 감응형 디스플레이 시스템(112)과 접촉한다. 일부 실시예들에서, 사용자 인터페이스는 손가락 기반 접촉 및 제스처를 이용하여 작업하도록 설계되는데, 이는 터치 스크린 상의 손가락의 더 넓은 접촉 면적으로 인해 스타일러스 기반 입력보다 덜 정밀할 수 있다. 일부 실시예들에서, 디바이스는 대략적인 손가락 기반 입력을 사용자가 원하는 액션들을 수행하기 위한 정밀한 포인터/커서 위치 또는 커맨드로 변환한다.
일부 실시예들에서, 터치 스크린 외에도, 디바이스(100)는, 선택적으로, 특정 기능들을 활성화 또는 비활성화시키기 위한 터치 패드(도시되지 않음)를 포함한다. 일부 실시예들에서, 터치 패드는, 터치 스크린과는 달리, 시각적 출력을 디스플레이하지 않는 디바이스의 터치 감응형 영역이다. 터치 패드는 선택적으로 터치 감응형 디스플레이 시스템(112)과 별개인 터치 감응형 표면 또는 터치 스크린에 의해 형성된 터치 감응형 표면의 연장부이다.
디바이스(100)는 또한 다양한 컴포넌트들에 전력을 공급하기 위한 전력 시스템(162)을 포함한다. 전력 시스템(162)은, 선택적으로, 전력 관리 시스템, 하나 이상의 전원(예컨대, 배터리, 교류 전류(alternating current, AC)), 재충전 시스템, 전력 고장 검출 회로, 전력 변환기 또는 인버터, 전력 상태 표시자(예컨대, 발광 다이오드(LED)), 및 휴대용 디바이스들 내에서의 전력의 생성, 관리 및 분배와 연관된 임의의 다른 컴포넌트들을 포함한다.
디바이스(100)는 또한 선택적으로 하나 이상의 광 센서들(164)을 포함한다. 도 1a는 I/O 서브시스템(106) 내의 광 센서 제어기(158)와 결합된 광 센서를 도시한다. 광 센서(들)(164)는 선택적으로 전하-결합 소자(charge-coupled device, CCD) 또는 CMOS(complementary metal-oxide semiconductor) 포토트랜지스터들을 포함한다. 광 센서(들)(164)는 하나 이상의 렌즈를 통해 투영된 주변환경으로부터의 광을 수신하고, 그 광을 이미지를 나타내는 데이터로 변환한다. 이미징 모듈(143)(카메라 모듈이라고도 지칭됨)과 함께, 광 센서(들)(164)는 선택적으로, 정지 이미지들 및/또는 비디오를 캡처한다. 일부 실시예들에서, 광 센서는 디바이스(100)의 전면 상의 터치 감응형 디스플레이 시스템(112)의 반대편인 디바이스의 배면 상에 위치되어, 터치 스크린이 정지 및/또는 비디오 이미지 획득을 위한 뷰파인더로서 사용될 수 있게 된다. 일부 실시예들에서, 사용자의 이미지가 획득되도록(예를 들어, 사용자가 터치 스크린 상에서 다른 화상 회의 참가자들을 보는 동안, 화상 회의를 위해, 셀카를 위해 등) 다른 광 센서가 디바이스의 전면 상에 위치된다.
디바이스(100)는 또한, 선택적으로, 하나 이상의 접촉 세기 센서들(165)을 포함한다. 도 1a는 I/O 서브시스템(106) 내의 세기 센서 제어기(159)와 결합된 접촉 세기 센서를 도시한다. 접촉 세기 센서(들)(165)는 선택적으로 하나 이상의 압전 저항 스트레인 게이지, 용량성 힘 센서, 전기적 힘 센서, 압전 힘 센서, 광학적 힘 센서, 용량성 터치 감응형 표면, 또는 다른 세기 센서들(예를 들면, 터치 감응형 표면 상의 접촉 힘(또는 압력)을 측정하는 데 사용되는 센서들)을 포함한다. 접촉 세기 센서(들)(165)는 주변환경으로부터 접촉 세기 정보(예를 들면, 압력 정보 또는 압력 정보에 대한 대용물(proxy))를 수신한다. 일부 실시예들에서, 적어도 하나의 접촉 세기 센서는 터치 감응형 표면(예컨대, 터치 감응형 디스플레이 시스템(112))과 함께 위치(collocate)되거나 그에 근접한다. 일부 실시예들에서, 적어도 하나의 접촉 세기 센서가 디바이스(100)의 전면 상에 위치된 터치 스크린 디스플레이 시스템(112)의 반대편인 디바이스(100)의 배면 상에 위치된다.
디바이스(100)는 또한 선택적으로 하나 이상의 근접 센서들(166)을 포함한다. 도 1a는 주변기기 인터페이스(118)와 결합된 근접 센서(166)를 도시한다. 대안적으로, 근접 센서(166)는 I/O 서브시스템(106) 내의 입력 제어기(160)와 결합된다. 일부 실시예들에서, 근접 센서는 다기능 디바이스가 사용자의 귀 근처에 위치될 때(예를 들면, 사용자가 전화 통화를 하고 있을 때), 터치 감응형 디스플레이 시스템(112)을 끄고 디스에이블시킨다.
디바이스(100)는 또한, 선택적으로, 하나 이상의 촉각적 출력 생성기들(163)을 포함한다. 도 1a는 I/O 서브시스템(106) 내의 햅틱 피드백 제어기(161)와 결합된 촉각적 출력 생성기를 도시한다. 촉각적 출력 생성기(들)(163)는 선택적으로 스피커들 또는 다른 오디오 컴포넌트들과 같은 하나 이상의 전자음향 디바이스들 및/또는 모터, 솔레노이드, 전기활성 중합체, 압전 액추에이터, 정전 액추에이터, 또는 다른 촉각적 출력 생성 컴포넌트(예를 들면, 전기 신호들을 디바이스 상의 촉각적 출력들로 변환하는 컴포넌트)와 같이 에너지를 선형 모션(linear motion)으로 변환하는 전자기계 디바이스들을 포함한다. 일부 실시예들에서, 촉각적 출력 생성기(들)(163)는 햅틱 피드백 모듈(133)로부터 촉각적 피드백 생성 명령어들을 수신하여 디바이스(100)의 사용자에 의해 감지될 수 있는 디바이스(100) 상의 촉각적 출력들을 생성한다. 일부 실시예들에서, 적어도 하나의 촉각적 출력 생성기는 터치 감응형 표면(예컨대, 터치 감응형 디스플레이 시스템(112))과 함께 위치되거나 그에 근접하며, 선택적으로, 터치 감응형 표면을 수직으로(예컨대, 디바이스(100)의 표면 내/외로) 또는 측방향으로(예컨대, 디바이스(100)의 표면과 동일한 평면에서 전후로) 이동시킴으로써 촉각적 출력을 생성한다. 일부 실시예들에서, 적어도 하나의 촉각적 출력 생성기 센서는 디바이스(100)의 전면 상에 위치된 터치 감응형 디스플레이 시스템(112)의 반대편인 디바이스(100)의 배면 상에 위치된다.
디바이스(100)는 또한 선택적으로 디바이스의 위치(예컨대, 자세)에 관한 정보를 획득하기 위해 (예컨대, 관성 측정 유닛(IMU)의 일부로서) 하나 이상의 가속도계(167), 자이로스코프(168), 및/또는 자력계(169)를 포함한다. 도 1a는 주변기기 인터페이스(118)와 결합된 센서들(167, 168, 169)을 도시한다. 대안적으로, 센서들(167, 168, 169)은 선택적으로 I/O 서브시스템(106) 내의 입력 제어기(160)와 결합된다. 일부 실시예들에서, 하나 이상의 가속도계로부터 수신된 데이터의 분석에 기초하여 터치 스크린 디스플레이 상에 세로보기(portrait view) 또는 가로보기(landscape view)로 정보가 디스플레이된다. 디바이스(100)는 선택적으로 디바이스(100)의 위치에 관한 정보를 획득하기 위한 GPS(또는 GLONASS 또는 다른 글로벌 내비게이션 시스템) 수신기(도시하지 않음)를 포함한다.
일부 실시예들에서, 메모리(102)에 저장된 소프트웨어 컴포넌트들은 운영 체제(126), 통신 모듈(또는 명령어들의 세트)(128), 접촉/모션 모듈(또는 명령어들의 세트)(130), 위치결정 모듈(또는 명령어들의 세트)(131), 그래픽 모듈(또는 명령어들의 세트)(132), 햅틱 피드백 모듈(또는 명령어들의 세트)(133), 텍스트 입력 모듈(또는 명령어들의 세트)(134), 위성 위치확인 시스템(GPS) 모듈(또는 명령어들의 세트)(135), 및 애플리케이션들(또는 명령어들의 세트들)(136)을 포함한다. 게다가, 일부 실시예들에서, 메모리(102)는 도 1a 및 도 3에 도시된 바와 같이 디바이스/글로벌 내부 상태(157)를 저장한다. 디바이스/글로벌 내부 상태(157)는: 존재하는 경우, 어떤 애플리케이션들이 현재 활성인지를 나타내는 활성 애플리케이션 상태; 어떤 애플리케이션들, 뷰들 또는 다른 정보가 터치 감응형 디스플레이 시스템(112)의 다양한 영역들을 점유하는지를 나타내는 디스플레이 상태; 디바이스의 다양한 센서들 및 기타 입력 또는 제어 디바이스(116)들로부터 획득된 정보를 포함하는 센서 상태; 및 디바이스의 위치 및/또는 자세에 관한 위치 및/또는 자세 정보 중 하나 이상을 포함한다.
운영 체제(126)(예컨대, iOS, 다윈(Darwin), RTXC, 리눅스(LINUX), 유닉스(UNIX), OS X, 윈도우(WINDOWS), 또는 VxWorks와 같은 내장형 운영 체제)는 일반적인 시스템 태스크들(예컨대, 메모리 관리, 저장 디바이스 제어, 전력 관리 등)을 제어 및 관리하기 위한 다양한 소프트웨어 컴포넌트들 및/또는 드라이버들을 포함하고, 다양한 하드웨어 및 소프트웨어 컴포넌트들 사이의 통신을 용이하게 한다.
통신 모듈(128)은 하나 이상의 외부 포트(124)를 통한 다른 디바이스들과의 통신을 용이하게 하고, 또한 RF 회로부(108) 및/또는 외부 포트(124)에 의해 수신되는 데이터를 처리하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다. 외부 포트(124)(예컨대, 범용 직렬 버스(Universal Serial Bus, USB), 파이어와이어(FIREWIRE) 등)는 다른 디바이스들에 직접적으로 또는 네트워크(예컨대, 인터넷, 무선 LAN 등)를 통해 간접적으로 결합하도록 구성된다. 일부 실시예들에서, 외부 포트는 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 일부 아이폰®, 아이팟 터치®, 및 아이패드® 디바이스들에서 사용되는 30-핀 커넥터와 동일하거나 유사하고/하거나 호환가능한 멀티 핀(예컨대, 30-핀) 커넥터이다. 일부 실시예들에서, 외부 포트는 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 일부 아이폰®, 아이팟 터치®, 및 아이패드® 디바이스들에서 사용되는 라이트닝 커넥터(Lightning connector)와 동일하거나 유사하고/하거나 호환가능한 라이트닝 커넥터이다.
접촉/모션 모듈(130)은, 선택적으로, (디스플레이 제어기(156)와 함께) 터치 감응형 디스플레이 시스템(112), 및 다른 터치 감응형 디바이스들(예컨대, 터치 패드 또는 물리적 클릭 휠)과의 접촉을 검출한다. 접촉/모션 모듈(130)은, 접촉이 발생했는지 결정하는 것(예컨대, 손가락-다운 이벤트(finger-down event)를 검출하는 것), 접촉의 세기(예컨대, 접촉의 힘 또는 압력, 또는 접촉의 힘 또는 압력에 대한 대체물)를 결정하는 것, 접촉의 이동이 있는지 결정하고 터치 감응형 표면을 가로지르는 이동을 추적하는 것(예컨대, 하나 이상의 손가락-드래그 이벤트(finger-dragging event)를 검출하는 것), 및 접촉이 중지되었는지 결정하는 것(예컨대, 손가락-업 이벤트(finger-up event) 또는 접촉 중단을 검출하는 것)과 같은, 접촉(예를 들어, 손가락에 의한, 또는 스타일러스에 의한)의 검출에 관련된 다양한 동작들을 수행하기 위한 소프트웨어 컴포넌트들을 포함한다. 접촉/모션 모듈(130)은 터치 감응형 표면으로부터 접촉 데이터를 수신한다. 일련의 접촉 데이터에 의해 표현되는 접촉 지점의 이동을 결정하는 것은, 선택적으로, 접촉 지점의 속력(크기), 속도(크기 및 방향), 및/또는 가속도(크기 및/또는 방향의 변화)를 결정하는 것을 포함한다. 이들 동작들은, 선택적으로, 단일 접촉들(예컨대, 한 손가락 접촉들 또는 스타일러스 접촉들)에 또는 다수의 동시 접촉들(예컨대, "멀티터치"/다수의 손가락 접촉 및/또는 스타일러스 접촉)에 적용된다. 일부 실시예들에서, 접촉/모션 모듈(130) 및 디스플레이 제어기(156)는 터치 패드 상의 접촉을 검출한다.
접촉/모션 모듈(130)은, 선택적으로, 사용자에 의한 제스처 입력을 검출한다. 터치 감응형 표면 상에서의 상이한 제스처들은 상이한 접촉 패턴들(예컨대, 상이한 모션들, 타이밍들, 및/또는 검출된 접촉들의 세기들)을 갖는다. 따라서, 제스처는, 선택적으로, 특정 접촉 패턴을 검출함으로써 검출된다. 예를 들어, 손가락 탭 제스처(finger tap gesture)를 검출하는 것은 손가락-다운 이벤트를 검출한 다음에 손가락-다운 이벤트와 동일한 위치(또는 실질적으로 동일한 위치)에서(예를 들어, 아이콘의 위치에서) 손가락-업(리프트오프) 이벤트를 검출하는 것을 포함한다. 다른 예로서, 터치 감응형 표면 상에서 손가락 스와이프 제스처(finger swipe gesture)를 검출하는 것은 손가락-다운 이벤트를 검출한 다음에 하나 이상의 손가락-드래그 이벤트를 검출하고, 그에 후속하여 손가락-업(리프트오프) 이벤트를 검출하는 것을 포함한다. 유사하게, 스타일러스에 대한 특정 접촉 패턴을 검출함으로써 스타일러스에 대해 탭, 스와이프, 드래그, 및 다른 제스처들이 선택적으로 검출된다.
위치결정 모듈(131)은, 가속도계(167), 자이로스코프(168), 및/또는 자력계(169)와 함께, 선택적으로 참조의 특정 프레임에서 디바이스의 자세(롤, 피치 및/또는 요(yaw))와 같은 디바이스에 관한 위치 정보를 검출한다. 위치결정 모듈(130)은 디바이스의 위치를 검출하고 디바이스의 위치 변경을 검출하는 것과 관련된 다양한 동작을 수행하기 위한 소프트웨어 컴포넌트들을 포함한다. 일부 실시예들에서, 위치결정 모듈(131)은 디바이스에 대한 스타일러스의 위치 상태를 검출하는 것 및 스타일러스의 위치 상태에 대한 변경을 검출하는 것과 같은, 스타일러스에 관한 위치 정보를 검출하기 위해 디바이스와 함께 사용되고 있는 스타일러스로부터 수신된 정보를 사용한다.
그래픽 모듈(132)은 디스플레이되는 그래픽의 시각적 효과(예컨대, 밝기, 투명도, 채도, 콘트라스트 또는 다른 시각적 속성)를 변경하기 위한 컴포넌트들을 포함하는, 터치 감응형 디스플레이 시스템(112) 또는 다른 디스플레이 상에서 그래픽을 렌더링 및 디스플레이하기 위한 다양한 알려진 소프트웨어 컴포넌트들을 포함한다. 본 명세서에서 사용되는 바와 같이, "그래픽"이라는 용어는, 텍스트, 웹페이지들, 아이콘들(예컨대, 소프트 키들을 포함하는 사용자 인터페이스 객체들), 디지털 이미지들, 비디오들, 애니메이션들 등을 제한 없이 포함한, 사용자에게 디스플레이될 수 있는 임의의 객체를 포함한다.
일부 실시예들에서, 그래픽 모듈(132)은 사용될 그래픽을 표현하는 데이터를 저장한다. 각각의 그래픽에는 선택적으로 대응하는 코드가 할당된다. 그래픽 모듈(132)은, 필요한 경우 좌표 데이터 및 다른 그래픽 속성 데이터와 함께, 디스플레이될 그래픽을 특정하는 하나 이상의 코드들을 애플리케이션들 등으로부터 수신하며, 이어서 스크린 이미지 데이터를 생성하여 디스플레이 제어기(156)에 출력한다.
햅틱 피드백 모듈(133)은 디바이스(100)와의 사용자 상호작용들에 응답하여 디바이스(100) 상의 하나 이상의 위치들에서 촉각적 출력 생성기(들)(163)를 사용하여 촉각적 출력들을 생성하기 위하여 명령어들(예컨대, 햅틱 피드백 제어기(161)에 의해 사용되는 명령어들)을 생성하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다.
선택적으로 그래픽 모듈(132)의 컴포넌트인 텍스트 입력 모듈(134)은, 다양한 애플리케이션들(예컨대, 연락처(137), 이메일(140), IM(141), 브라우저(147), 및 텍스트 입력을 필요로 하는 임의의 다른 애플리케이션)에 텍스트를 입력하기 위한 소프트 키보드들을 제공한다.
GPS 모듈(135)은 디바이스의 위치를 결정하고, 이 정보를 다양한 애플리케이션들에서의 사용을 위해 (예컨대, 위치 기반 다이얼링에서 사용하기 위해 전화(138)에, 사진/비디오 메타데이터로서 카메라(143)에, 그리고 날씨 위젯들, 지역 옐로 페이지 위젯들 및 지도/내비게이션 위젯들과 같은 위치 기반 서비스들을 제공하는 애플리케이션들에) 제공한다.
애플리케이션들(136)은, 선택적으로, 다음의 모듈들(또는 명령어들의 세트들), 또는 이들의 서브세트 또는 수퍼세트(superset)를 포함한다:
Figure 112018013962419-pct00001
연락처 모듈(137)(때때로 주소록 또는 연락처 목록으로 지칭됨);
Figure 112018013962419-pct00002
전화 모듈(138);
Figure 112018013962419-pct00003
화상 회의 모듈(139);
Figure 112018013962419-pct00004
이메일 클라이언트 모듈(140);
Figure 112018013962419-pct00005
인스턴트 메시징(IM) 모듈(141);
Figure 112018013962419-pct00006
운동 지원 모듈(142);
Figure 112018013962419-pct00007
정지 및/또는 비디오 이미지들을 위한 카메라 모듈(143);
Figure 112018013962419-pct00008
이미지 관리 모듈(144);
Figure 112018013962419-pct00009
브라우저 모듈(147);
Figure 112018013962419-pct00010
캘린더 모듈(148);
Figure 112018013962419-pct00011
날씨 위젯(149-1), 주식 위젯(149-2), 계산기 위젯(149-3), 알람 시계 위젯(149-4), 사전 위젯(149-5), 및 사용자에 의해 획득되는 다른 위젯들뿐 아니라 사용자-생성 위젯들(149-6) 중 하나 이상을 선택적으로 포함하는 위젯 모듈들(149);
Figure 112018013962419-pct00012
사용자-생성 위젯들(149-6)을 만들기 위한 위젯 생성기 모듈(150);
Figure 112018013962419-pct00013
검색 모듈(151);
Figure 112018013962419-pct00014
비디오 재생기 모듈 및 음악 재생기 모듈로 선택적으로 구성된 비디오 및 음악 재생기 모듈(152);
Figure 112018013962419-pct00015
메모 모듈(153);
Figure 112018013962419-pct00016
지도 모듈(154); 및/또는
Figure 112018013962419-pct00017
온라인 비디오 모듈(155).
선택적으로 메모리(102)에 저장된 다른 애플리케이션들(136)의 예들은 다른 워드 프로세싱 애플리케이션들, 다른 이미지 편집 애플리케이션들, 드로잉 애플리케이션들, 프레젠테이션 애플리케이션들, JAVA 인에이블형 애플리케이션들, 암호화, 디지털 권한 관리, 음성 인식 및 음성 복제를 포함한다.
터치 감응형 디스플레이 시스템(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132) 및 텍스트 입력 모듈(134)과 함께, 연락처 모듈(137)은, 하기를 비롯한, 주소록 또는 연락처 목록(예컨대, 메모리(102) 또는 메모리(370) 내의 연락처 모듈(137)의 애플리케이션 내부 상태(192)에 저장됨)을 관리하기 위한 실행가능한 명령어들을 포함한다: 이름(들)을 주소록에 추가하는 것; 주소록으로부터 이름(들)을 삭제하는 것; 전화번호(들), 이메일 주소(들), 물리적 주소(들) 또는 기타 정보를 이름과 연관시키는 것; 이미지를 이름과 연관시키는 것; 이름들을 카테고리화 및 분류하는 것; 전화(138), 화상 회의(139), 이메일(140) 또는 IM(141)에 의한 통신을 개시하고/하거나 용이하게 하기 위해 전화번호들 및/또는 이메일 주소들을 제공하는 것 등.
RF 회로부(108), 오디오 회로부(110), 스피커(111), 마이크로폰(113), 터치 감응형 디스플레이 시스템(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 및 텍스트 입력 모듈(134)과 함께, 전화 모듈(138)은, 전화번호에 대응하는 문자들의 시퀀스를 입력하고, 주소록(137) 내의 하나 이상의 전화번호에 액세스하고, 입력된 전화번호를 수정하고, 개개의 전화번호를 다이얼링하고, 대화를 하고, 대화가 완료된 때 접속해제하거나 끊도록 하는 실행가능한 명령어들을 포함한다. 전술된 바와 같이, 무선 통신은 선택적으로 복수의 통신 표준들, 프로토콜들 및 기술들 중 임의의 것을 사용한다.
RF 회로부(108), 오디오 회로부(110), 스피커(111), 마이크로폰(113), 터치 감응형 디스플레이 시스템(112), 디스플레이 제어기(156), 광 센서(들)(164), 광 센서 제어기(158), 접촉 모듈(130), 그래픽 모듈(132), 텍스트 입력 모듈(134), 연락처 목록(137) 및 전화 모듈(138)과 함께, 화상 회의 모듈(139)은 사용자 명령어들에 따라 사용자와 한 명 이상의 다른 참여자들 사이의 화상 회의를 개시, 시행 및 종료하도록 하는 실행가능한 명령어들을 포함한다.
RF 회로부(108), 터치 감응형 디스플레이 시스템(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132) 및 텍스트 입력 모듈(134)과 함께, 이메일 클라이언트 모듈(140)은 사용자 명령어들에 응답하여 이메일을 작성, 전송, 수신, 및 관리하도록 하는 실행가능한 명령어들을 포함한다. 이미지 관리 모듈(144)과 함께, 이메일 클라이언트 모듈(140)은 카메라 모듈(143)로 촬영된 정지 또는 비디오 이미지들을 갖는 이메일들을 작성 및 송신하는 것을 매우 용이하게 한다.
RF 회로부(108), 터치 감응형 디스플레이 시스템(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132) 및 텍스트 입력 모듈(134)과 함께, 인스턴트 메시징 모듈(141)은, 인스턴트 메시지에 대응하는 문자들의 시퀀스를 입력하고, 이전에 입력된 문자들을 수정하고, (예를 들면, 전화 기반 인스턴트 메시지들을 위한 단문자 메시지 서비스(SMS) 또는 멀티미디어 메시지 서비스(Multimedia Message Service, MMS) 프로토콜을 이용하거나 인터넷 기반 인스턴트 메시지들을 위한 XMPP, SIMPLE, APN(Apple Push Notification Service) 또는 IMPS를 이용하여) 개개의 인스턴트 메시지를 송신하고, 인스턴트 메시지들을 수신하고, 수신된 인스턴트 메시지들을 보도록 하는 실행가능한 명령어들을 포함한다. 일부 실시예들에서, 송신 및/또는 수신된 인스턴트 메시지들은 선택적으로 그래픽, 사진, 오디오 파일, 비디오 파일 및/또는 MMS 및/또는 EMS(Enhanced Messaging Service)에서 지원되는 다른 첨부물들을 포함한다. 본 명세서에서 사용되는 바와 같이, "인스턴트 메시징"은 전화 기반 메시지들(예컨대, 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(Extensible Markup Language) 파일 및 자바스크립트 파일(예컨대, 야후(Yahoo)! 위젯들)을 포함한다.
RF 회로부(108), 터치 감응형 디스플레이 시스템(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 텍스트 입력 모듈(134) 및 브라우저 모듈(147)과 함께, 위젯 생성기 모듈(150)은 위젯들을 생성(예를 들면, 웹 페이지의 사용자-특정 부분을 위젯으로 변경)하도록 하는 실행가능한 명령어들을 포함한다.
터치 감응형 디스플레이 시스템(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132) 및 텍스트 입력 모듈(134)과 함께, 검색 모듈(151)은 사용자 명령어들에 따라 하나 이상의 검색 기준(예컨대, 하나 이상의 사용자-특정 검색어)에 일치하는 메모리(102) 내의 텍스트, 음악, 사운드, 이미지, 비디오, 및/또는 다른 파일들을 검색하도록 하는 실행가능한 명령어들을 포함한다.
터치 감응형 디스플레이 시스템(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 오디오 회로부(110), 스피커(111), RF 회로부(108) 및 브라우저 모듈(147)과 함께, 비디오 및 음악 재생기 모듈(152)은 사용자가 MP3 또는 AAC 파일들과 같은 하나 이상의 파일 포맷으로 저장된 녹음된 음악 및 다른 사운드 파일들을 다운로드 및 재생하게 하는 실행가능한 명령어들, 및 비디오들을 (예컨대, 터치 감응형 디스플레이 시스템(112) 상에서, 또는 무선으로 또는 외부 포트(124)를 통해 접속된 외부 디스플레이 상에서) 디스플레이하거나, 상영하거나, 그렇지 않으면 재생하도록 하는 실행가능한 명령어들을 포함한다. 일부 실시예들에서, 디바이스(100)는 선택적으로 아이팟(애플 인크.의 상표)과 같은 MP3 재생기의 기능을 포함한다.
터치 감응형 디스플레이 시스템(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와 같은 하나 이상의 파일 포맷의 온라인 비디오들에 액세스하고, 이들을 브라우징하고, (예컨대, 스트리밍 및/또는 다운로드에 의해) 수신하고, (예컨대, 터치 스크린(112) 상에서, 또는 무선으로 또는 외부 포트(124)를 통해 접속된 외부 디스플레이 상에서) 재생하고, 특정 온라인 비디오로의 링크와 함께 이메일을 전송하고, 그렇지 않으면 온라인 비디오들을 관리하게 하는 실행가능한 명령어들을 포함한다. 일부 실시예들에서, 이메일 클라이언트 모듈(140)보다는 오히려 인스턴트 메시징 모듈(141)이 특정 온라인 비디오로의 링크를 전송하는 데 사용된다.
상기의 식별된 모듈들 및 애플리케이션들 각각은 위에서 기술된 하나 이상의 기능들 및 본 출원에 기술되는 방법들(예컨대, 본 명세서에 기술되는 컴퓨터 구현 방법들 및 다른 정보 프로세싱 방법들)을 수행하기 위한 실행가능한 명령어들의 세트에 대응한다. 이러한 모듈들(즉, 명령어들의 세트들)은 별개의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요가 없으며, 따라서 이들 모듈의 다양한 서브세트들이 선택적으로 다양한 실시예들에서 조합되거나 그렇지 않으면 재배열된다. 일부 실시예들에서, 메모리(102)는 선택적으로, 상기 식별된 모듈들 및 데이터 구조들의 서브세트를 저장한다. 또한, 메모리(102)는 선택적으로 위에서 기술되지 않은 추가의 모듈들 및 데이터 구조들을 저장한다.
일부 실시예들에서, 디바이스(100)는 디바이스 상의 미리정의된 세트의 기능들의 동작이 터치 스크린 및/또는 터치 패드를 통해 전용으로 수행되는 디바이스이다. 터치 스크린 및/또는 터치 패드를 디바이스(100)의 동작을 위한 주 입력 제어 디바이스로서 사용함으로써, 디바이스(100) 상의 (푸시 버튼들, 다이얼들 등과 같은) 물리적 입력 제어 디바이스들의 수가 선택적으로 감소된다.
전적으로 터치 스크린 및/또는 터치 패드를 통해 수행되는 미리정의된 세트의 기능들은, 선택적으로, 사용자 인터페이스들 간의 내비게이션을 포함한다. 일부 실시예들에서, 터치 패드는, 사용자에 의해 터치될 때, 디바이스(100)를 디바이스(100) 상에 디스플레이되는 임의의 사용자 인터페이스로부터 메인, 홈 또는 루트 메뉴로 내비게이팅한다. 이러한 실시예들에서, "메뉴 버튼"이 터치 패드를 이용하여 구현된다. 일부 다른 실시예들에서, 메뉴 버튼은 터치 패드 대신에 물리적 푸시 버튼 또는 다른 물리적 입력 제어 디바이스이다.
도 1b는 일부 실시예들에 따른, 이벤트 처리를 위한 예시적인 컴포넌트들을 예시하는 블록도이다. 일부 실시예들에서, 메모리(102(도 1a) 또는 370(도 3))는 (예컨대, 운영 체제(126)에서의) 이벤트 분류기(170) 및 개개의 애플리케이션(136-1)(예컨대, 전술한 애플리케이션들(136, 137-155, 380-390) 중 임의의 것)을 포함한다.
이벤트 분류기(170)는 이벤트 정보를 수신하고, 이벤트 정보를 전달할 애플리케이션(136-1), 및 애플리케이션(136-1)의 애플리케이션 뷰(191)를 결정한다. 이벤트 분류기(170)는 이벤트 모니터(171) 및 이벤트 디스패처 모듈(event dispatcher module)(174)을 포함한다. 일부 실시예들에서, 애플리케이션(136-1)은 애플리케이션이 활성 상태이거나 실행 중일 때 터치 감응형 디스플레이 시스템(112) 상에 디스플레이되는 현재 애플리케이션 뷰(들)를 나타내는 애플리케이션 내부 상태(192)를 포함한다. 일부 실시예들에서, 디바이스/글로벌 내부 상태(157)는 이벤트 분류기(170)에 의해 어느 애플리케이션(들)이 현재 활성인지 결정하는 데 이용되며, 애플리케이션 내부 상태(192)는 이벤트 분류기(170)에 의해 이벤트 정보를 전달할 애플리케이션 뷰들(191)을 결정하는 데 이용된다.
일부 실시예들에서, 애플리케이션 내부 상태(192)는 애플리케이션(136-1)이 실행을 재개할 때 이용될 재개 정보, 애플리케이션(136-1)에 의해 디스플레이되고 있거나 디스플레이될 준비가 된 정보를 나타내는 사용자 인터페이스 상태 정보, 사용자가 애플리케이션(136-1)의 이전 상태 또는 뷰로 되돌아갈 수 있게 하기 위한 상태 큐(queue), 및 사용자에 의해 취해진 이전 액션들의 재실행(redo)/실행취소(undo) 큐 중 하나 이상과 같은 추가 정보를 포함한다.
이벤트 모니터(171)는 주변기기 인터페이스(118)로부터 이벤트 정보를 수신한다. 이벤트 정보는 서브이벤트(예컨대, 멀티 터치 제스처의 일부로서 터치 감응형 디스플레이 시스템(112) 상의 사용자 터치)에 대한 정보를 포함한다. 주변기기 인터페이스(118)는 I/O 서브시스템(106) 또는 센서, 예컨대 근접 센서(166), 가속도계(들)(167), 자이로스코프(들)(168), 자력계(들)(169), 및/또는 (오디오 회로부(110)를 통한) 마이크로폰(113)으로부터 수신하는 정보를 전송한다. 주변기기 인터페이스(118)가 I/O 서브시스템(106)으로부터 수신하는 정보는 터치 감응형 디스플레이 시스템(112) 또는 터치 감응형 표면으로부터의 정보를 포함한다.
일부 실시예들에서, 이벤트 모니터(171)는 요청들을 미리결정된 간격으로 주변기기 인터페이스(118)로 전송한다. 이에 응답하여, 주변기기 인터페이스(118)는 이벤트 정보를 송신한다. 다른 실시예들에서, 주변기기 인터페이스(118)는 중요한 이벤트(예컨대, 미리결정된 잡음 임계치를 초과하는 입력 및/또는 미리결정된 지속기간 초과 동안의 입력을 수신하는 것)가 있을 때에만 이벤트 정보를 송신한다.
일부 실시예들에서, 이벤트 분류기(170)는 또한 히트 뷰(hit view) 결정 모듈(172) 및/또는 활성 이벤트 인식기 결정 모듈(173)을 포함한다.
히트 뷰 결정 모듈(172)은 터치 감응형 디스플레이 시스템(112)이 둘 이상의 뷰를 디스플레이할 때 하나 이상의 뷰 내에서 서브이벤트가 발생한 장소를 결정하기 위한 소프트웨어 절차들을 제공한다. 뷰들은 사용자가 디스플레이 상에서 볼 수 있는 제어부들 및 다른 요소들로 구성된다.
애플리케이션과 연관된 사용자 인터페이스의 다른 태양은 본 명세서에서 때때로 애플리케이션 뷰들 또는 사용자 인터페이스 윈도우(user interface window)들로 지칭되는 한 세트의 뷰들이며, 여기서 정보가 디스플레이되고 터치 기반 제스처가 발생한다. 터치가 검출되는 (각각의 애플리케이션의) 애플리케이션 뷰들은 선택적으로 애플리케이션의 프로그램 또는 뷰 계층구조 내의 프로그램 레벨들에 대응한다. 예를 들면, 터치가 검출되는 최하위 레벨의 뷰는 선택적으로 히트 뷰라고 지칭되고, 적절한 입력들로서 인식되는 이벤트들의 세트는 선택적으로 터치 기반 제스처를 시작하는 초기 터치의 히트 뷰에 적어도 부분적으로 기초하여 결정된다.
히트 뷰 결정 모듈(172)은 터치 기반 제스처의 서브이벤트들에 관련된 정보를 수신한다. 애플리케이션이 계층구조에서 체계화된 다수의 뷰들을 갖는 경우, 히트 뷰 결정 모듈(172)은 히트 뷰를, 서브이벤트를 처리해야 하는 계층구조 내의 최하위 뷰로서 식별한다. 대부분의 상황들에서, 히트 뷰는 개시되는 서브이벤트가 발생하는 최하위 레벨 뷰이다(즉, 이벤트 또는 잠재적 이벤트를 형성하는 서브이벤트들의 시퀀스 내의 제1 서브이벤트임). 일단 히트 뷰가 히트 뷰 결정 모듈에 의해 식별되면, 히트 뷰는 전형적으로 그것이 히트 뷰로서 식별되게 하는 것과 동일한 터치나 입력 소스에 관련된 모든 서브이벤트들을 수신한다.
활성 이벤트 인식기 결정 모듈(173)은 뷰 계층구조 내에서 어느 뷰 또는 뷰들이 서브이벤트들의 특정 시퀀스를 수신해야 하는지를 결정한다. 일부 실시예들에서, 활성 이벤트 인식기 결정 모듈(173)은 히트 뷰만이 서브이벤트들의 특정 시퀀스를 수신해야 하는 것으로 결정한다. 다른 실시예들에서, 활성 이벤트 인식기 결정 모듈(173)은 서브이벤트의 물리적 위치를 포함하는 모든 뷰들이 적극 참여 뷰(actively involved view)들인 것으로 결정하고, 그에 따라 모든 적극 참여 뷰들이 서브이벤트들의 특정 시퀀스를 수신해야 하는 것으로 결정한다. 다른 실시예들에서, 터치 서브이벤트들이 전적으로 하나의 특정 뷰와 연관된 영역으로 한정되었더라도, 계층구조 내의 상위 뷰들은 여전히 적극 참여 뷰들로서 유지될 것이다.
이벤트 디스패처 모듈(174)은 이벤트 정보를 이벤트 인식기(예컨대, 이벤트 인식기(180))에 송달한다. 활성 이벤트 인식기 결정 모듈(173)을 포함하는 실시예들에서, 이벤트 디스패처 모듈(174)은 이벤트 정보를 활성 이벤트 인식기 결정 모듈(173)에 의해 결정된 이벤트 인식기에 전달한다. 일부 실시예들에서, 이벤트 디스패처 모듈(174)은 이벤트 큐 내에 이벤트 정보를 저장하는데, 이벤트 정보는 개개의 이벤트 수신기 모듈(182)에 의해 인출된다.
일부 실시예들에서, 운영 체제(126)는 이벤트 분류기(170)를 포함한다. 대안적으로, 애플리케이션(136-1)은 이벤트 분류기(170)를 포함한다. 또 다른 실시예들에서, 이벤트 분류기(170)는 독립형 모듈이거나 접촉/모션 모듈(130)과 같이 메모리(102)에 저장된 다른 모듈의 일부이다.
일부 실시예들에서, 애플리케이션(136-1)은 복수의 이벤트 핸들러들(190) 및 하나 이상의 애플리케이션 뷰(191)를 포함하며, 이들 각각은 애플리케이션의 사용자 인터페이스의 각각의 뷰 내에 발생하는 터치 이벤트들을 처리하기 위한 명령어들을 포함한다. 애플리케이션(136-1)의 각각의 애플리케이션 뷰(191)는 하나 이상의 이벤트 인식기들(180)을 포함한다. 전형적으로, 각자의 애플리케이션 뷰(191)는 복수의 이벤트 인식기들(180)을 포함한다. 다른 실시예들에서, 이벤트 인식기들(180) 중 하나 이상은 사용자 인터페이스 키트(도시되지 않음) 또는 애플리케이션(136-1)이 방법들 및 다른 속성들을 물려받는 상위 레벨 객체와 같은 별개의 모듈의 일부이다. 일부 실시예들에서, 각각의 이벤트 핸들러(190)는 데이터 업데이터(176), 객체 업데이터(177), GUI 업데이터(178), 및/또는 이벤트 분류기(170)로부터 수신된 이벤트 데이터(179) 중 하나 이상을 포함한다. 이벤트 핸들러(190)는 선택적으로 데이터 업데이터(176), 객체 업데이터(177) 또는 GUI 업데이터(178)를 이용하거나 호출하여 애플리케이션 내부 상태(192)를 업데이트한다. 대안적으로, 애플리케이션 뷰들(191) 중 하나 이상은 하나 이상의 각자의 이벤트 핸들러(190)를 포함한다. 또한, 일부 실시예들에서, 데이터 업데이터(176), 객체 업데이터(177), 및 GUI 업데이터(178) 중 하나 이상은 각자의 애플리케이션 뷰(191) 내에 포함된다.
본 명세서에 사용되는 바와 같이, 힘 이벤트는, 터치 입력의 상태 또는 상태의 변화, 예컨대, 터치 입력의 시작(예컨대, 최소 힘 세기 임계치를 만족하는 것), 세기 변경(예컨대, 터치 입력의 세기를 증가 또는 감소시키는 것), 또는 세기 상태 변경(예컨대, 세기가 세기 임계치 미만으로 떨어지도록 터치 입력을 해제하거나 또는 세기 임계치를 초과하는 힘껏 누르기)을 나타내기 위한 디바이스-생성된 신호 또는 디바이스-생성된 데이터(예컨대, 디바이스(100)에 의해 생성되거나 또는 업데이트된 신호 또는 데이터 객체)를 지칭한다. 힘 이벤트들이 터치 감응형 표면 상의 물리적 터치들(예컨대, 손가락 및/또는 스타일러스를 이용한 터치들)과 연관되지만, 본 명세서에 기술되는 바와 같이, 힘 이벤트들은 물리적 터치들과는 별개이다.
각자의 이벤트 인식기(180)는 이벤트 분류기(170)로부터 이벤트 정보(예컨대, 이벤트 데이터(179))를 수신하고 그 이벤트 정보로부터 이벤트를 식별한다. 이벤트 인식기(180)는 이벤트 수신기(182) 및 이벤트 비교기(184)를 포함한다. 일부 실시예들에서, 이벤트 인식기(180)는 또한 적어도 메타데이터(183) 및 이벤트 전달 명령어들(188)(선택적으로 서브이벤트 전달 명령어들을 포함함)의 서브세트를 포함한다.
이벤트 수신기(182)는 이벤트 분류기(170)로부터 이벤트 정보를 수신한다. 이벤트 정보는 서브이벤트, 예를 들어 터치 또는 터치 이동에 관한 정보를 포함한다. 서브이벤트에 따라, 이벤트 정보는 또한 서브이벤트의 위치와 같은 추가 정보를 포함한다. 서브이벤트가 터치의 모션과 관련되는 경우, 이벤트 정보는 또한 선택적으로 서브이벤트의 속력 및 방향을 포함한다. 일부 실시예들에서, 이벤트들은 하나의 배향으로부터 다른 배향으로(예컨대, 세로 배향으로부터 가로 배향으로, 또는 그 반대로)의 디바이스의 회전을 포함하며, 이벤트 정보는 디바이스의 현재 배향(디바이스 자세로도 지칭됨)에 관한 대응하는 정보를 포함한다.
이벤트 비교기(184)는 이벤트 정보를 미리정의된 이벤트 또는 서브이벤트 정의들과 비교하고, 그 비교에 기초하여, 이벤트 또는 서브이벤트를 결정하거나, 이벤트 또는 서브이벤트의 상태를 결정 또는 업데이트한다. 일부 실시예들에서, 이벤트 비교기(184)는 이벤트 정의들(186)을 포함한다. 이벤트 정의들(186)은 이벤트들(예컨대, 서브이벤트들의 미리정의된 시퀀스들), 예를 들어 이벤트 1(187-1), 이벤트 2(187-2) 등의 정의들을 포함한다. 일부 실시예들에서, 이벤트(187) 내의 서브이벤트들은, 예를 들어, 터치 시작, 터치 종료, 터치 이동, 터치 취소, 및 다중 터치를 포함한다. 일례에서, 이벤트 1(187-1)에 대한 정의는 디스플레이된 객체 상의 더블 탭이다. 더블 탭은, 예를 들면 미리결정된 페이즈(phase) 동안의 디스플레이된 객체 상에의 제1 터치(터치 시작), 미리결정된 페이즈 동안의 제1 리프트오프(터치 종료), 미리결정된 페이즈 동안의 디스플레이된 객체 상에의 제2 터치(터치 시작), 및 미리결정된 페이즈 동안의 제2 리프트오프(터치 종료)를 포함한다. 다른 예에서, 이벤트 2(187-2)에 대한 정의는 디스플레이된 객체 상의 드래깅이다. 드래깅은, 예를 들면 미리결정된 페이즈 동안의 디스플레이된 객체 상에의 터치(또는 접촉), 터치 감응형 디스플레이 시스템(112)을 가로지르는 터치의 이동, 및 터치의 리프트오프(터치 종료)를 포함한다. 일부 실시예들에서, 이벤트는 또한 하나 이상의 연관된 이벤트 핸들러들(190)에 대한 정보를 포함한다.
일부 실시예들에서, 이벤트 정의(187)는 각자의 사용자 인터페이스 객체에 대한 이벤트의 정의를 포함한다. 일부 실시예들에서, 이벤트 비교기(184)는 어느 사용자 인터페이스 객체가 서브이벤트와 연관되어 있는지 결정하도록 히트 테스트(hit test)를 수행한다. 예를 들면, 3개의 사용자 인터페이스 객체가 터치 감응형 디스플레이 시스템(112) 상에 디스플레이된 애플리케이션 뷰에서, 터치 감응형 디스플레이 시스템(112) 상에서 터치가 검출되는 경우, 이벤트 비교기(184)는 3개의 사용자 인터페이스 객체들 중 어느 것이 터치(서브이벤트)와 연관되는지 결정하도록 히트 테스트를 수행한다. 각각의 디스플레이된 객체가 개별 이벤트 핸들러(190)와 연관된 경우, 이벤트 비교기는 히트 테스트의 결과를 이용하여 어느 이벤트 핸들러(190)가 활성화되어야 하는지 결정한다. 예를 들어, 이벤트 비교기(184)는 히트 테스트를 트리거하는 객체 및 서브이벤트와 연관된 이벤트 핸들러를 선택한다.
일부 실시예들에서, 개개의 이벤트(187)에 대한 정의는 또한 서브이벤트들의 시퀀스가 이벤트 인식기의 이벤트 유형에 대응하는지 대응하지 않는지 여부가 결정된 후까지 이벤트 정보의 전달을 지연하는 지연된 액션들을 포함한다.
개별 이벤트 인식기(180)가 일련의 서브이벤트들이 이벤트 정의들(186) 내의 이벤트들 중 어떠한 것과도 매칭되지 않는 것으로 결정하면, 개별 이벤트 인식기(180)는 이벤트 불가능, 이벤트 실패, 또는 이벤트 종료 상태에 진입하고, 그 후 개별 이벤트 인식기는 터치 기반 제스처의 후속적인 서브이벤트들을 무시한다. 이러한 상황에서, 만일 있다면, 히트 뷰에 대해 활성 상태로 유지되는 다른 이벤트 인식기들이 진행 중인 터치 기반 제스처의 서브이벤트들을 계속해서 추적 및 프로세싱한다.
일부 실시예들에서, 개별 이벤트 인식기(180)는 이벤트 전달 시스템이 어떻게 적극 참여 이벤트 인식기들에 대한 서브이벤트 전달을 수행해야 하는지를 나타내는 구성가능한 속성들, 플래그(flag)들, 및/또는 목록들을 갖는 메타데이터(183)를 포함한다. 일부 실시예들에서, 메타데이터(183)는 이벤트 인식기들이 어떻게 서로 상호작용하는지, 또는 상호작용할 수 있는지를 나타내는 구성가능한 속성들, 플래그들, 및/또는 목록들을 포함한다. 일부 실시예들에서, 메타데이터(183)는, 서브이벤트들이 뷰 또는 프로그램 계층구조에서의 다양한 레벨들에 전달되는지 여부를 나타내는 구성가능한 속성들, 플래그들, 및/또는 목록들을 포함한다.
일부 실시예들에서, 각자의 이벤트 인식기(180)는 이벤트의 하나 이상의 특정 서브이벤트가 인식될 때 이벤트와 연관된 이벤트 핸들러(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)은 터치 입력의 상태 및/또는 그 상태의 변화를 결정한다. 일부 실시예들에서, 디바이스는 터치 입력의 결정된 상태 및/또는 그 상태의 결정된 변화를 하나 이상의 소프트웨어 컴포넌트들로 전송하기 위한 신호 또는 데이터를 (예컨대, 데이터 객체의 형태로) 생성한다. 일부 실시예들에서, 데이터 객체는 이벤트 객체(예컨대, 이벤트 객체(194))라고 불린다. 이벤트 객체는 대응하는 터치 입력의 상태를 나타내는 데이터를 포함한다. 일부 실시예들에서, (터치 입력이 마우스에 의한 입력에 상당하기 때문에) 이벤트 객체(194)는 마우스 이벤트 객체이다. 예를 들어, 그러한 실시예들에서, 터치 감응형 표면을 가로질러 이동하는 터치 입력은 마우스 이동(예컨대, 마우스 이동된 이벤트)에 대응한다. 일부 다른 실시예들에서, 이벤트 객체(194)는 마우스 이벤트 객체와는 별개인 터치 이벤트 객체이다. 일부 실시예들에서, 터치 이벤트 객체는 대응하는 터치 입력의 터치 특정 특성들을 나타내는 데이터(예컨대, 다수의 동시 터치들, 손가락 접촉 또는 스타일러스의 배향 등)를 포함한다. 일부 실시예들에서, 이벤트 객체(194)는 마우스 이벤트 객체(또는 터치 이벤트 객체)와는 별개인 힘 이벤트 객체이다. 일부 실시예들에서, 힘 이벤트 객체는 대응하는 터치 입력의 힘 이벤트 특정 특성들을 나타내는 데이터(예컨대, 터치 입력에 의해 가해지는 세기, 터치 입력의 스테이지/페이즈 등)를 포함한다. 일부 실시예들에서, 이벤트 객체는 그러한 특성들(예컨대, 마우스 이벤트 특정 특성들, 터치 이벤트 특정 특성들, 및 힘 이벤트 특정 특성들)의 임의의 조합을 포함한다.
일부 실시예들에서, 접촉/모션 모듈(130)은 이벤트 객체를 생성하고(또는 업데이트하고) 이벤트 객체를 하나 이상의 애플리케이션들(예컨대, 도 1a의 이메일 클라이언트 모듈(140)과 같은 애플리케이션(136-1), 및/또는 브라우저 모듈(147)과 같은 애플리케이션(136-2))로 전송한다. 대안적으로, 접촉/정보 모듈(130)은 접촉들에 관한 정보(예컨대, 접촉들의 원시 좌표들)를 하나 이상의 애플리케이션들(예컨대, 애플리케이션 1(136-1) 및/또는 애플리케이션 2(136-2))로 전송하고, 그 정보를 수신하는 애플리케이션은 하나 이상의 이벤트 객체들을 생성한다(또는 업데이트한다). 일부 실시예들에서, 애플리케이션은 터치 프로세싱 모듈(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)에 특정된 동작들을 수행(예컨대, 하나 이상의 이메일 서버들로부터 이메일들을 인출)하기 위한 명령어들을 포함하고, 애플리케이션 코어 2(230-2)는 애플리케이션 2(136-2)에 특정된 동작들을 수행(예컨대, 웹 페이지를 북마크)하기 위한 명령어들을 포함한다.
일부 실시예들에서, 이벤트 객체(194)는 목적지(예컨대, 애플리케이션 코어 1(230-1)과 같은 소프트웨어 컴포넌트)로 직접 전송된다. 선택적으로, 이벤트 객체(194)는 애플리케이션 프로그래밍 인터페이스(222)를 통해 전송된다. 일부 실시예들에서, 이벤트 객체(194)는, 애플리케이션 코어 1(230-1)에 의한 인출을 위해 (예컨대, 큐(218-1) 내에) 이벤트 객체(194)를 포스팅함으로써 전송된다.
일부 실시예들에서, 이벤트 객체(194)는 힘 정보를 포함한다. 일부 실시예들에서, 마우스 이벤트 객체는 힘 정보(예컨대, 터치 입력에 의해 가해지는 원시 또는 정규화된 힘)를 포함한다. 일부 실시예들에서, 터치 이벤트 객체는 힘 정보를 포함한다. 일부 실시예들에서, 힘 이벤트 객체는 힘 정보를 포함한다.
도 2는 일부 실시예들에 따른, 터치 스크린(예컨대, 터치 감응형 디스플레이 시스템(112), 도 1a)을 갖는 휴대용 다기능 디바이스(100)를 예시한다. 터치 스크린은, 선택적으로, 사용자 인터페이스(UI)(200) 내에서 하나 이상의 그래픽을 디스플레이한다. 이러한 실시예들은 물론 아래에 설명되는 다른 실시예들에서, 사용자는, 예를 들어, 하나 이상의 손가락들(202)(도면에서 축척대로 도시되지 않음) 또는 하나 이상의 스타일러스들(203)(도면에서 축척대로 도시되지 않음)을 이용하여 그래픽 상에 제스처를 행함으로써 그래픽들 중 하나 이상을 선택할 수 있다. 일부 실시예들에서, 하나 이상의 그래픽의 선택은 사용자가 하나 이상의 그래픽과의 접촉을 중단할 때 발생한다. 일부 실시예들에서, 제스처는 선택적으로 디바이스(100)와 접촉한 손가락의 하나 이상의 탭, (좌에서 우로, 우에서 좌로, 위로 및/또는 아래로의) 하나 이상의 스와이프 및/또는 (우에서 좌로, 좌에서 우로, 위로 및/또는 아래로의) 롤링을 포함한다. 일부 구현예들 또는 상황들에서, 그래픽과 부주의하여 접촉되면 그 그래픽은 선택되지 않는다. 예를 들면, 선택에 대응하는 제스처가 탭일 때, 애플리케이션 아이콘 위를 스윕(sweep)하는 스와이프 제스처는 선택적으로, 대응하는 애플리케이션을 선택하지 않는다.
디바이스(100)는 또한 선택적으로 "홈" 또는 메뉴 버튼(204)과 같은 하나 이상의 물리적 버튼을 포함한다. 전술된 바와 같이, 메뉴 버튼(204)은 선택적으로, 디바이스(100) 상에서 선택적으로 실행되는 애플리케이션들의 세트 내의 임의의 애플리케이션(136)으로 내비게이팅하는 데 사용된다. 대안적으로, 일부 실시예들에서, 메뉴 버튼은 터치 스크린 디스플레이 상에 디스플레이된 GUI에서 소프트 키로서 구현된다.
일부 실시예들에서, 디바이스(100)는 터치 스크린 디스플레이, 메뉴 버튼(204), 디바이스의 전원을 켜거나/끄고 디바이스를 잠그기 위한 푸시 버튼(206), 음량 조절 버튼(들)(208), SIM 카드 슬롯(210), 헤드셋 잭(212), 및 도킹/충전 외부 포트(124)를 포함한다. 푸시 버튼(206)은, 선택적으로, 버튼을 누르고 버튼을 미리정의된 시간 간격 동안 누른 상태로 유지함으로써 디바이스에 대한 전력을 온/오프시키고/시키거나; 버튼을 누르고 미리정의된 시간 간격이 경과하기 전에 버튼을 누름해제함으로써 디바이스를 잠그고/잠그거나; 디바이스를 잠금해제하거나 잠금해제 프로세스를 시작하는 데 사용된다. 일부 실시예들에서, 디바이스(100)는 또한 마이크로폰(113)을 통해 일부 기능들의 활성화 또는 비활성화를 위한 구두 입력을 수용한다. 디바이스(100)는 또한 선택적으로 터치 감응형 디스플레이 시스템(112) 상의 접촉들의 세기를 검출하기 위한 하나 이상의 접촉 세기 센서들(165) 및/또는 디바이스(100)의 사용자를 위해 촉각적 출력들을 생성하기 위한 하나 이상의 촉각적 출력 생성기들(163)을 포함한다.
도 3은 일부 실시예들에 따른, 디스플레이 및 터치 감응형 표면을 갖는 예시적인 다기능 디바이스의 블록도이다. 디바이스(300)가 휴대용일 필요는 없다. 일부 실시예들에서, 디바이스(300)는, 랩톱 컴퓨터, 데스크톱 컴퓨터, 태블릿 컴퓨터, 멀티미디어 재생기 디바이스, 내비게이션 디바이스, (어린이 학습 장난감과 같은) 교육용 디바이스, 게이밍 시스템, 또는 제어 디바이스(예컨대, 가정용 또는 산업용 제어기)이다. 디바이스(300)는 전형적으로 하나 이상의 프로세싱 유닛(CPU)(310), 하나 이상의 네트워크 또는 다른 통신 인터페이스들(360), 메모리(370), 및 이들 컴포넌트들을 상호접속시키기 위한 하나 이상의 통신 버스(320)를 포함한다. 통신 버스들(320)은 선택적으로 시스템 컴포넌트들을 상호접속하고 이들 사이의 통신을 제어하는 회로부(때때로 칩셋이라고 지칭됨)를 포함한다. 디바이스(300)는 전형적으로 터치 스크린 디스플레이인 디스플레이(340)를 포함하는 입/출력(I/O) 인터페이스(330)를 포함한다. I/O 인터페이스(330)는 또한 선택적으로 키보드 및/또는 마우스(또는 기타의 포인팅 디바이스)(350) 및 터치 패드(355), 디바이스(300) 상에 촉각적 출력들을 생성하기 위한 촉각적 출력 생성기(357)(예를 들면, 도 1a를 참조하여 전술한 촉각적 출력 생성기(들)(163)와 유사함), 센서들(359)(예를 들면, 도 1a를 참조하여 전술한 센서(들)(112, 164, 165, 166, 167, 168, 169)와 유사한 터치 감응형, 광, 접촉 세기, 근접, 가속도, 자세, 및/또는 자기 센서들)을 포함한다. 메모리(370)는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함하며; 선택적으로 하나 이상의 자기 디스크 저장 디바이스, 광 디스크 저장 디바이스, 플래시 메모리 디바이스, 또는 다른 비휘발성 솔리드 스테이트 저장 디바이스와 같은 비휘발성 메모리를 포함한다. 메모리(370)는 선택적으로 CPU(들)(310)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 일부 실시예들에서, 메모리(370)는 휴대용 다기능 디바이스(100)(도 1a)의 메모리(102)에 저장된 프로그램들, 모듈들, 및 데이터 구조들과 유사한 프로그램들, 모듈들, 및 데이터 구조들 또는 이들의 서브세트를 저장한다. 또한, 메모리(370)는, 선택적으로, 휴대용 다기능 디바이스(100)의 메모리(102) 내에 존재하지 않는 추가의 프로그램들, 모듈들 및 데이터 구조들을 저장한다. 예를 들어, 디바이스(300)의 메모리(370)는 선택적으로 드로잉 모듈(380), 프레젠테이션 모듈(382), 워드 프로세싱 모듈(384), 웹사이트 제작 모듈(386), 디스크 저작 모듈(388), 및/또는 스프레드시트 모듈(390)을 저장하고, 반면에 휴대용 다기능 디바이스(100)(도 1a)의 메모리(102)는 선택적으로 이러한 모듈들을 저장하지 않는다.
도 3에서의 앞서 식별된 요소들 각각은, 선택적으로, 전술된 메모리 디바이스들 중 하나 이상에 저장된다. 앞서 식별된 모듈들 각각은 앞서 기술된 기능을 수행하기 위한 명령어들의 세트에 대응한다. 앞서 식별된 모듈들 또는 프로그램들(즉, 명령어들의 세트들)은 별개의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요가 없으며, 따라서 다양한 실시예들에서 이들 모듈의 다양한 서브세트들이 선택적으로 조합되거나 그렇지 않으면 재배열된다. 일부 실시예들에서, 메모리(370)는 선택적으로, 상기 식별된 모듈들 및 데이터 구조들의 서브세트를 저장한다. 또한, 메모리(370)는 선택적으로 위에서 기술되지 않은 추가의 모듈들 및 데이터 구조들을 저장한다.
도 4는 일부 실시예들에 따른 예시적인 전자 스타일러스(203)의 블록도이다. 전자 스타일러스(203)는 때때로 줄여서 스타일러스라고 불린다. 스타일러스(203)는 메모리(402)(선택적으로, 하나 이상의 컴퓨터 판독가능 저장 매체를 포함함), 메모리 제어기(422), 하나 이상의 프로세싱 유닛(CPU)(420), 주변기기 인터페이스(418), RF 회로부(408), 입/출력(I/O) 서브시스템(406), 및 기타 입력 또는 제어 디바이스들(416)을 포함한다. 스타일러스(203)는 선택적으로 외부 포트(424) 및 하나 이상의 광 센서(464)를 포함한다. 스타일러스(203)는 선택적으로 디바이스(100) 상(예컨대, 스타일러스(203)가 디바이스(100)의 터치 감응형 디스플레이 시스템(112)과 같은 터치 감응형 표면에 사용되는 경우) 또는 기타 표면 상(예컨대, 책상 표면)의 스타일러스(203)의 접촉들의 세기를 검출하기 위한 하나 이상의 세기 센서(465)를 포함한다. 스타일러스(203)는 선택적으로 스타일러스(203) 상에 촉각적 출력을 생성하기 위한 하나 이상의 촉각적 출력 생성기들(463)을 포함한다. 이들 컴포넌트는 선택적으로 하나 이상의 통신 버스 또는 신호 라인(403)을 통해 통신한다.
일부 실시예들에서, 위에서 논의된 용어 "촉각적 출력"은 액세서리의 이전 위치에 대한 디바이스(예컨대, 디바이스(100))의 액세서리(예컨대, 스타일러스(203))의 물리적 변위, 액세서리의 다른 컴포넌트에 대한 액세서리의 컴포넌트의 물리적 변위, 또는 사용자의 촉각을 이용하여 사용자에 의해 검출될 액세서리의 질량 중심에 대한 컴포넌트의 변위를 지칭한다. 예컨대, 액세서리 또는 액세서리의 컴포넌트가 터치에 민감한 사용자의 표면(예컨대, 사용자의 손의 손가락, 손바닥, 또는 다른 부위)과 접촉하는 상황에서, 물리적 변위에 의해 생성된 촉각적 출력은 사용자에 의해 액세서리 또는 액세서리의 컴포넌트의 물리적 특성들의 인지된 변화에 대응하는 촉감으로서 해석될 것이다. 예를 들어, 컴포넌트(예컨대, 스타일러스(203)의 하우징)의 이동은, 선택적으로, 사용자에 의해 물리적 액추에이터 버튼의 "클릭"으로서 해석된다. 일부 경우들에서, 사용자는 사용자의 이동에 의해 물리적으로 눌리는(예컨대, 변위되는) 스타일러스와 연관된 물리적 액추에이터 버튼의 이동이 없는 경우에도 "클릭"과 같은 촉감을 느낄 것이다. 사용자에 의한 터치의 이러한 해석들이 사용자의 개별화된 감각 인지에 영향을 받기 쉬울 것이지만, 대다수의 사용자들에게 보편적인 많은 터치 감각 인지가 있다. 따라서, 촉각적 출력이 사용자의 특정 감각 인지(예컨대, "클릭")에 대응하는 것으로서 기술될 때, 달리 언급되지 않는다면, 생성된 촉각적 출력은 전형적인(또는 평균적인) 사용자에 대한 기술된 감각 인지를 생성할 디바이스 또는 그의 컴포넌트의 물리적 변위에 대응한다.
스타일러스(203)는 전자 스타일러스의 일례일 뿐이고, 스타일러스(203)는, 선택적으로, 도시된 것보다 더 많거나 더 적은 컴포넌트들을 갖고, 선택적으로, 2개 이상의 컴포넌트들을 조합하거나, 또는 선택적으로 컴포넌트들의 상이한 구성 또는 배열을 갖는다는 것이 인식되어야 한다. 도 4에 도시된 다양한 컴포넌트들은, 하나 이상의 신호 프로세싱 및/또는 주문형 집적 회로들을 비롯한, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현된다.
메모리(402)는 선택적으로 고속 랜덤 액세스 메모리를 포함하고, 선택적으로 또한 하나 이상의 플래시 메모리 디바이스, 또는 기타 비휘발성 솔리드 스테이트 메모리 디바이스와 같은 비휘발성 메모리를 포함한다. CPU(들)(420) 및 주변기기 인터페이스(418)와 같은 스타일러스(203)의 다른 컴포넌트들에 의한 메모리(402)에의 액세스는 선택적으로 메모리 제어기(422)에 의해 제어된다.
주변기기 인터페이스(418)는 스타일러스의 입력 및 출력 주변기기들을 CPU(들)(420) 및 메모리(402)에 결합하는 데 사용될 수 있다. 하나 이상의 프로세서(420)는 스타일러스(203)에 대한 다양한 기능들을 수행하고 데이터를 프로세싱하기 위해 메모리(402)에 저장된 다양한 소프트웨어 프로그램들 및/또는 명령어들의 세트들을 구동 또는 실행시킨다.
일부 실시예들에서, 주변기기 인터페이스(418), CPU(들)(420), 및 메모리 제어기(422)는, 선택적으로, 단일 칩, 예컨대 칩(404) 상에 구현된다. 일부 다른 실시예들에서, 이들은 선택적으로 별개의 칩들 상에 구현된다.
RF(radio frequency) 회로부(408)는 전자기 신호들이라고도 지칭되는 RF 신호들을 수신 및 전송한다. RF 회로부(408)는 전기 신호들을 전자기 신호들로/로부터 변환하고, 전자기 신호들을 통해 디바이스(100 또는 300), 통신 네트워크들, 및/또는 다른 통신 디바이스들과 통신한다. RF 회로부(408)는, 선택적으로, 안테나 시스템, RF 송수신기, 하나 이상의 증폭기들, 튜너, 하나 이상의 발진기들, 디지털 신호 프로세서, CODEC 칩셋, SIM 카드, 메모리 등을 제한 없이 포함하는, 이들 기능들을 수행하기 위한 주지의 회로부를 포함한다. RF 회로부(408)는, 선택적으로, 월드 와이드 웹(WWW)으로도 지칭되는 인터넷, 인트라넷 및/또는 무선 네트워크, 예컨대 셀룰러 전화 네트워크, 무선 근거리 네트워크(LAN) 및/또는 도시권 네트워크(MAN)와 같은 네트워크들 및 다른 디바이스들과 무선 통신에 의해 통신한다. 무선 통신은, 선택적으로, GSM(Global System for Mobile Communications), EDGE(Enhanced Data GSM Environment), HSDPA(high-speed downlink packet access), HSUPA(high-speed uplink packet access), EV-DO(Evolution, Data-Only), HSPA, HSPA+, DC-HSPDA(Dual-Cell HSPA), LTE(long term evolution), NFC(near field communication), W-CDMA(wideband code division multiple access), CDMA(code division multiple access), TDMA(time division multiple access), 블루투스(Bluetooth), Wi-Fi(Wireless Fidelity)(예컨대, IEEE 802.11a, IEEE 802.11ac, IEEE 802.11ax, IEEE 802.11b, IEEE 802.11g 및/또는 IEEE 802.11n), VoIP(voice over Internet Protocol), Wi-MAX, 이메일용 프로토콜(예컨대, IMAP(Internet message access protocol) 및/또는 POP(post office protocol)), 인스턴트 메시징(예컨대, XMPP(extensible messaging and presence protocol), SIMPLE(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions), IMPS(Instant Messaging and Presence Service)), 및/또는 SMS(Short Message Service), 또는 본 문헌의 출원일 현재 아직 개발되지 않은 통신 프로토콜을 포함한 임의의 다른 적합한 통신 프로토콜을 포함하지만 이들로 제한되지는 않는 복수의 통신 표준, 프로토콜 및 기술 중 임의의 것을 이용한다.
I/O 서브시스템(406)은 기타 입력 또는 제어 디바이스들(416)과 같은, 스타일러스(203) 상의 입/출력 주변기기들을 주변기기 인터페이스(418)에 결합한다. I/O 서브시스템(406)은 선택적으로 광 센서 제어기(458), 세기 센서 제어기(459), 햅틱 피드백 제어기(461), 및 기타 입력 또는 제어 디바이스들을 위한 하나 이상의 입력 제어기들(460)을 포함한다. 하나 이상의 입력 제어기들(460)은 기타 입력 또는 제어 디바이스들(416)로부터/로 전기 신호들을 수신/전송한다. 기타 입력 또는 제어 디바이스들(416)은 선택적으로 물리적 버튼들(예컨대, 푸시 버튼, 로커 버튼 등), 다이얼, 슬라이더 스위치, 클릭 휠 등을 포함한다. 일부 대안적인 실시예들에서, 입력 제어기(들)(460)는 선택적으로, 적외선 포트 및/또는 USB 포트 중 임의의 것과 결합된다(또는 어떤 것에도 결합되지 않는다).
스타일러스(203)는 또한 다양한 컴포넌트들에 전력을 공급하기 위한 전력 시스템(462)을 포함한다. 전력 시스템(462)은, 전력 관리 시스템, 하나 이상의 전원들(예컨대, 배터리, 교류 전류(AC)), 재충전 시스템, 전력 고장 검출 회로, 전력 변환기 또는 인버터, 전력 상태 표시자(예컨대, 발광 다이오드(LED)), 및 휴대용 디바이스들 및/또는 휴대용 액세서리들 내에서의 전력의 생성, 관리 및 분배와 연관된 임의의 다른 컴포넌트들을 포함한다.
스타일러스(203)는 또한 선택적으로 하나 이상의 광 센서(464)를 포함한다. 도 4는 I/O 서브시스템(406) 내의 광 센서 제어기(458)와 결합된 광 센서를 도시한다. 광 센서(들)(464)는 선택적으로 전하-결합 소자(CCD) 또는 CMOS 포토트랜지스터들을 포함한다. 광 센서(들)(464)는 하나 이상의 렌즈를 통해 투영된 주변환경으로부터의 광을 수신하고, 그 광을 이미지를 나타내는 데이터로 변환한다.
스타일러스(203)는 선택적으로 또한 하나 이상의 접촉 세기 센서들(465)을 포함한다. 도 4는 I/O 서브시스템(406) 내의 세기 센서 제어기(459)와 결합된 접촉 세기 센서를 도시한다. 접촉 세기 센서(들)(465)는 선택적으로 하나 이상의 압전 저항 스트레인 게이지, 용량성 힘 센서, 전기적 힘 센서, 압전 힘 센서, 광학적 힘 센서, 용량성 터치 감응형 표면, 또는 다른 세기 센서들(예를 들면, 표면 상의 접촉 힘(또는 압력)을 측정하는 데 사용되는 센서들)을 포함한다. 접촉 세기 센서(들)(465)는 주변환경으로부터 접촉 세기 정보(예를 들면, 압력 정보 또는 압력 정보에 대한 대용물)를 수신한다. 일부 실시예들에서, 적어도 하나의 접촉 세기 센서는 스타일러스(203)의 팁(tip)과 함께 또는 그것에 근접하게 배치된다.
스타일러스(203)는 선택적으로 또한 하나 이상의 근접 센서들(466)을 포함한다. 도 4는 주변기기 인터페이스(418)와 결합된 근접 센서(466)를 도시한다. 대안적으로, 근접 센서(466)는 I/O 서브시스템(406) 내의 입력 제어기(460)와 결합된다. 일부 실시예들에서, 근접 센서는 전자 디바이스(예컨대, 디바이스(100))에 대한 스타일러스(203)의 근접성을 결정한다.
스타일러스(203)는 선택적으로 또한 하나 이상의 촉각적 출력 생성기들(463)을 포함한다. 도 4는 I/O 서브시스템(406) 내의 햅틱 피드백 제어기(461)와 결합된 촉각적 출력 생성기를 도시한다. 촉각적 출력 생성기(들)(463)는 선택적으로 스피커들 또는 다른 오디오 컴포넌트들과 같은 하나 이상의 전자음향 디바이스들 및/또는 모터, 솔레노이드, 전기활성 중합체, 압전 액추에이터, 정전 액추에이터, 또는 다른 촉각적 출력 생성 컴포넌트(예를 들면, 전기 신호들을 디바이스 상의 촉각적 출력들로 변환하는 컴포넌트)와 같이 에너지를 선형 모션으로 변환하는 전자기계 디바이스들을 포함한다. 촉각적 출력 생성기(들)(463)는 햅틱 피드백 모듈(433)로부터 촉각적 피드백 생성 명령어들을 수신하여 스타일러스(203)의 사용자에 의해 감지될 수 있는 스타일러스(203) 상의 촉각적 출력들을 생성한다. 일부 실시예들에서, 적어도 하나의 촉각적 출력 생성기는 스타일러스(203)의 길이(예컨대, 본체 또는 하우징)와 함께 또는 그것에 근접하게 배치되고, 선택적으로, 스타일러스(203)를 수직으로(예컨대, 스타일러스(203)의 길이와 평행한 방향으로) 또는 측방향으로(예컨대, 스타일러스(203)의 길이에 수직한 방향으로) 이동시킴으로써 촉각적 출력을 생성한다.
스타일러스(203)는 또한 선택적으로 스타일러스(203)의 위치 및 위치 상태에 관한 정보를 획득하기 위해 (예컨대, 관성 측정 유닛(IMU)의 일부로서) 하나 이상의 가속도계(467), 자이로스코프(468), 및/또는 자력계(470)를 포함한다. 도 4는 주변기기 인터페이스(418)와 결합된 센서들(467, 469, 470)을 도시한다. 대안적으로, 센서들(467, 469, 470)은 선택적으로 I/O 서브시스템(406) 내의 입력 제어기(460)와 결합된다. 스타일러스(203)는 선택적으로 스타일러스(203)의 위치에 관한 정보를 획득하기 위한 GPS(또는 GLONASS 또는 다른 글로벌 내비게이션 시스템) 수신기(도시하지 않음)를 포함한다.
일부 실시예들에서, 메모리(402)에 저장된 소프트웨어 컴포넌트들은 운영 체제(426), 통신 모듈(또는 명령어들의 세트)(428), 접촉/모션 모듈(또는 명령어들의 세트)(430), 위치결정 모듈(또는 명령어들의 세트)(431), 및 위성 위치확인 시스템(GPS) 모듈(또는 명령어들의 세트)(435)을 포함한다. 또한, 일부 실시예들에서, 메모리(402)는 도 4에 도시된 바와 같이 디바이스/글로벌 내부 상태(457)를 저장한다. 디바이스/글로벌 내부 상태(457)는 다음 중 하나 이상을 포함한다: 센서 상태, 예컨대, 스타일러스의 다양한 센서들 및 기타 입력 또는 제어 디바이스들(416)로부터 얻어진 정보; 위치 상태, 예컨대, 디바이스(예컨대, 디바이스(100))에 대한 스타일러스의 위치(예컨대, 위치, 배향, 틸트, 롤 및/또는 거리로서, 도 5a 및 도 5b에 도시된 바와 같음)에 관한 정보; 및 스타일러스의 위치(예컨대, GPS 모듈(435)에 의해 결정됨)에 관한 위치 정보.
운영 체제(426)(예컨대, iOS, 다윈, RTXC, 리눅스, 유닉스, OS X, 윈도우, 또는 VxWorks와 같은 내장형 운영 체제)는 일반적인 시스템 태스크들(예컨대, 메모리 관리, 전력 관리 등)을 제어 및 관리하기 위한 다양한 소프트웨어 컴포넌트들 및/또는 드라이버들을 포함하고, 다양한 하드웨어 및 소프트웨어 컴포넌트들 사이의 통신을 용이하게 한다.
통신 모듈(428)은 선택적으로 하나 이상의 외부 포트(424)를 통해 다른 디바이스들과의 통신을 용이하게 하고, RF 회로부(408) 및/또는 외부 포트(424)에 의해 수신되는 데이터를 처리하기 위한 다양한 소프트웨어 컴포넌트들을 또한 포함한다. 외부 포트(424)(예컨대, 범용 직렬 버스(USB), 파이어와이어 등)는 다른 디바이스들에 직접적으로 또는 네트워크(예컨대, 인터넷, 무선 LAN 등)를 통해 간접적으로 결합하도록 구성된다. 일부 실시예들에서, 외부 포트는 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 일부 아이폰®, 아이팟 터치®, 및 아이패드® 디바이스들에서 사용되는 라이트닝 커넥터와 동일하거나 유사하고/하거나 호환가능한 라이트닝 커넥터이다.
접촉/모션 모듈(430)은 선택적으로 스타일러스(203) 및 스타일러스(203)의 기타 터치 감응형 디바이스들(예컨대, 스타일러스(203)의 버튼 또는 기타 터치 감응형 컴포넌트들)과의 접촉을 검출한다. 접촉/모션 모듈(430)은 접촉의 검출(예컨대, 디바이스(100)의 터치 스크린(112)과 같은 터치 감응형 디스플레이, 또는 책상 표면과 같은 다른 표면을 이용한 스타일러스의 팁의 검출)과 관련된 다양한 동작들, 예컨대, 접촉이 발생했는지 결정하는 것(예컨대, 터치-다운 이벤트를 검출), 접촉의 세기(예컨대, 접촉의 힘 또는 압력 또는 접촉의 힘 또는 압력에 대한 대체물)를 결정하는 것, 접촉의 이동이 있는지 결정하고 (예컨대, 디바이스(100)의 터치 스크린(112)에 걸쳐) 이동을 추적하는 것, 및 접촉이 중지되었는지 결정하는 것(예컨대, 리프트오프 이벤트 또는 접촉의 중단을 검출)을 수행하기 위한 소프트웨어 컴포넌트들을 포함한다. 일부 실시예들에서, 접촉/모션 모듈(430)은 I/O 서브시스템(406)으로부터 접촉 데이터를 수신한다. 일련의 접촉 데이터에 의해 표현되는 접촉 지점의 이동을 결정하는 것은, 선택적으로, 접촉 지점의 속력(크기), 속도(크기 및 방향), 및/또는 가속도(크기 및/또는 방향의 변화)를 결정하는 것을 포함한다. 전술된 바와 같이, 일부 실시예들에서, 접촉의 검출과 관련된 이러한 동작들 중 하나 이상이 디바이스에 의해 접촉/모션 모듈(130)을 이용하여 (접촉/모션 모듈(430)을 이용하는 스타일러스에 추가하거나 대신하여) 수행된다.
접촉/모션 모듈(430)은 선택적으로 스타일러스(203)에 의한 제스처 입력을 검출한다. 스타일러스(203)를 이용한 상이한 제스처들은 상이한 접촉 패턴들(예컨대, 검출된 접촉들의 상이한 모션, 타이밍, 및/또는 세기)을 갖는다. 따라서, 제스처는, 선택적으로, 특정 접촉 패턴을 검출함으로써 검출된다. 예를 들어, 단일 탭 제스처를 검출하는 것은 터치-다운 이벤트를 검출한 다음에 터치-다운 이벤트와 동일한 위치(또는 실질적으로 동일한 위치)(예컨대, 아이콘의 위치)에서 리프트오프 이벤트를 검출하는 것을 포함한다. 다른 예로서, 스와이프 제스처를 검출하는 것은 터치-다운 이벤트를 검출한 다음에 하나 이상의 스타일러스-드래깅 이벤트를 검출하고, 후속적으로 리프트오프 이벤트를 검출하는 것을 포함한다. 전술된 바와 같이, 일부 실시예들에서, 제스처 검출이 디바이스에 의해 접촉/모션 모듈(130)을 이용하여 (접촉/모션 모듈(430)을 이용하는 스타일러스에 추가하거나 대신하여) 수행된다.
위치결정 모듈(431)은, 가속도계(467), 자이로스코프(468), 및/또는 자력계(469)와 함께, 선택적으로 참조의 특정 프레임에서 스타일러스의 자세(롤, 피치 및/또는 요)와 같은 스타일러스에 관한 위치 정보를 검출한다. 위치결정 모듈(431)은, 가속도계(467), 자이로스코프(468), 및/또는 자력계(469)와 함께, 선택적으로 스타일러스의 플릭, 탭, 및 롤과 같은 스타일러스 이동 제스처들을 검출한다. 위치결정 모듈(431)은 스타일러스의 위치를 검출하는 것 및 특정 참조 프레임에서 스타일러스의 위치의 변경을 검출하는 것과 관련된 다양한 동작들을 수행하기 위한 소프트웨어 컴포넌트들을 포함한다. 일부 실시예들에서, 위치결정 모듈(431)은 디바이스에 대한 스타일러스의 위치 상태를 검출하고 디바이스에 대한 스타일러스의 위치 상태의 변경을 검출한다. 전술된 바와 같이, 일부 실시예들에서, 디바이스(100 또는 300)는 위치결정 모듈(131)을 이용하여 (위치결정 모듈(431)을 이용하는 스타일러스에 추가하여 또는 이를 대신하여) 디바이스에 대한 스타일러스의 위치 상태 및 스타일러스의 위치 상태의 변경을 결정한다.
햅틱 피드백 모듈(433)은 스타일러스(203)와의 사용자 상호작용들에 응답하여 스타일러스(203) 상의 하나 이상의 위치에서 촉각적 출력들을 생성하기 위하여 촉각적 출력 생성기(들)(463)에 의해 이용되는 명령어들을 생성하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다.
GPS 모듈(435)은 스타일러스의 위치를 결정하고 다양한 애플리케이션들에서의 사용을 위해 (예컨대, 잃어버린 디바이스 및/또는 액세서리들을 찾기 위한 애플리케이션과 같은 위치 기반 서비스를 제공하는 애플리케이션들에) 이 정보를 제공한다.
상기의 식별된 모듈들 및 애플리케이션들 각각은 위에서 기술된 하나 이상의 기능들 및 본 출원에 기술되는 방법들(예컨대, 본 명세서에 기술되는 컴퓨터 구현 방법들 및 다른 정보 프로세싱 방법들)을 수행하기 위한 실행가능한 명령어들의 세트에 대응한다. 이러한 모듈들(즉, 명령어들의 세트들)은 별개의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요가 없으며, 따라서 이들 모듈의 다양한 서브세트들이 선택적으로 다양한 실시예들에서 조합되거나 그렇지 않으면 재배열된다. 일부 실시예들에서, 메모리(402)는 선택적으로, 상기 식별된 모듈들 및 데이터 구조들의 서브세트를 저장한다. 또한, 메모리(402)는 선택적으로 위에서 기술되지 않은 추가의 모듈들 및 데이터 구조들을 저장한다.
도 5a 및 도 5b는 일부 실시예들에 따른, 터치 감응형 표면(예컨대, 디바이스(100)의 터치 스크린(112))에 대한 스타일러스(203)의 위치 상태를 예시한다. 일부 실시예들에서, 스타일러스(203)의 위치 상태는 다음에 대응한다(또는 나타낸다): 터치 감응형 표면 상에 스타일러스의 팁(또는 기타 대표적인 부분)을 투영한 위치(예컨대, (x,y) 위치(504), 도 5a), 터치 감응형 표면에 대한 스타일러스의 배향(예컨대, 배향(506), 도 5a), 터치 감응형 표면에 대한 스타일러스의 틸트(예컨대, 틸트(512), 도 5b), 및/또는 터치 감응형 표면에 대한 스타일러스의 거리(예컨대, 거리(514), 도 5b). 일부 실시예들에서, 스타일러스(203)의 위치 상태는 스타일러스의 피치, 요, 및/또는 롤(예컨대, 터치 감응형 표면(예컨대, 터치 스크린(112)) 또는 지면과 같은 특정 참조 프레임에 대한 스타일러스의 자세)에 대응한다(또는 나타낸다). 일부 실시예들에서, 위치 상태는 위치 파라미터들의 세트(예컨대, 하나 이상의 위치 파라미터)를 포함한다. 일부 실시예들에서, 위치 상태는 전자 디바이스(예컨대, 디바이스(100))에 송신되는 스타일러스(203)로부터의 하나 이상의 측정치에 따라 검출된다. 예를 들어, 스타일러스는 스타일러스의 틸트(예컨대, 틸트(512), 도 5b) 및/또는 배향(예컨대, 배향(506), 도 5a)을 측정하고, 측정치를 디바이스(100)에 송신한다. 일부 실시예들에서, 위치 상태는, 스타일러스(203)로부터의 하나 이상의 측정치에 따라 검출된 위치 상태 대신에 또는 이와 함께, 터치 감응형 표면(예컨대, 디바이스(100)의 터치 스크린(112))에 의해 감지되는, 스타일러스의 하나 이상의 전극으로부터의 미가공 출력에 따라 검출된다. 예를 들어, 터치 감응형 표면은 스타일러스의 하나 이상의 전극으로부터의 미가공 출력을 수신하고, 미가공 출력에 기초하여 (선택적으로, 스타일러스에 의해 생성된 센서 측정치에 기초하여 스타일러스에 의해 제공된 위치 상태 정보와 함께) 스타일러스의 틸트 및/또는 배향을 계산한다.
도 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는 배향(506)을 갖는 스타일러스(203)를 예시한다. 일부 실시예들에서, 배향(506)은 터치 스크린(112) 상으로 스타일러스(203)의 투영(예컨대, 스타일러스(203)의 길이의 직교 투영 또는 터치 스크린(112) 상으로의 스타일러스(203)의 다른 두 지점의 투영 사이의 라인에 대응하는 라인)의 배향이다. 일부 실시예들에서, 배향(506)은 터치 스크린(112)과 평행한 평면 내의 적어도 하나의 축에 대하여 상대적이다. 일부 실시예들에서, 배향(506)은 터치 스크린(112)과 평행한 평면 내의 단일 축(예컨대, 축(508)으로서, 0 도에서 360 도까지 축(508)으로부터 시계방향 회전각을 이루며, 이는 도 5a에 도시된 바와 같음)에 대하여 상대적이다. 대안적으로, 일부 실시예들에서, 배향(506)은 터치 스크린(112)과 평행한 평면 내의 한 쌍의 축(예컨대, 도 5a에 도시된 바와 같이 x 축(590) 및 y 축(592), 또는 터치 스크린(112) 상에 디스플레이된 애플리케이션과 연관된 한 쌍의 축)에 대하여 상대적이다.
일부 실시예들에서, 표시(예컨대, 표시(516))가 터치 감응형 디스플레이(예컨대, 디바이스(100)의 터치 스크린(112)) 상에 디스플레이된다. 일부 실시예들에서, 표시(516)는 스타일러스가 터치 감응형 디스플레이를 터치하기 전에 스타일러스가 터치 감응형 디스플레이를 터치(또는 마크)할 곳을 도시한다. 일부 실시예들에서, 표시(516)는 터치 감응형 디스플레이 상에 드로잉되고 있는 마크의 일부분이다. 일부 실시예들에서, 표시(516)는 터치 감응형 디스플레이 상에 드로잉되고 있는 마크와 별개이고, 마크가 터치 감응형 디스플레이 상에 드로잉될 곳을 나타내는 가상 "펜 팁" 또는 기타 요소에 대응한다.
일부 실시예들에서, 표시(516)는 스타일러스(203)의 위치 상태에 따라 디스플레이된다. 예를 들어, 일부 상황들에서, 표시(516)는 (x,y) 위치(504)(도 5a 및 도 5b에 도시된 바와 같음)로부터 변위되고, 다른 상황들에서, 표시(516)는 (x,y) 위치(504)로부터 변위되지 않는다(예컨대, 틸트(512)가 0 도일 때 표시(516)는 (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는 틸트(512)를 갖는 스타일러스(203)를 예시한다. 일부 실시예들에서, 틸트(512)는 터치 감응형 표면의 표면의 법선(예컨대, 법선(510))(또한 줄여서 터치 감응형 표면의 법선으로 지칭됨)에 대한 각도이다. 도 5b에 도시된 바와 같이, 스타일러스가 터치 감응형 표면에 직각/수직일 때(예컨대, 스타일러스(203)가 법선(510)과 평행할 때) 틸트(512)는 0이고, 스타일러스가 터치 감응형 표면과 평행한 것에 더 가까이 기울어짐에 따라 틸트는 증가한다.
또한, 도 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)는 하기의 요소들, 또는 그들의 서브세트나 수퍼세트를 포함한다:
Figure 112018013962419-pct00018
셀룰러 및 Wi-Fi 신호들과 같은 무선 통신(들)에 대한 신호 강도 표시자(들)(602);
Figure 112018013962419-pct00019
시간(604);
Figure 112018013962419-pct00020
블루투스 표시자;
Figure 112018013962419-pct00021
배터리 상태 표시자(606);
Figure 112018013962419-pct00022
다음과 같은, 빈번하게 사용되는 애플리케이션들에 대한 아이콘들을 갖는 트레이(608):
o 부재 중 전화들 또는 음성메일 메시지들의 개수의 표시자(614)를 선택적으로 포함하는 "전화"라고 라벨링된 전화 모듈(138)에 대한 아이콘(616);
o 읽지 않은 이메일들의 개수의 표시자(610)를 선택적으로 포함하는 "메일"이라고 라벨링된 이메일 클라이언트 모듈(140)에 대한 아이콘(618);
o "브라우저"라고 라벨링된 브라우저 모듈(147)에 대한 아이콘(620);및
o 아이팟(애플 인크.의 상표) 모듈(152)로도 지칭되는, "아이팟"이라고 라벨링된 비디오 및 음악 재생기 모듈(152)에 대한 아이콘(622);및
Figure 112018013962419-pct00023
다음과 같은, 다른 애플리케이션들에 대한 아이콘들:
o "메시지"라고 라벨링된 IM 모듈(141)에 대한 아이콘(624);
o "캘린더"라고 라벨링된 캘린더 모듈(148)에 대한 아이콘(626);
o "사진"이라고 라벨링된 이미지 관리 모듈(144)에 대한 아이콘(628);
o "카메라"라고 라벨링된 카메라 모듈(143)에 대한 아이콘(630);
o "온라인 비디오"라고 라벨링된 온라인 비디오 모듈(155)에 대한 아이콘(632);
o "주식"이라고 라벨링된 주식 위젯(149-2)에 대한 아이콘(634);
o "지도"라고 라벨링된 지도 모듈(154)에 대한 아이콘(636);
o "날씨"라고 라벨링된 날씨 위젯(149-1)에 대한 아이콘(638);
o "시계"라고 라벨링된 알람 시계 위젯(169-6)에 대한 아이콘(640);
o "운동 지원"으로 라벨링된 운동 지원 모듈(142)에 대한 아이콘(642),
o "메모"라고 라벨링된 메모 모듈(153)에 대한 아이콘(644);및
o 디바이스(100)에 대한 설정들 및 그의 다양한 애플리케이션(136)들로의 액세스를 제공하는 설정 애플리케이션 또는 모듈에 대한 아이콘(646).
도 6a에 예시된 아이콘 라벨들이 단지 예시적인 것임에 주목하여야 한다. 예를 들면, 일부 실시예들에서, 비디오 및 음악 재생기 모듈(152)에 대한 아이콘(622)은 "음악" 또는 "음악 재생기"로 라벨링된다. 다른 라벨들이 선택적으로 다양한 애플리케이션 아이콘들에 대해 사용된다. 일부 실시예들에서, 각자의 애플리케이션 아이콘에 대한 라벨은 각자의 애플리케이션 아이콘에 대응하는 애플리케이션의 이름을 포함한다. 일부 실시예들에서, 특정 애플리케이션 아이콘에 대한 라벨은 특정 애플리케이션 아이콘에 대응하는 애플리케이션의 이름과는 별개이다.
도 6b는 디스플레이(650)와 별개인 터치 감응형 표면(651)(예컨대, 태블릿 또는 터치 패드(355), 도 3)을 갖는 디바이스(예컨대, 디바이스(300), 도 3) 상의 예시적인 사용자 인터페이스를 예시한다. 디바이스(300)는 또한, 선택적으로, 터치 감응형 표면(651) 상의 접촉들의 세기를 검출하기 위한 하나 이상의 접촉 세기 센서들(예컨대, 센서들(359) 중 하나 이상) 및/또는 디바이스(300)의 사용자에 대한 촉각적 출력들을 생성하기 위한 하나 이상의 촉각적 출력 생성기들(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) 상의 사용자 인터페이스를 조작하는 데 사용된다. 유사한 방법들이, 선택적으로, 본 명세서에 기술된 다른 사용자 인터페이스들에 이용된다는 것이 이해되어야 한다.
부가적으로, 다음의 예들이 주로 손가락 입력들(예컨대, 손가락 접촉들, 손가락 탭 제스처들, 손가락 스와이프 제스처들 등)을 참조하여 주어지지만, 몇몇 실시예들에서, 손가락 입력들 중 하나 이상은 다른 입력 디바이스로부터의 입력(예컨대, 스타일러스 입력)으로 대체된다는 것을 이해하여야 한다.
본 명세서에 사용되는 바와 같이, "포커스 선택자"라는 용어는 사용자와 상호작용하고 있는 사용자 인터페이스의 현재 부분을 나타내는 입력 요소를 지칭한다. 커서 또는 다른 위치 마커를 포함하는 일부 구현예들에서, 커서가 특정 사용자 인터페이스 요소(예컨대, 버튼, 윈도우, 슬라이더 또는 다른 사용자 인터페이스 요소) 위에 있는 동안에 입력(예컨대, 누르기 입력)이 터치 감응형 표면(예컨대, 도 3에서의 터치 패드(355) 또는 도 6b에서의 터치 감응형 표면(651)) 상에서 검출될 때 특정 사용자 인터페이스 요소가 검출된 입력에 따라 조정되도록, 커서는 "포커스 선택자"로서의 역할을 한다. 터치 스크린 디스플레이 상의 사용자 인터페이스 요소들과의 직접적인 상호작용을 가능하게 하는 터치 스크린 디스플레이(예컨대, 도 1a에서의 터치 감응형 디스플레이 시스템(112) 또는 도 6a에서의 터치 스크린)를 포함하는 일부 구현예들에서, 입력(예컨대, 접촉에 의한 누르기 입력)이 특정 사용자 인터페이스 요소(예컨대, 버튼, 윈도우, 슬라이더 또는 다른 사용자 인터페이스 요소)의 위치에 있는 터치 스크린 디스플레이 상에서 검출될 때 특정 사용자 인터페이스 요소가 검출된 입력에 따라 조정되도록, 터치 스크린 상의 검출된 접촉은 "포커스 선택자"로서의 역할을 한다. 일부 구현예들에서, (예를 들어, 포커스를 하나의 버튼으로부터 다른 버튼으로 이동시키도록 탭 키 또는 화살표 키를 사용함으로써) 터치 스크린 디스플레이 상의 대응하는 커서의 이동 또는 접촉의 이동 없이 포커스가 사용자 인터페이스의 하나의 영역으로부터 사용자 인터페이스의 다른 영역으로 이동되며; 이러한 구현예들에서, 포커스 선택자는 사용자 인터페이스의 상이한 영역들 사이에서의 포커스의 이동에 따라 움직인다. 포커스 선택자가 가지는 특정 형태와 무관하게, 포커스 선택자는 일반적으로 (예컨대, 사용자가 상호작용하고자 하는 사용자 인터페이스의 요소를 디바이스에 나타내는 것에 의해) 사용자 인터페이스와의 사용자의 의도된 상호작용을 전달하기 위해 사용자에 의해 제어되는 사용자 인터페이스 요소(또는 터치 스크린 디스플레이 상의 접촉)이다. 예를 들어, 터치 감응형 표면(예컨대, 터치 패드 또는 터치 스크린) 상에서 누르기 입력이 검출되는 동안 각자의 버튼 위의 포커스 선택자(예컨대, 커서, 접촉 또는 선택 상자)의 위치는 (디바이스의 디스플레이 상에 보여지는 다른 사용자 인터페이스 요소들과 달리) 사용자가 각자의 버튼을 활성화시키려고 하고 있다는 것을 나타낼 것이다.
명세서 및 청구범위에서 사용되는 바와 같이, 터치 감응형 표면 상에의 접촉의 "세기"라는 용어는 터치 감응형 표면 상에의 접촉(예컨대, 손가락 접촉 또는 스타일러스 접촉)의 힘 또는 압력(단위 면적 당 힘), 또는 터치 감응형 표면 상에의 접촉의 힘 또는 압력에 대한 대체물(대용물)을 지칭한다. 접촉의 세기는, 적어도 4개의 구별되는 값들을 포함하고 더 전형적으로는 수백 개(예컨대, 적어도 256개)의 구별되는 값들을 포함하는 일정 범위의 값들을 갖는다. 접촉의 세기는 다양한 접근법들, 및 다양한 센서들 또는 센서들의 조합들을 이용하여, 선택적으로 결정(또는 측정)된다. 예를 들어, 터치 감응형 표면 아래의 또는 그에 인접한 하나 이상의 힘 센서는 터치 감응형 표면 상의 다양한 지점들에서 힘을 측정하는 데 선택적으로 사용된다. 일부 구현예들에서, 다수의 힘 센서들로부터의 힘 측정치들이 접촉의 추정되는 힘을 결정하기 위해 결합(예컨대, 가중 평균 또는 합계)된다. 유사하게, 스타일러스의 압력 감응형 팁이 터치 감응형 표면 상의 스타일러스의 압력을 결정하는 데 선택적으로 사용된다. 대안적으로, 터치 감응형 표면 상에서 검출된 접촉 면적의 크기 및/또는 그에 대한 변화들, 접촉 부근의 터치 감응형 표면의 커패시턴스 및/또는 그에 대한 변화들, 및/또는 접촉 부근의 터치 감응형 표면의 저항 및/또는 그에 대한 변화들은, 선택적으로, 터치 감응형 표면 상의 접촉의 힘 또는 압력에 대한 대체물로서 이용된다. 일부 구현예들에서, 접촉 힘 또는 압력에 대한 대체 측정치들은 세기 임계치가 초과되었는지 여부를 결정하는 데 직접 이용된다(예컨대, 세기 임계치는 대체 측정치들에 대응하는 단위로 기술된다). 일부 구현예들에서, 접촉 힘 또는 압력에 대한 대체 측정치들은 추정된 힘 또는 압력으로 변환되고, 추정된 힘 또는 압력은 세기 임계치가 초과되었는지 여부를 결정하기 위해 이용된다(예컨대, 세기 임계치는 압력의 단위로 측정된 압력 임계치이다). 사용자 입력의 속성으로서 접촉의 세기를 사용함으로써, 사용자는 그렇지 않았으면 어포던스들을 (예컨대, 터치 감응형 디스플레이 상에) 디스플레이하고/하거나 (예컨대, 터치 감응형 디스플레이, 터치 감응형 표면, 또는 노브(knob) 또는 버튼과 같은 물리적/기계적 제어부를 통해) 사용자 입력을 수신하기 위하여 한정된 실면적을 갖는 축소된 디바이스 상에서 사용자에 의해 손쉽게 액세스가 가능하지 않을 수도 있는 부가적인 디바이스 기능에 액세스하게 할 수 있다.
일부 실시예들에서, 접촉/모션 모듈(130 및/또는 430)은 동작이 사용자에 의해 수행되었는지 결정하기 위해(예컨대, 사용자가 아이콘을 "클릭"했는지 결정하기 위해) 하나 이상의 세기 임계치의 세트를 이용한다. 일부 실시예들에서, 적어도 세기 임계치들의 서브세트가 소프트웨어 파라미터들에 따라 결정된다(예컨대, 세기 임계치들은 특정 물리적 액추에이터들의 활성화 임계치들에 의해 결정되지 않으며, 디바이스(100)의 물리적 하드웨어를 변경함이 없이 조정될 수 있다). 예를 들면, 트랙패드 또는 터치 스크린 디스플레이의 마우스 "클릭" 임계치는 트랙패드 또는 터치 스크린 디스플레이 하드웨어를 변경함이 없이 넓은 범위의 미리정의된 임계치 값들 중 임의의 것으로 설정될 수 있다. 추가적으로, 일부 실시예들에서, 디바이스의 사용자는 (예컨대, 개별 세기 임계치들을 조정함으로써 그리고/또는 복수의 세기 임계치를 시스템 레벨 클릭 "세기" 파라미터로 한꺼번에 조정함으로써) 세기 임계치들의 세트 중의 하나 이상의 세기 임계치를 조정하기 위한 소프트웨어 설정들을 제공받는다.
명세서 및 청구범위에서 사용되는 바와 같이, 접촉의 "특성 세기"라는 용어는 접촉의 하나 이상의 세기들에 기초한 접촉의 특성을 지칭한다. 일부 실시예들에서, 특성 세기는 다수의 세기 샘플들에 기초한다. 특성 세기는, 선택적으로, 미리정의된 수의 세기 샘플들, 또는 미리정의된 이벤트에 대해(예컨대, 접촉을 검출한 후에, 접촉의 리프트오프를 검출하기 이전, 접촉의 이동의 시작을 검출하기 이전 또는 후에, 접촉의 종료를 검출하기 이전, 접촉의 세기의 증가를 검출하기 이전 또는 후에, 및/또는 접촉의 세기의 감소를 검출하기 이전 또는 후에) 미리결정된 기간(예컨대, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 초) 동안 수집된 세기 샘플들의 세트에 기초한다. 접촉의 특성 세기는, 선택적으로, 접촉의 세기들의 최대 값, 접촉의 세기들의 중간 값(mean value), 접촉의 세기들의 평균값(average value), 접촉의 세기들의 상위 10 백분위 값(top 10 percentile value), 접촉의 세기들의 최대 값의 절반의 값, 접촉의 세기들의 최대 값의 90 퍼센트의 값 등 중 하나 이상에 기초한다. 일부 실시예들에서, 접촉의 지속기간은 (예컨대, 특성 세기가 시간의 경과에 따른 접촉의 세기의 평균일 때) 특성 세기를 결정하는 데 사용된다. 일부 실시예들에서, 동작이 사용자에 의해 수행되었는지 여부를 결정하기 위해, 특성 세기가 하나 이상의 세기 임계치들의 세트와 비교된다. 예를 들어, 하나 이상의 세기 임계치의 세트는 제1 세기 임계치 및 제2 세기 임계치를 포함할 수 있다. 이 예에서, 제1 세기 임계치를 초과하지 않는 특성 세기를 갖는 접촉의 결과, 제1 동작이 행해지고, 제1 세기 임계치를 초과하지만 제2 세기 임계치를 초과하지 않는 특성 세기를 갖는 접촉의 결과, 제2 동작이 행해지며, 제2 세기 임계치 초과의 특성 세기를 갖는 접촉의 결과, 제3 동작이 행해진다. 일부 실시예들에서, 특성 세기와 하나 이상의 세기 임계치 사이의 비교는, 제1 동작 또는 제2 동작을 수행할지를 결정하기 위해 사용되기보다는, 하나 이상의 동작을 수행할지 여부(예컨대, 개개의 옵션을 수행할지 또는 개개의 동작을 수행하는 것을 보류할지)를 결정하기 위해 사용된다.
일부 실시예들에서, 특성 세기를 결정하기 위해 제스처의 일부분이 식별된다. 예를 들어, 터치 감응형 표면은 시작 위치로부터 이동하여 종료 위치(이 지점에서 접촉의 세기가 증가함)에 도달하는 연속적인 스와이프 접촉(예컨대, 드래그 제스처)을 수신할 수 있다. 이 예에서, 종료 위치에서의 접촉의 특성 세기는 스와이프 접촉 전체가 아니라 연속적인 스와이프 접촉의 일부분에만(예컨대, 종료 위치에서의 스와이프 접촉의 부분에만) 기초할 수 있다. 일부 실시예들에서, 접촉의 특성 세기를 결정하기 전에 스와이프 접촉의 세기들에 평활화 알고리즘(smoothing algorithm)이 적용될 수 있다. 예를 들어, 평활화 알고리즘은, 선택적으로, 비가중 이동 평균(unweighted sliding-average) 평활화 알고리즘, 삼각(triangular) 평활화 알고리즘, 메디안 필터(median filter) 평활화 알고리즘, 및/또는 지수(exponential) 평활화 알고리즘 중 하나 이상을 포함한다. 일부 상황들에서, 이 평활화 알고리즘들은 특성 세기를 결정하기 위해 스와이프 접촉의 세기들에서의 좁은 급등(spike)들 또는 급감(dip)들을 제거한다.
아래에 기술된 사용자 인터페이스 도면들(예컨대, 도 7a 내지 도 7bbb)은, 선택적으로, 하나 이상의 세기 임계치들(예컨대, 제1 세기 임계치(IL), 제2 세기 임계치(IM), 제3 세기 임계치(IH), 및/또는 하나 이상의 다른 세기 임계치들)에 대한 터치 감응형 표면 상의 접촉의 현재 세기를 나타내는 다양한 세기 다이어그램을 포함한다. 이러한 세기 다이어그램은 전형적으로, 디스플레이되는 사용자 인터페이스의 부분은 아니지만, 도면들의 해석에 도움을 주기 위해 제공된다. 일부 실시예들에서, 제1 세기 임계치는, 디바이스가 물리적 마우스의 버튼 또는 트랙패드를 클릭하는 것과 전형적으로 연관된 동작들을 수행하게 될 세기에 대응한다. 일부 실시예들에서, 제2 및 제3 세기 임계치들은, 디바이스가 물리적 마우스의 버튼 또는 트랙패드를 클릭하는 것과 전형적으로 연관된 동작들과는 상이한 동작들을 수행하게 될 세기들에 대응한다. 일부 실시예들에서, 접촉이 제1 세기 임계치 미만의(예컨대, 그리고 공칭 접촉 검출 세기 임계치(이 미만에서는 접촉이 더 이상 검출되지 않음) 초과의) 특성 세기로 검출될 때, 디바이스는 가볍게 누르기 세기 임계치 또는 깊게 누르기 세기 임계치와 연관된 동작을 수행함이 없이 터치 감응형 표면 상의 접촉의 이동에 따라 포커스 선택자를 이동시킬 것이다. 일반적으로, 달리 언급되지 않는 한, 이 세기 임계치들은 사용자 인터페이스 도면들의 상이한 세트들 사이에서 일관성이 있다.
일부 실시예들에서, 디바이스에 의해 검출된 입력들에 대한 디바이스의 응답은 입력 동안 접촉 세기에 기초한 기준들에 따라 달라진다. 예를 들어, 일부 입력들의 경우, 입력 동안 제1 세기 임계치를 초과하는 접촉의 세기는 제1 응답을 트리거한다. 일부 실시예들에서, 디바이스에 의해 검출된 입력들에 대한 디바이스의 응답은 입력 동안의 접촉 세기 및 시간 기반 기준들 둘 모두를 포함하는 기준들에 따라 달라진다. 예를 들어, 일부 입력들의 경우, (예컨대, 가볍게 누르기에 대한) 제1 세기 임계치보다 큰, 입력 동안의 제2 세기 임계치를 초과하는 접촉의 세기는, 제1 세기 임계치를 충족시키는 것과 제2 세기 임계치를 충족시키는 것 사이에서 지연 시간이 경과한 경우에만, 제2 응답을 트리거한다. 이러한 지연 시간은 전형적으로 지속기간이 200 ms 미만(예컨대, 제2 세기 임계치의 크기에 따라 40, 100, 또는 120 ms이고, 이때 제2 세기 임계치가 증가함에 따라 지연 시간이 증가함)이다. 이러한 지연 시간은 제2 응답의 우발적 트리거링의 방지를 돕는다. 다른 예로서, 일부 입력들의 경우, 제1 세기 임계치가 충족되는 시간 이후에 발생하는 민감도 감소(reduced-sensitivity) 기간이 있다. 민감도 감소 기간 동안, 제2 세기 임계치가 증가된다. 제2 세기 임계치의 이러한 일시적인 증가는 또한 제2 응답의 우발적 트리거링의 방지를 돕는다. 다른 입력들의 경우, 제2 응답은 시간 기반 기준들에 의존하지 않는다.
일부 실시예들에서, 입력 세기 임계치들 및/또는 대응하는 출력들 중 하나 이상은 하나 이상의 요인, 예컨대 사용자 설정, 접촉 모션, 입력 타이밍, 애플리케이션 실행, 세기가 적용되는 속도, 동시 입력들의 수, 사용자 이력, 환경적 요인(예컨대, 주변 잡음), 포커스 선택자 위치 등에 기초하여 달라진다. 예시적인 요인들이 미국 특허 출원 번호 제14/399,606호 및 제14/624,296호에 기술되고, 이는 본 명세서에 전체적으로 참조로서 포함된다.
세기 임계치(IL) 미만의 세기로부터 세기 임계치(IL)와 세기 임계치(IM) 사이의 세기로의 접촉의 특성 세기의 증가는, 때때로 "가볍게 누르기" 입력으로서 지칭된다. 세기 임계치(IM) 미만의 세기로부터 세기 임계치(IM) 초과의 세기로의 접촉의 특성 세기의 증가는, 때때로 "깊게 누르기" 입력으로서 지칭된다. 일부 실시예들에서, 세기 임계치(IH) 미만의 세기로부터 세기 임계치(IH) 초과의 세기로의 접촉의 특성 세기의 증가는 또한, "깊게 누르기" 입력으로서 지칭된다. 접촉 검출 세기 임계치 미만의 세기로부터 접촉 검출 세기 임계치와 세기 임계치(IL) 사이의 세기로의 접촉의 특성 세기의 증가는 때때로 터치 표면 상의 접촉의 검출로서 지칭된다. 접촉 검출 세기 임계치 초과의 세기로부터 접촉 검출 세기 임계치 미만의 세기로의 접촉의 특성 세기의 감소는 때때로 터치 표면으로부터의 접촉의 리프트오프의 검출로서 지칭된다. 일부 실시예들에서, 접촉 검출 세기 임계치는 0이다. 일부 실시예들에서, 접촉 검출 세기 임계치는 0 초과이다. 일부 실시예들에서 음영이 있는 원 또는 타원은 터치 감응형 표면 상의 접촉의 세기를 표현하기 위해 사용된다. 일부 실시예들에서, 음영이 없는 원 또는 타원은 개개의 접촉의 세기를 특정하지 않으면서 터치 감응형 표면 상의 개개의 접촉을 표현하기 위해 사용된다.
본 명세서에 기술된 일부 실시예들에서, 하나 이상의 동작은, 개개의 누르기 입력을 포함하는 제스처를 검출하는 것에 응답하여 또는 개개의 접촉(또는 복수의 접촉)으로 수행되는 개개의 누르기 입력을 검출하는 것에 응답하여 수행되며, 여기서 개개의 누르기 입력은 누르기-입력 세기 임계치 초과의 접촉(또는 복수의 접촉)의 세기의 증가를 검출하는 것에 적어도 부분적으로 기초하여 검출된다. 일부 실시예들에서, 개개의 동작은, 누르기-입력 세기 임계치 초과의 개개의 접촉의 세기의 증가(예컨대, 개개의 동작은 개개의 누르기 입력의 "다운 스트로크"에서 수행됨)를 검출하는 것에 응답하여 수행된다. 일부 실시예들에서, 누르기 입력은 누르기-입력 세기 임계치 초과의 개개의 접촉의 세기의 증가 및 누르기-입력 세기 임계치 미만의 접촉의 세기의 후속적인 감소를 포함하며, 개개의 동작은 누르기-입력 임계치 미만의 개개의 접촉의 세기의 후속적인 감소를 검출하는 것에 응답하여 수행된다(예를 들어, 개개의 동작은 개개의 누르기 입력의 "업 스트로크"에서 수행된다).
일부 실시예들에서, 디바이스는 때때로 "지터(jitter)"로 지칭되는 우발적 입력들을 방지하기 위해 세기 히스테리시스를 채용하며, 여기서 디바이스는 누르기-입력 세기 임계치에 대한 미리정의된 관계를 갖는 히스테리시스 세기 임계치(예컨대, 히스테리시스 세기 임계치는 누르기-입력 세기 임계치보다 X 세기 단위 낮거나, 히스테리시스 세기 임계치는 누르기-입력 세기 임계치의 75%, 90% 또는 어떤 적절한 비율임)를 정의하거나 선택한다. 따라서, 일부 실시예들에서, 누르기 입력은 누르기-입력 세기 임계치 초과의 개개의 접촉의 세기의 증가 및 누르기-입력 세기 임계치에 대응하는 히스테리시스 세기 임계치 미만의 접촉의 세기의 후속적인 감소를 포함하며, 개개의 동작은 히스테리시스 세기 임계치 미만의 개개의 접촉의 세기의 후속적인 감소를 검출하는 것에 응답하여 수행된다(예를 들어, 개개의 동작은 개개의 누르기 입력의 "업 스트로크"에서 수행된다). 유사하게, 일부 실시예들에서, 누르기 입력은 디바이스가 히스테리시스 세기 임계치 이하의 세기로부터 누르기-입력 임계치 이상의 세기로의 접촉의 세기의 증가, 및 선택적으로, 히스테리시스 세기 이하의 세기로의 접촉의 세기의 후속적인 감소를 검출하는 경우에만 검출되고, 개개의 동작은 누르기 입력(예컨대, 주변환경에 따른 접촉의 세기의 증가 또는 접촉의 세기의 감소)을 검출하는 것에 응답하여 수행된다.
설명의 편의상, 누르기-입력 세기 임계치와 연관된 누르기 입력에 응답하여 또는 누르기 입력을 포함하는 제스처에 응답하여 수행되는 동작들의 설명은, 선택적으로, 누르기-입력 세기 임계치 초과의 접촉의 세기의 증가, 히스테리시스 세기 임계치 미만의 세기로부터 누르기-입력 세기 임계치 초과의 세기로의 접촉의 세기의 증가, 누르기-입력 세기 임계치 미만의 접촉의 세기의 감소, 또는 누르기-입력 세기 임계치에 대응하는 히스테리시스 세기 임계치 미만의 접촉의 세기의 감소를 검출하는 것에 응답하여 트리거된다. 또한, 동작이 누르기-입력 세기 임계치 미만의 접촉의 세기의 감소를 검출하는 것에 응답하여 수행되는 것으로서 기술되어 있는 예들에서, 동작은, 선택적으로, 누르기-입력 세기 임계치에 대응하고 그보다 더 낮은 히스테리시스 세기 임계치 미만의 접촉의 세기의 감소를 검출하는 것에 응답하여 수행된다. 위에서 기술한 바와 같이, 일부 실시예들에서, 이러한 응답들의 트리거링은 또한 시간 기반 기준들이 충족됨(예컨대, 낮은 세기 임계치가 충족되는 것과 높은 세기 임계치가 충족되는 것 사이에 지연 시간이 경과됨)에 따라 달라진다.
사용자 인터페이스 및 연관된 프로세스
이제, 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 구비한 휴대용 다기능 디바이스(100) 또는 디바이스(300)와 같은 전자 디바이스 상에서 구현될 수 있는 사용자 인터페이스("UI") 및 연관된 프로세스의 실시예들에 대하여 집중한다.
도 7a 내지 도 7bbb는 일부 실시예들에 따른, 웹 페이지에서 명령어들로 터치 입력들을 프로세싱하기 위한 예시적인 사용자 인터페이스들을 예시한다. 이들 도면들에서의 사용자 인터페이스들은 도 8a 내지 도 8c 및 도 9에서의 프로세스들을 포함하는 아래에 기술되는 프로세스들을 예시하는 데 사용된다. 다음 예들 중 일부는 디스플레이(650)와는 별개인 터치 감응형 표면(651) 상의 입력들을 참조하여 주어질 것이지만, 일부 실시예들에서, 디바이스는 도 6a에 도시된 바와 같이, (터치 감응형 표면 및 디스플레이가 조합된) 터치 스크린 디스플레이 상의 입력들을 검출한다.
도 7a는 디스플레이(650) 상의 사용자 인터페이스(706)가 메일 애플리케이션(예컨대, 도 1a의 이메일 클라이언트 모듈(140))의 사용자 인터페이스를 포함하는 것을 예시한다.
도 7a는 또한 제스처 인식기들에 대한 상태 기계들(704)을 예시한다. 제스처 인식기들에 대한 상태 기계들(704) 및 (제스처 이벤트들의 처리를 포함하는) 이벤트 처리 동작들이, 전체적으로 본 명세서에 참고로 포함되는 부록 A에 상세하게 기술되어 있다. 이 예에서, 4개의 제스처 인식기들에 대한 상태 기계들(704)이 나타나 있는데, 각각은 도 7a에서 단일 글자에 의해 나타내었다: 드러냄 제스처(reveal gesture) 인식기(R), 프리뷰 제스처 인식기(P), 탭 제스처 인식기(T) 및 커밋 제스처(commit gesture) 인식기(C). 도 7a에 도시된 바와 같이, 별개의 세기 임계치들이 이러한 제스처 인식기들 중 3개와 연관된다: 제1 세기 임계치(IL)가 드러냄 제스처 인식기와 연관되고, 제2 세기 임계치(IM)가 프리뷰 제스처 인식기와 연관되고, 제3 세기 임계치(IH)가 커밋 제스처 인식기와 연관된다. 이 예에서, 제3 세기 임계치(IH)는 제2 세기 임계치(IM)보다 더 크고(즉, 그보다 더 높고), 제2 세기 임계치(IM)는 제1 세기 임계치(IL)보다 더 크다(즉, 그보다 더 높다).
도 7a는 사용자 인터페이스(706)에서의 사용자 인터페이스 객체(708) 또는 특징부 위에 위치되는 포커스 선택자(705)의 위치를 도시한다. 포커스 선택자(705)의 위치는 터치 감응형 표면(예컨대, 도 6b의 터치 감응형 표면(651) 또는 터치 스크린 디스플레이(650)의 터치 감응형 표면) 상의 대응하는 사용자 입력의 위치에 대응한다.
사용자 입력 세기 그래프(702)에 도시된 바와 같이, 사용자 입력의 세기(접촉 세기라고도 불림)는 초기에 제1 세기 임계치(IL) 미만이다.
도 7b는 포커스 선택자(705)에 대응하는 사용자 입력이 탭 제스처일 때 발생하는 새로운 사용자 인터페이스(710)를 도시한다. 세기 프로파일들(7102, 7104, 7106, 7108) 모두는, 시간(7002)에 종료되는 기간에 의해 표현되는 제1 미리정의된 기간의 완료 이전에 종료되는 탭 제스처들에 대응한다. 4개의 이러한 세기 프로파일들 모두는, 제스처의 피크 세기가 3개의 세기 임계치들 중 하나 이상의 세기 임계치들보다 더 크더라도, 탭 제스처들에 대응하는데, 이는 사용자 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되지 않기 때문이다.
일부 실시예들에서, 세기 프로파일(7110)은 또한, 사용자 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되더라도, 탭 제스처에 대응하는데, 이는 사용자 입력이 제1 세기 임계치(IL)를 절대 초과하지 않기 때문이다. 그러나, 일부 다른 실시예들에서, 세기 프로파일(7110)을 갖는 사용자 입력은 임의의 동작의 수행을 야기하지 않는 비-이벤트로서 해석된다.
도 7b는 또한 탭 제스처 인식기(T)에 대한 상태 기계가 도 7a에 도시된 바와 같은 가능 상태(Possible state)로부터 인식 상태(Recognized state)로 전이하는 것을 도시한다. 더욱이, 도 7b는 드러냄 제스처 인식기(R), 프리뷰 제스처 인식기(P), 및 커밋 제스처 인식기(C)에 대한 상태 기계들이 모두 가능 상태로부터 실패 상태(Failed state)로 전이하였다는 것을 도시한다. 이것은, 세기 프로파일들(7102, 7104, 7106, 7108, 7110) 모두에 대해, 입력이 그러한 제스처 인식기들에 의한 제스처 인식을 위해 요구되는 세기 입력 기준들 또는 지속기간 기준들을 만족하는 데 실패하였기 때문이다. 대안적으로, 또는 추가로, 실패 상태로 전이하는 제스처 인식기들 각각은, 탭 제스처 인식기(T)에 의한 탭 제스처의 인식이 모든 다른 제스처 인식기들로 하여금 실패 상태로 전이하게 하기 때문에 그렇게 된다.
도 7c는 도 7a에서의 사용자 인터페이스(706)의 상태로부터 그 사용자 인터페이스의 전이를 도시한다. 특히, 사용자 입력의 세기가 드러냄 제스처 인식기(R)에 대한 세기 입력 기준들을 만족한다는 결정에 따라, 드러냄 제스처 인식기는 시작 상태(Began state)로 전이한다. 일부 실시예들에서, 사용자 입력의 세기가 제1 세기 임계치(IL)에 도달할 때 사용자 입력의 세기는 드러냄 제스처 인식기(R)에 대한 세기 입력 기준들을 만족한다. 일부 다른 실시예들에서, 사용자 입력의 세기가 제1 세기 임계치(IL)를 초과할 때 사용자 입력의 세기는 드러냄 제스처 인식기(R)에 대한 세기 입력 기준들을 만족한다.
선택적으로, 드러냄 제스처 인식기가 시작 상태로 전이할 때, 포커스 선택자(705)는, 드러냄 제스처 인식기가 가능 상태에 있을 때와는 상이한 외관으로, 디스플레이되거나, 또는 디스플레이를 위해 제공된다.
일부 실시예들에서, 사용자 입력의 세기가 드러냄 제스처 인식기(R)에 대한 세기 입력 기준들을 만족한다는 결정에 따라, 사용자 입력의 세기가 드러냄 제스처 인식기(R)에 대한 세기 입력 기준들을 만족한다는 것을 나타내는, 내부 이벤트(7004)가 생성된다. 그 이벤트는 드러냄 제스처 인식기(R)에 제공되는데, 드러냄 제스처 인식기는 이벤트에 응답하여 시작 상태로 전이한다. 이벤트(7004)는 선택적으로, 제1 세기 임계치(IL)와 제2 세기 임계치(IM) 사이의 사용자 입력의 세기의 진행 정도를 나타내는, 도 7c에서 진행 표시자(750)로 그래픽으로 표현되는, 진행 표시자를 포함한다. 일부 실시예들에서, 진행 표시자(750)는, 예를 들어 0 내지 1의 값을 갖는, 정규화된 값이고, 초기에, 사용자 입력의 세기가 제1 세기 임계치(IL)와 같거나 또는 그에 도달하였을 때, 0의 값 또는 0에 가까운 값을 갖는다.
도 7d에서, 사용자 입력의 세기는, 도 7c에 도시된 바와 같은 제1 세기 임계치(IL)와 동일하거나 대략 동일한 세기로부터, 제1 세기 임계치(IL) 초과 제2 세기 임계치(IM) 미만인 세기로 변경되었다. 사용자 입력의 세기의 이러한 증가에 응답하여, 진행 표시자(750)의 값은, 제1 세기 임계치(IL)와 제2 세기 임계치(IM) 사이의 범위에서 현재 사용자 입력 세기가 속하는 곳을 나타내는 값으로 증가된다. 더욱이, 드러냄 제스처 인식기(R)의 상태는 변경 상태(Changed state)로 전이하고, 사용자 인터페이스(706)는, 사용자 입력의 위치에 대응하는 사용자 인터페이스 객체(708) - 이는 흐릿해지지 않음 - 를 제외하고, 흐릿해지거나, 또는 흐릿한 상태(blur state)로 전이한다. 이러한 방식으로, 사용자는, 사용자가 사용자 입력의 세기를 계속해서 증가시키는 경우 사용자 인터페이스 객체(708)와 관련한 액션 또는 동작이 발생할 것임을 통지받는다.
도 7e에서, 사용자 입력의 세기는 도 7d에서의 사용자 입력의 세기로부터 추가로 증가되었다. 드러냄 제스처 인식기(R)는 변경 상태에 유지된다. 추가로, 때때로 프리뷰 플래터(preview platter)라고 불리는, 프리뷰 영역(712)의 작은 버전이 사용자 인터페이스(706) 내에 또는 그 위에 디스플레이되는데, 이는 객체(708)를 제외하고 흐릿해진 채로 유지된다. 일부 실시예들에서, 프리뷰 영역(712)의 크기는 진행 표시자(750)의 값에 대응한다. 일부 실시예들에서, 프리뷰 영역(712)은 초기에 진행 표시자(750)가 미리정의된 값, 예컨대 0.4 또는 0.5에 도달할 때에만 디스플레이된다.
도 7f에서, 사용자 입력의 세기는 도 7e에서의 사용자 입력의 세기로부터 추가로 증가되었다. 드러냄 제스처 인식기(R)는 변경 상태에 유지되고, 사용자 인터페이스(706)는 객체(708)를 제외하고 흐릿해진 채로 유지된다. 추가로, 사용자 인터페이스(706) 내에 또는 그 위에 디스플레이되는 바와 같은, 프리뷰 영역(712)의 크기는 사용자 입력의 증가된 세기에 따라 또는 진행 표시자(750)의 증가된 값에 따라 증가되었다. 도 7f에서, 프리뷰 영역(712)은 사용자가 프리뷰 영역(712)의 콘텐츠를 판독하는 것을 가능하게 하기에 충분할 정도의 크기의 증가를 갖는다. 이 예에서, 프리뷰 영역(712)은 포커스 선택자(705)가 그 위에 위치되는 사용자 인터페이스 객체(708)에 대응하는 정보의 프리뷰를 포함한다. 이 예에서, 프리뷰된 정보는 포커스 선택자(705)가 그 위에 위치되는 사용자 인터페이스 객체(708)에 대응하는 사람과 연관된 접속들의 목록이다.
도 7g에서, 사용자 입력의 세기는 도 7e에서의 사용자 입력의 세기로부터 제2 세기 임계치(IM)와 동일하거나 대략 동일한 세기로 추가로 증가되었다. 진행 표시자(750)는 이제 그의 최대 값, 예를 들어 1을 가져서, 사용자 입력의 세기가 그 진행 표시자에 대응하는 범위의 최대 값에 도달하였음을 나타낸다. 선택적으로, 제2 세기 임계치(IM)와 제3 세기 임계치(IH) 사이의 세기 범위와 관련하여 사용자 입력의 상태를 나타내는, 제2 진행 표시자(752)가 생성된다. 도 7g에서, 제2 진행 표시자(752)는 그의 최소 값을 가져서, 사용자 입력의 세기가 제2 세기 임계치(IM)와 제3 세기 임계치(IH) 사이의 세기 범위의 하단에 있음을 나타낸다.
사용자 입력의 세기가 제2 세기 임계치(IM)에 도달함에 따라, 드러냄 제스처 인식기(R)는 변경 상태에 유지되거나, 또는 대안적으로 취소 상태(Canceled state)로 전이하고, 탭 제스처 인식기는 실패 상태로 전이하고, 프리뷰 제스처 인식기는 시작 상태로 전이하고, 프리뷰 영역(712)은 그의 최대 크기(때때로 본 명세서에서 전체 크기라고 불림)로, 또는 그의 최대 크기에 가까운 크기로 디스플레이된다. 프리뷰 영역(712)은 포커스 선택자(705)가 그 위에 위치되는 사용자 인터페이스 객체(708)에 대응하는 정보의 프리뷰를 계속해서 포함한다.
도 7h에서, 사용자 입력의 세기는 도 7g에서의 사용자 입력의 세기로부터 제2 세기 임계치(IM) 초과 제3 세기 임계치(H) 미만인 세기로 추가로 증가되었다. 진행 표시자(750)는 그의 최대 값, 예를 들어 1로 유지되는데, 이는 사용자 입력의 세기가 그 진행 표시자에 대응하는 범위의 최대 값 초과이기 때문이다. 제2 진행 표시자(752)는 이제 그 진행 표시자(752)에 대한 최소 값과 최대 값 사이의 중간 값을 가져서, 제2 세기 임계치(IM)와 제3 세기 임계치(IH) 사이의 세기 범위와 관련하여 사용자 입력의 현재 상태를 나타낸다.
사용자 입력의 세기가 제2 세기 임계치(IM)를 초과함에 따라, 드러냄 제스처 인식기(R)는 변경 상태에 유지되거나, 또는 대안적으로 취소 상태로 전이하고, 탭 제스처 인식기는 실패 상태에 유지되고, 프리뷰 제스처 인식기는 변경 상태로 전이하고, 프리뷰 영역(712)은 그의 최대 크기(때때로 본 명세서에서 전체 크기라고 불림)로 디스플레이된다. 프리뷰 영역(712)은 포커스 선택자(705)가 그 위에 위치되는 사용자 인터페이스 객체(708)에 대응하는 정보의 프리뷰를 계속해서 포함한다.
도 7i에서, 사용자 입력의 세기는 도 7h에서의 사용자 입력의 세기로부터 제3 세기 임계치(IH) 이상의 세기로 추가로 증가되었다. 진행 표시자(750)는 그의 최대 값, 예를 들어 1로 유지되는데, 이는 사용자 입력의 세기가 그 진행 표시자에 대응하는 범위의 최대 값 초과이기 때문이다. 제2 진행 표시자(752)는 이제 그의 최대 값을 가져서, 제2 세기 임계치(IM)와 제3 세기 임계치(IH) 사이의 세기 범위와 관련하여 사용자 입력의 현재 상태를 나타낸다. 선택적으로, 제3 세기 임계치(IH)에 도달할 시에, 사용자 입력의 세기를 나타내고 진행 표시자들(750, 752) 중 하나 또는 둘 모두를 선택적으로 포함하는 이벤트(7008)가 생성된다.
사용자 입력의 세기가 제3 세기 임계치(IH)에 도달함에 따라, 드러냄 제스처 인식기(R)는 취소 상태로 전이하고, 탭 제스처 인식기는 실패 상태에 유지되고, 프리뷰 제스처 인식기는 취소 상태로 전이하고, 커밋 제스처 인식기는 인식 상태로 전이한다. 더욱이, 사용자 입력의 세기가 제3 세기 임계치(IH)에 도달함에 따라, 프리뷰 영역(712)은 더 이상 디스플레이되지 않고, 대신에 사용자 인터페이스 객체(708)의 선택에 대응하는 새로운 사용자 인터페이스(710)가 디스플레이된다. 도 7i에 도시된 예에서, 사용자 인터페이스 객체(708)의 선택은, 사용자 인터페이스 객체(708)에 대응하는 사람 또는 엔티티에 대한 접속 정보가 디스플레이되거나, 또는 디스플레이를 위해 제공되도록 야기하였다.
도 7j에서, 사용자 입력의 세기는 도 7h에서의 사용자 입력의 세기로부터 제2 세기 임계치(IM) 미만의 세기로 감소되었다. 이 예에서, 사용자 입력의 세기는 제3 세기 임계치(IH)에 도달하지 않았고, 그에 따라 커밋 제스처 인식기는 가능 상태에 유지된다. 게다가, 진행 표시자(750)는 그의 최대 값 미만의 값으로 전이하는데, 이는 사용자 입력의 세기가 이제 그 진행 표시자에 대응하는 범위의 최대 값 미만이기 때문이다. 제2 진행 표시자(752)는 이제 그의 최소 값을 가져서, 제2 세기 임계치(IM)와 제3 세기 임계치(IH) 사이의 세기 범위와 관련하여 사용자 입력의 현재 상태를 나타낸다. 다시 말하면, 사용자 입력의 세기가 제2 세기 임계치(IM) 미만이기 때문에, 제2 진행 표시자(752)는 그의 최소 값을 갖는다. 선택적으로, 사용자 입력의 세기의 변화는 이벤트(도시되지 않음)가 생성되게 하는데, 여기서 이벤트는, 사용자 입력의 세기를 나타내고 진행 표시자들(750, 752) 중 하나 또는 둘 모두를 선택적으로 포함하는 정보를 포함한다.
사용자 입력의 세기가 제3 세기 임계치(IH)에 먼저 도달하지 않고서 제2 세기 임계치(IM) 미만의 세기로 감소함에 따라, 드러냄 제스처 인식기(R)는 변경 상태에 유지되고, 탭 제스처 인식기는 실패 상태에 유지되고, 프리뷰 제스처 인식기는 변경 상태에 유지되고, 커밋 제스처 인식기는 가능 상태에 유지된다. 더욱이, 사용자 입력의 감소된 세기에 따라, 프리뷰 영역(712)의 크기는, 사용자 입력의 세기가 보다 높았을 때(도 7h 참조) 프리뷰 영역이 디스플레이되었던 크기로부터 감소된다.
도 7k에서, 사용자 입력은, 제3 세기 임계치(IH)를 초과하지 않고서, 제1 세기 임계치(IL)에 이전에 도달하거나 또는 그를 초과한 후에(세기 프로파일(7112)에 대응함) 또는 제2 세기 임계치(IM)에 이전에 도달하거나 또는 그를 초과한 후에(세기 프로파일(7114)에 대응함), 사용자 입력의 0(zero) 세기에 의해 나타내는 바와 같이, 중지된다. 더욱이, 제스처의 지속기간은 시간(7002)에 대응하는 제1 미리정의된 기간을 초과하여, 제스처가 탭 기준들을 충족하지 않음을 나타내는데, 탭 기준들은 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 중지하는 것을 포함한다. 그 결과, 탭 제스처 인식기는 실패 상태로 전이하고, 커밋 제스처 인식기도 또한 실패 상태로 전이한다.
도 7k에서의 세기 프로파일(7114)에 따르면, 프리뷰 제스처 인식기는, 입력이 제2 세기 임계치(IM)를 만족하는 것을 포함하는 세기 입력 기준들을 입력의 세기가 만족하고 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것에 응답하여 제스처 동안 인식 상태로 전이하고, 후속하여, 입력이 터치 감응형 표면 상에 유지되는 것을 중지하는 것에 응답하여 실패 상태로 전이한다.
도 7k에서의 세기 프로파일(7112)에 따르면, 프리뷰 제스처 인식기는, 인식 상태로 먼저 전이하지 않고서, 가능 상태로부터 실패 상태로 전이하는데, 이는 세기 프로파일(7112)을 갖는 입력에 의해, 일시적으로 조차도, 프리뷰 제스처 인식기에 대한 세기 입력 기준들이 만족되지 않기 때문이다.
선택적으로, 드러냄 제스처 인식기는 세기 프로파일(7112) 또는 세기 프로파일(7114)을 갖는 입력에 응답하여 인식 상태로 전이하는데, 이는 입력의 세기가 제1 세기 임계치(IL)를 초과하고 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되기 때문이다. 도 7k에 도시되지 않은 일부 실시예들에서, 드러냄 제스처 인식기는 입력이 터치 감응형 표면 상에 유지되는 것을 중지하는 것에 응답하여 취소 상태로 전이한다.
도 7l에서, 활성 제스처 인식기들의 세트는 드러냄 제스처 인식기(R), 프리뷰 제스처 인식기(P), 팬 또는 스크롤 제스처 인식기(S) 및 커밋 제스처 인식기(C)를 포함한다. 도 7l에 도시된 바와 같이, 별개의 세기 임계치들이 이러한 제스처 인식기들 중 3개와 연관된다: 제1 세기 임계치(IL)가 드러냄 제스처 인식기와 연관되고, 제2 세기 임계치(IM)가 프리뷰 제스처 인식기와 연관되고, 제3 세기 임계치(IH)가 커밋 제스처 인식기와 연관된다.
도 7l은 사용자 인터페이스(706)에서의 사용자 인터페이스 객체(708) 또는 특징부 위에 위치되는 포커스 선택자(707)의 위치를 도시한다. 포커스 선택자(705)의 위치는 터치 감응형 표면(예컨대, 도 6b의 터치 감응형 표면(651) 또는 터치 스크린 디스플레이(650)의 터치 감응형 표면) 상의 대응하는 사용자 입력의 위치에 대응한다. 도 7l은 또한, 포커스 선택자(707)를 둘러싸는 파선 원 또는 다른 형상으로서 도시된, 입력 이동 제한 구역 또는 입력 이동 제한 외주부(714)를 도시한다. 전형적으로, 입력 이동 제한 외주부(714)는 실제로 디스플레이되지 않고, 대신에, 입력 이동 제한 외주부(714)는 제스처 인식기들 중 하나 이상의 제스처 인식기들에 의해 이용되는 입력 이동 제한을 나타낸다. 도 7l에 도시된 바와 같이, 사용자 입력의 세기는 3개의 세기 임계치들(IL, IM, IH) 중 임의의 것을 만족하지 않는다.
포커스 선택자(707)에 대응하는 입력이 도 7l에 도시된 위치로부터 도 7m에 도시된 위치로 이동할 때, 입력은, 포커스 선택자(707)가 입력 이동 제한 외주부(714)를 적어도 부분적으로 지나서 이동한 것에 의해 반영되는 바와 같이, 터치 감응형 표면을 가로질러 적어도 미리정의된 거리만큼 이동하였다. 그 결과, 그래픽 사용자 인터페이스(706)는 터치 감응형 표면 상의 입력에 의해 이동되는 거리에 대응하는 양만큼 팬하거나 또는 스크롤한다. 보다 일반적으로는, 입력이 터치 감응형 표면을 가로질러 적어도 미리정의된 거리만큼 이동하는 것에 응답하여, 제2 동작이 수행된다. 일부 실시예들에서, 제2 동작은 사용자 인터페이스의 적어도 일부분을 스크롤하는 것을 포함한다.
추가로, 도 7m에 도시된 바와 같이, 입력이 터치 감응형 표면을 가로질러 적어도 미리정의된 거리만큼 이동하는 것에 응답하여, 드러냄 제스처 인식기(R), 프리뷰 제스처 인식기(P), 및 커밋 제스처 인식기(C) 전부는 실패 상태로 전이하고, 팬 제스처 인식기(S)는 시작 상태로 전이한다.
도 7n에서, 입력은, 완전히 입력 이동 제한 외주부(714)의 외부에 있지는 않은 포커스 선택자(707)의 추가 이동에 의해 표현되는 바와 같이, 터치 감응형 표면을 가로질러 계속해서 이동한다. 입력의 이러한 이동에 응답하여, 팬 제스처 인식기(S)는 변경 상태로 전이하고, 사용자 인터페이스(706)는 도 7m에서의 그의 위치와 비교하여 상방으로 추가로 스크롤된다.
도 7l, 도 7m 및 도 7n에서의 입력의 세기가 제1 세기 임계치(IL) 미만으로 유지됨을 주목한다. 입력의 세기가 제1 세기 임계치(IL)를 만족하는 결과들은 도 7o 내지 도 7s 및 다른 후속 도면들의 논의에서 하기에서 다뤄진다.
도 7o에서, 입력이, 포커스 선택자(707)에 의해 표현되는 바와 같이, 제1 세기 임계치(IL)를 만족하지 않는 세기로 입력 이동 제한 외주부(714)를 벗어나서 이미 이동한 후에, 입력의 세기는 사용자 입력 세기 그래프(70)에 도시된 바와 같이 제1 세기 임계치(IL)를 만족하도록 증가된다. 제1 세기 임계치(IL)의 만족은 포커스 선택자(707)의 변경된 외관에 의해 나타내진다. 그러나, 사용자 입력이 이제 제1 세기 임계치(IL)를 만족함에도 불구하고, 드러냄 제스처 인식기(R), 프리뷰 제스처 인식기(P), 및 커밋 제스처 인식기(C) 전부는 실패 상태에 유지되고, 팬 제스처 인식기(S)는 변경 상태에 유지된다. 전형적으로, 일단 제스처 인식기가 실패 상태로 전이하면, 사용자 입력이 중지될 때까지(즉, 사용자가 터치 감응형 표면에서 그의 손가락 또는 스타일러스 또는 다른 기구를 들어올릴 때까지), 그것은 인식 상태 또는 시작 상태와 같은 임의의 다른 상태로 전이할 수 없음을 주목한다.
일부 상황들에서, 사용자 인터페이스(706)는, 사용자 입력이 터치 감응형 표면을 가로질러 적어도 미리정의된 거리만큼 이동하기 전에, 입력의 세기가 제1 세기 임계치(IL)를 만족하는 것에 응답하여, 도 7l에 도시된 상태로부터 도 7p에 도시된 상태로 전이한다. 예를 들어, 도 7p에서, 입력은, 도 7l에 의해 나타낸 터치 감응형 표면과의 초기 접촉 이후로, 이동하지 않았거나 또는 실질적으로 동일한 위치에 유지되었다. 입력이 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족하는 것에 응답하여, 제1 동작이 수행된다. 이 예에서, 제1 동작은, 사용자 입력의 위치에 대응하는 사용자 인터페이스 객체(708) - 이는 흐릿해지지 않음 - 를 제외하고, 사용자 인터페이스(706)를 흐리게 하는 것, 또는 사용자 인터페이스(706)를 흐릿한 상태로 전이시키는 것을 포함한다.
더욱이, 일부 실시예들에서, 입력이 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족하는 것에 응답하여, 프리뷰 제스처 인식기(P)는 가능 상태로부터 시작 상태로 전이하고, 프리뷰 제스처 인식기(P)가 시작 상태로 전이하는 것에 응답하여, 상기 논의된 제1 동작의 수행이 발생한다.
추가로, 도 7p에 도시된 바와 같이, 입력이 실질적으로 그의 초기 위치에 유지되고(즉, 터치 감응형 표면을 가로질러 적어도 미리정의된 거리만큼 이동하지 않음) 입력이 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족하는 것에 응답하여, 프리뷰 제스처 인식기(P), 커밋 제스처 인식기(C), 및 팬 제스처 인식기(S) 전부는 가능 상태에 유지된다.
도 7p에서의 포커스 선택자(707)에 의해 나타낸 터치 감응형 표면 상의 입력은 때때로 입력의 제1 부분이라고 불리고, 도 7q에 도시된 동일한 입력의 후속 부분은 때때로 입력의 제2 부분이라고 불린다. 도 7p 및 도 7q와 관련하여 그리고 도 8a 내지 도 8e에 예시된 흐름도와 관련하여 더욱 상세하게 논의되는 일부 상황들에서, 입력의 제1 부분은 제1 제스처 인식기, 예를 들어, 드러냄 제스처 인식기로 프로세싱되고, 입력의 제2 부분은 제2 제스처 인식기, 예를 들어, 팬 제스처 인식기로 프로세싱된다.
도 7q에서, 프리뷰 제스처 인식기(P)가 (도 7p를 참조하여 상기 논의된 바와 같이) 가능 상태로부터 시작 상태로 전이한 후에, 입력이 터치 감응형 표면을 가로질러 적어도 미리정의된 거리만큼 이동한 것을 포함하는, 팬 기준들을 만족하기에 충분한 양만큼 입력이 이동한다. 입력이 팬 기준들을 만족하기에 충분한 양만큼 이동하는 것에 응답하여, 사용자 인터페이스(706)는 터치 감응형 표면을 가로지른 입력의 이동량에 대응하는 양만큼 스크롤되고, 드러냄 제스처 인식기(R)는 취소 상태로 전이하고, 프리뷰 제스처 인식기(P) 및 커밋 제스처 인식기(C)는 실패 상태로 전이하고, 팬 제스처 인식기(S)는 변경 상태로 전이한다. 일부 실시예들에서, 팬 제스처 인식기(S)의 변경 상태로의 전이는 사용자 인터페이스(706) 또는 사용자 인터페이스(706)의 적어도 일부분의 스크롤을 야기하거나 가능하게 하는 것이다.
도 7r은 도 7h에 대응하지만, 탭 제스처 인식기(T) 대신에 팬 제스처 인식기(S)를 갖는다. 도 7r에서, 팬 제스처 인식기(S)는, 프리뷰 제스처 인식기(P)의 시작 상태(도 7g 참조) 또는 변경 상태(도 7h 및 도 7r 참조)로의 전이 및 터치 감응형 표면과의 그의 초기 접촉 이후의 입력의 이동의 부족으로 인해 실패 상태에 있다. 포커스 선택자(707) 위의 화살표는, 입력이 이 예에서는 화살표에 의해 나타내는 상방 방향으로 이동하기 시작하였음을 나타낸다.
추가로, 도 7r에서, 입력이 제2 세기 임계치(IM)를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족하고 그 결과 프리뷰 제스처 인식기(P)가 시작 상태(도 7g 참조) 또는 변경 상태(도 7h 및 도 7r 참조)로 전이하였음을 주목한다.
도 7s는, 도 7r에 도시된 위치로부터 도 7s에 도시된 위치로의 입력의 이동 및 그의 대응하는 포커스 선택자(7078)를 도시한다. 이러한 논의의 목적을 위해 터치 감응형 표면을 가로질러 미리정의된 거리보다 더 멀리 이동하는 것으로 가정될 수 있는, 입력의 이러한 이동에도 불구하고, 드러냄 제스처 인식기(R) 및 프리뷰 제스처 인식기(P)는 변경 상태에 유지되고, 커밋 제스처 인식기(C)는 가능 상태에 유지되고, 팬 제스처 인식기(S)는 실패 상태에 유지된다. 일부 실시예들에서, 팬 제스처 인식기(S)가 실패 상태에 유지되는 이유는, 일단 제스처 인식기가 실패 상태로 전이하면, 사용자 입력이 중지될 때까지(즉, 사용자가 터치 감응형 표면에서 그의 손가락 또는 스타일러스 또는 다른 기구를 들어올릴 때까지), 그것은 인식 상태 또는 시작 상태와 같은 임의의 다른 상태로 전이할 수 없다는 것이다.
일부 실시예들에서, 프리뷰 영역(712)을 디스플레이하는 것과 함께(예컨대, 프리뷰 영역(712)을 디스플레이하는 것에 응답하여), (새로운) 제2 팬 제스처 인식기가 프리뷰 영역(712)에 대해 시작된다. 따라서, 그러한 실시예들에서, 팬 제스처 인식기(S)가 실패 상태에 있더라도, 프리뷰 영역(712)은 팬 제스처에 응답한다(예컨대, 프리뷰 영역(712)은, 프리뷰 영역(712)이 디스플레이(650)를 가로질러 이동되는 동안 메일 애플리케이션 사용자 인터페이스(706)가 정지 상태에 유지되도록 메일 애플리케이션 사용자 인터페이스(706)에 독립적으로, 제2 팬 제스처 인식기를 사용하여, 팬 제스처에 따라 디스플레이(650)를 가로질러 이동되는데, 이는 도 7o 및 도 7p에 도시된 바와 같은 팬 제스처 인식기(S)와 연관된 스크롤 동작과는 상이하다).
도 7t는, 탭 제스처 인식기(T)가 길게 누르기 제스처 인식기(L)에 의해 대체되었고, 포커스 선택자(709)가 포커스 선택자(705)를 대체한 것 이외에는, 도 7a와 유사하다. 포커스 선택자(709)에 대응하는 입력의 세기는 제1 세기 임계치(IL)를 만족하지 않고(예컨대, 그 미만이고), 터치 감응형 표면과의 입력의 초기 접촉 이후로 경과한 시간량은 시간(7116)에 대응하는 제1 미리정의된 기간 미만이다.
도 7u는 입력이 시간(7116)에 대응하는 제1 미리정의된 기간 동안 터치 감응형 표면과 접촉 상태로 유지되었고, 제1 세기 임계치(IL)를 만족하지 않는(예컨대, 그 미만인) 세기에 유지되었음을 도시한다. 일부 실시예들에서, 도 7u에 도시된 바와 같이, 입력이 제1 미리정의된 기간 동안 제1 세기 임계치 미만으로 유지되는 것을 포함하는 길게 누르기 기준들을 입력이 만족한다는 결정에 따라, 길게 누르기 제스처 인식기는 시작 상태로 전이하고, 드러냄 제스처 인식기(R), 프리뷰 제스처 인식기(P) 및 커밋 제스처 인식기(C)는 실패 상태로 전이한다.
더욱이, 일부 실시예들에서, 도 7u에 도시된 바와 같이, 입력이 제1 미리정의된 기간 동안 제1 세기 임계치 미만으로 유지되는 것을 포함하는 길게 누르기 기준들을 입력이 만족한다는 결정에 따라, 제2 동작이 수행된다. 도 7u에 도시된 예에서, 제2 동작은 포커스 선택자(709)의 현재 위치에 대응하는 객체(708)에 관련된 항목들의 메뉴(716)를 디스플레이하는 것을 포함한다.
도 7v는 입력이 제1 미리정의된 기간(예컨대, 시간(7116)에 종료되는 기간) 동안 제1 세기 임계치(예컨대, IL)를 만족하는 것을 포함하는, 세기 입력 기준들을 만족하는 입력에 응답하여, 도 7t에 도시된 뷰로부터의 사용자 인터페이스(706)의 변화를 도시한다. 도 7v에 도시된 바와 같이, 입력의 세기는 제1 세기 임계치(IL)를 초과하여 증가되었다. 이에 응답하여, 드러냄 제스처 인식기(R)는 도 7t에 도시된 바와 같은 가능 상태로부터 도 7v에 도시된 바와 같은 시작 상태로 전이한다. 일부 실시예들에서, 입력이 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족하는 것에 응답하여, 제1 동작이 수행된다. 이 예에서, 제1 동작은, 사용자 입력의 위치에 대응하는 사용자 인터페이스 객체(708) - 이는 흐릿해지지 않음 - 를 제외하고, 사용자 인터페이스(706)를 흐리게 하는 것, 또는 사용자 인터페이스(706)를 흐릿한 상태로 전이시키는 것을 포함한다.
도 7w는 입력이 제1 미리정의된 기간(예컨대, 시간(7116)에 종료되는 기간) 동안 제2 세기 임계치(예컨대, IM) 미만으로 유지되는 것을 포함하는, 세기 입력 기준들을 만족하는 입력에 응답하여, 도 7v에 도시된 뷰로부터의 사용자 인터페이스(706)의 변화를 도시한다. 일부 실시예들에서, 입력이 제1 미리정의된 기간 동안 제2 세기 임계치 미만으로 유지되는 것을 포함하는 길게 누르기 기준들을 입력이 만족한다는 결정에 따라, 제2 동작이 수행된다. 도 7w에 도시된 예에서, 제2 동작은 포커스 선택자(709)의 현재 위치에 대응하는 객체(708)에 관련된 항목들의 메뉴(716)를 디스플레이하는 것을 포함한다.
도 7x는 입력이 제1 미리정의된 기간(예컨대, 시간(7116)에 종료되는 기간) 동안 제2 세기 임계치(예컨대, IM)를 만족하는 것을 포함하는, 세기 입력 기준들을 만족하는 입력에 응답하여, 도 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)는 제스처 인식기들 중 하나 이상의 제스처 인식기들에 의해 이용되는 입력 이동 제한을 나타낸다.
도 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 미리정의된 임계치(IL) 또는 심지어 제1 미리정의된 임계치(IM)를 만족하도록 증가되거나, 또는 입력은, 세기 프로파일(7120)에 의해 나타낸 바와 같이, 제1 미리정의된 기간(예컨대, 시간(7116)에 종료되는 기간) 동안, 터치 감응형 스크린과 접촉 상태이지만 제1 세기 임계치 미만으로 유지된다. 어느 상황이든, 드러냄 제스처 인식기(R), 프리뷰 제스처 인식기(P), 커밋 제스처 인식기(C) 및 길게 누르기 제스처 인식기(L) 전부는 실패 상태에 유지된다. 일부 실시예들에서, 드러냄 제스처 인식기(R), 프리뷰 제스처 인식기(P), 커밋 제스처 인식기(C) 및 길게 누르기 제스처 인식기(L) 전부가 실패 상태에 유지되는 이유는, 일단 제스처 인식기가 실패 상태로 전이하면, 사용자 입력이 중지될 때까지(즉, 사용자가 터치 감응형 표면에서 그의 손가락 또는 스타일러스 또는 다른 기구를 들어올릴 때까지), 그것은 인식 상태 또는 시작 상태와 같은 임의의 다른 상태로 전이할 수 없다는 것이다.
도 7dd는, 팬 제스처 인식기(S)가 탭 제스처 인식기(T)에 의해 대체되었고, 포커스 선택자(711)가 이메일 주소(718) 상에 위치되는 것 이외에는, 도 7t에 도시된 뷰와 유사한 사용자 인터페이스(706)의 뷰를 도시한다. 길게 누르기 제스처 인식기(L)가 팬 제스처 인식기(S) 없이 사용될 때(예컨대, 길게 누르기 제스처 인식기(L)가 이메일 주소와 연관된 유일한 제스처 인식기이거나, 또는 팬 제스처 인식기(S) 이외에, 길게 누르기 제스처 인식기(L) 및 하나 이상의 다른 제스처 인식기들이 이메일 주소와 연관될 때), 길게 누르기 제스처 인식기(L)가 시작 상태와 같은 다른 상태로 전이해야 하는지 여부를 결정함에 있어서, 시간(7116)에 종료되는 기간 대신에 시간(7122)에 종료되는 기간이 사용된다.
도 7ee에서, 입력이 시간(7122)에 종료되는 기간 동안 터치 감응형 표면 상에 유지된다는 결정에 따라, 객체(718)에 관련된 항목들의 메뉴(716)를 디스플레이하는 미리정의된 동작이, 입력이 시간(7116)에 종료되는 기간의 전체 지속기간 동안 터치 감응형 표면 상에 유지되는지 여부에 관계없이 수행된다.
도 7ff는 포커스 선택자(713)의 세기(7204)가 검출되고 애플리케이션 독립적인 모듈(220)로 전송되는 것을 도시한다. 세기(7204)를 수신하는 것에 응답하여, 애플리케이션 독립적인 모듈(7220)은 하나 이상의 이벤트 객체들(194)을 애플리케이션 특정 모듈(230)로 전송한다.
이벤트 객체(194)는 검출된 세기(7204)에 기초하는 특성 세기(7206)를 포함한다. 일부 실시예들에서, 이벤트 객체(1904)는 또한 기준 세기(7208)를 포함한다. 예를 들어, 일부 실시예들에서, 특성 세기(7206)는 검출된 세기(7204)를 기준 세기(7208)로 나눈 값에 대응하는 정규화된 세기 값이다. 일부 실시예들에서, 기준 세기(7208)는 하나 이상의 세기 센서들에 의해 검출될 수 있는 최대 세기에 대응한다. 일부 실시예들에서, 기준 세기(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)(예컨대, 특성 세기(7306)는 특성 세기(7304)의 2배임)가 사용되고; 높은 설정값이 선택될 때, 특성 세기(7306)보다 더 높은 세기 값을 갖는 특성 세기(7308)(예컨대, 특성 세기(7308)는 특성 세기(7304)의 3배임)가 사용된다.
도 7hh는, 설정 사용자 인터페이스가 복수의 세기 설정 옵션들(예컨대, 3개 초과의 레벨의 세기 설정 옵션들)을 갖는 영역(722)을 포함하는 것 이외에는, 도 7gg와 유사하다. 3개 초과의 레벨의 세기 설정 옵션들이 있지만, 도 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)에 의한 디핀치 제스처(depinch gesture)를 도시한다. 도 7jj에서, 제스처 인식기들에 대한 상태 기계들(704)은 메일 애플리케이션 사용자 인터페이스(706)가 2개의 핀치 제스처 인식기들과 연관되는 것을 도시한다: 제1 세기 임계치(예컨대, I1)가 (예컨대, 도 1a에서의 이메일 클라이언트 모듈(140)에 의해) 특정되는 제1 핀치 제스처 인식기(N1) 및 세기 임계치가 (예컨대, 도 1a에서의 이메일 클라이언트 모듈(140)에 의해) 특정되지 않는 제2 핀치 제스처 인식기(N2).
도 7kk에서의 사용자 입력 세기 그래프(702)는, 포커스 선택자들(715, 717)에 의한 핀치 또는 디핀치 제스처가 세기 임계치(I1)를 만족하는 것을 도시한다. 이에 응답하여, 제1 핀치 제스처 인식기(N1)는 인식 상태로 전이하고, 대응하는 동작(예컨대, 받은 편지함 뷰를 보여주는, 메일 애플리케이션 사용자 인터페이스(724)를 디스플레이하는 것)이 수행된다. 추가로, 제2 핀치 제스처 인식기(N2)는 실패 상태로 전이한다(예컨대, 이는 제1 핀치 제스처 인식기(N1)가 인식 상태로 전이하였기 때문이다).
도 7ll에서의 사용자 입력 세기 그래프(702)는, 포커스 선택자들(715, 717)에 의한 핀치 또는 디핀치 제스처가 세기 임계치(I1)를 만족하지 않는 경우를 도시한다. 이에 응답하여, 제2 핀치 제스처 인식기(N2)는 인식 상태로 전이하고, 대응하는 동작(예컨대, 줌인(zoom-in)된 뷰를 디스플레이하는 것)이 수행된다. 추가로, 제1 핀치 제스처 인식기(N1)는 실패 상태로 전이한다(예컨대, 이는 제2 핀치 제스처 인식기(N2)가 인식 상태로 전이하였기 때문이다).
도 7mm에서, 상태 기계들(704)은 메일 애플리케이션 사용자 인터페이스(706)가 2개의 핀치 제스처 인식기들(N1, N2), 및 제2 세기 임계치(예컨대, I2)가 (예컨대, 도 1a에서의 이메일 클라이언트 모듈(140)에 의해) 특정되는 두 손가락 팬 제스처 인식기(2S)와 연관되는 것을 도시한다. 도 7mm은 또한 메일 애플리케이션 사용자 인터페이스(706) 상의 포커스 선택자들(719, 721)에 의한 두 손가락 팬 제스처를 도시한다.
도 7nn에서의 사용자 입력 세기 다이어그램(702)은 두 손가락 팬 제스처가 제2 세기 임계치를 만족하는 것을 도시한다. 두 손가락 팬 제스처 인식기(2S)는 시작 상태로 전이하고, 대응하는 동작(예컨대, 메일 애플리케이션 사용자 인터페이스(706) 상의 링크된 웹사이트의 리뷰를 보여주는 리뷰 윈도우(726)를 오버레이하는 것)이 수행된다. 제1 핀치 제스처 인식기(N1) 및 제2 핀치 제스처 인식기(N2)는 실패 상태로 전이한다(예컨대, 이는 두 손가락 팬 제스처 인식기(2S)가 인식 상태로 전이하였기 때문이다).
도 7oo는 브라우저 애플리케이션 사용자 인터페이스(710), 및 브라우저 애플리케이션 사용자 인터페이스(710)의 주소 윈도우 상에서의 포커스 선택자들(723, 725)에 의한 디핀치 제스처를 도시한다. 도 7oo에서의 제스처 인식기들에 대한 상태 기계들(704)은, 브라우저 애플리케이션 사용자 인터페이스(710)의 주소 윈도우가 제3 세기 임계치(예컨대, I3)가 (예컨대, 도 1a에서의 브라우저 모듈(147)에 의해) 특정되는 제3 핀치 제스처 인식기(N3)와 연관되는 것을 도시한다. 도 7oo에서의 사용자 입력 세기 그래프(702)는, 포커스 선택자들(723, 725)의 세기가 제3 세기 임계치(I3)를 만족하고 제3 핀치 제스처 인식기(N3)가 시작 상태로 전이한 것을 도시한다. 제1 핀치 제스처 인식기(N1) 및 제2 핀치 제스처 인식기(N2)는 가능 상태에 유지되는데, 이는 제3 핀치 제스처 인식기(N3)가, 제1 핀치 제스처 인식기(N1) 및 제2 핀치 제스처 인식기(N2)에 대응하는 뷰와 연관되지 않기 때문이다.
도 7pp는 포커스 선택자들(723, 725)이 검출되는 것을 중지하는 것을 도시한다. 그러나, 포커스 선택자들(723, 725)이 제3 세기 임계치(I3)를 만족하였기 때문에, 제3 핀치 제스처 인식기(N3)는 인식 상태로 전이하였고, 대응하는 동작(예컨대, 탭 관리 뷰(728)를 디스플레이하는 것)이 수행된다.
도 7qq에서의 사용자 입력 세기 그래프(702)는, 포커스 선택자들(723, 725)의 세기가 제3 세기 임계치(예컨대, I3)를 만족하지 않는 경우를 도시한다. 따라서, 제3 핀치 제스처 인식기(N3)는 실패 상태로 전이하고, 제3 핀치 제스처 인식기와 연관된 어떠한 액션도 수행되지 않는다(예컨대, 도 7pp에 도시된 탭 관리 뷰(728)가 디스플레이되지 않는다).
도 7rr은 메일 애플리케이션 사용자 인터페이스(706)의 사용자 인터페이스 객체(708) 위의 포커스 선택자(727)를 도시한다.
도 7rr에서의 사용자 입력 세기 그래프(702)는 제1 타이밍 기준들(예컨대, 입력이 시간(7124)에 종료되는 기간 동안 터치 감응형 표면 상에 유지될 필요가 있음) 및 제1 세기 입력 기준들(예컨대, 입력이 시간(7124)에 또는 그 후에 세기 임계치(IL)를 만족할 필요가 있음)을 도시하는데, 이들 둘 모두는 제1 미리정의된 동작(예컨대, 프리뷰 윈도우의 임박한(impending) 디스플레이의 힌트를 제공하기 위해 사용자 인터페이스의 적어도 일부분을 디밍하거나 흐리게 하는 것, 또는 대안적으로, 프리뷰 윈도우를 디스플레이하는 것)을 수행하기 위해 만족될 필요가 있다.
도 7rr에서, 세기 패턴(7126)을 추종하는 입력은 제1 타이밍 기준들(입력이 적어도 시간(7124)에 종료되는 기간 동안 유지되기 때문에) 및 제1 세기 입력 기준들(입력이 시간(7124)에 세기 임계치(IL)를 만족하기 때문에) 둘 모두를 만족한다. 따라서, 제1 미리정의된 동작(예컨대, 프리뷰 윈도우의 임박한 디스플레이의 힌트를 제공하기 위해 사용자 인터페이스의 적어도 일부분을 디밍하거나 흐리게 하는 것)은 시간(7124)에 수행된다.
세기 패턴(7128)을 추종하는 입력은 제1 타이밍 기준들(입력이 적어도 시간(7124)에 종료되는 기간 동안 유지되기 때문에) 및 제1 세기 입력 기준들(입력의 세기가 증가하고 시간(7124) 이후에 세기 임계치(IL)를 만족하기 때문에) 둘 모두를 만족한다. 따라서, 제1 미리정의된 동작(예컨대, 프리뷰 윈도우의 임박한 디스플레이의 힌트를 제공하기 위해 사용자 인터페이스의 적어도 일부분을 디밍하거나 흐리게 하는 것)은 입력의 세기가 세기 임계치(IL)를 만족할 때 수행된다.
세기 패턴(7130)을 추종하는 입력은 제1 세기 입력 기준들을 만족하지 않는데, 이는 입력의 세기가 임의의 시간에 세기 임계치(IL)를 만족하지 않기 때문이다. 제1 타이밍 기준들이 만족되더라도(입력이 적어도 시간(7124)에 종료되는 기간 동안 터치 감응형 표면 상에 유지되기 때문에), 제1 미리정의된 동작(예컨대, 프리뷰 윈도우의 임박한 디스플레이의 힌트를 제공하기 위해 사용자 인터페이스의 적어도 일부분을 디밍하거나 흐리게 하는 것)은 수행되지 않는다.
세기 패턴(7131) 또는 세기 패턴(7132)을 추종하는 입력의 경우, 그의 입력이 세기 임계치(IL)를 만족하더라도, 입력은 제1 세기 입력 기준들을 만족하지 않는데, 이는 입력의 세기가 시간(7124)에 또는 그에 후속하여 세기 임계치(IL)를 만족하지 않기 때문이다. 제1 타이밍 기준들은 만족되지 않는데, 이는 입력이 적어도 시간(7124)에 종료되는 기간 동안 터치 감응형 표면 상에 유지되지 않기 때문이다. 따라서, 제1 미리정의된 동작(예컨대, 프리뷰 윈도우의 임박한 디스플레이의 힌트를 제공하기 위해 사용자 인터페이스의 적어도 일부분을 디밍하거나 흐리게 하는 것)은 수행되지 않는다.
일부 실시예들에서, 세기 패턴(7132)을 추종하는 입력이 시간(7134) 이전에 해제되기 때문에, 상이한 동작(예컨대, 탭 제스처 동작)이 사용자 인터페이스 객체(708)와 연관되는 경우 그 상이한 동작이 수행된다. 그러나, 세기 패턴(7131)을 추종하는 입력은 시간(7134) 이후에 해제되고, 세기 패턴(7131)을 추종하는 입력에 응답하여 탭 제스처 동작은 수행되지 않는다. 일부 실시예들에서, 시간(7134)은 도 7b에 도시된 시간(7002)에 대응한다.
도 7ss는 메일 애플리케이션 사용자 인터페이스(706)를 도시하는데, 이는 적어도 부분적으로 디밍되거나 흐릿해진다. 일부 실시예들에서, 부분적 디밍 또는 흐림은, 입력의 세기의 추가 증가가 프리뷰 윈도우의 디스플레이를 시작하게 될 것임을 나타내는 시각적 큐(cue)를 제공한다.
도 7tt에서의 사용자 입력 세기 그래프(702)는 제2 타이밍 기준들(예컨대, 입력이 시간(7136)에 종료되는 기간 동안 터치 감응형 표면 상에 유지될 필요가 있음) 및 제2 세기 입력 기준들(예컨대, 입력이 시간(7136)에 또는 그 후에 세기 임계치(IM)를 만족할 필요가 있음)을 도시하는데, 이들 둘 모두는 제2 미리정의된 동작(예컨대, 프리뷰 윈도우를 디스플레이하는 것)을 수행하기 위해 만족될 필요가 있다. 일부 실시예들에서, 도 7tt에 도시된 바와 같이, 시간(7136)은 시간(7124)과는 별개이다. 일부 실시예들에서, 시간(7136)과 시간(7124)은 동일하다.
세기 패턴(7128)을 추종하는 입력은 제2 타이밍 기준들(입력이 적어도 시간(7136)에 종료되는 기간 동안 터치 감응형 표면 상에 유지되기 때문에) 및 제2 세기 입력 기준들(입력의 세기가 증가하고 시간(7136) 이후에 세기 임계치(IM)를 만족하기 때문에) 둘 모두를 만족한다. 따라서, 제2 미리정의된 동작(예컨대, 프리뷰 윈도우(712)를 디스플레이하는 것)은 입력의 세기가 세기 임계치(IM)를 만족할 때 수행된다.
세기 패턴(7138)을 추종하는 입력은 제2 타이밍 기준들(입력이 적어도 시간(7136)에 종료되는 기간 동안 터치 감응형 표면 상에 유지되기 때문에) 및 제2 세기 입력 기준들(입력이 시간(7136)에 세기 임계치(IM)를 만족하기 때문에) 둘 모두를 만족한다. 따라서, 제2 미리정의된 동작(예컨대, 프리뷰 윈도우(712)를 디스플레이하는 것)은 시간(7136)에 수행된다.
그러나, 세기 패턴(7140)을 추종하는 입력은 제2 세기 입력 기준들을 만족하지 않는데, 이는 입력이 임의의 시간에 세기 임계치(IM)를 만족하지 않기 때문이다. 입력이 제2 타이밍 기준들(예컨대, 입력이 시간(7136)에 종료되는 기간 동안 터치 감응형 표면 상에 유지됨)을 만족하지만, 제2 세기 입력 기준들이 만족되지 않기 때문에, 제2 미리정의된 동작(예컨대, 프리뷰 윈도우(712)를 디스플레이하는 것)은 수행되지 않는다.
세기 패턴(7142)을 추종하는 입력은 제2 세기 입력 기준들을 만족하지 않는다. 입력의 세기가 세기 임계치(IM)를 일시적으로 만족하더라도, 입력의 세기는 시간(7136) 이전에 세기 임계치(IM) 미만으로 감소된다. 입력이 시간(7136)에 또는 그 후에 세기 임계치(IM)를 만족하지 않기 때문에, 제2 세기 입력 기준들은 만족되지 않는다. 입력이 제2 타이밍 기준들(예컨대, 입력이 시간(7136)에 종료되는 기간 동안 터치 감응형 표면 상에 유지됨)을 만족하지만, 제2 세기 입력 기준들이 만족되지 않기 때문에, 제2 미리정의된 동작(예컨대, 프리뷰 윈도우(712)를 디스플레이하는 것)은 수행되지 않는다.
도 7uu에서의 사용자 입력 세기 그래프(702)는, 일부 실시예들에서, 입력의 세기가 기준 세기(IR) 미만으로 감소될 때, 타이밍 기준들이 리셋됨(예컨대, 초기 접촉이 검출될 때부터 기간을 시작하는 대신에, 기간은 입력의 세기가 기준 세기 미만으로 감소될 때부터 재시작함)을 도시한다. 예를 들어, 도 7uu에서, 입력은 시간(7124)에 종료되는 기간 동안 터치 감응형 표면 상에 유지되고, 시간(7124)에 입력의 세기는 세기 임계치(IL)를 만족한다. 그러나, 제1 미리정의된 동작은 시간(7124)에 수행되지 않는데, 이는 입력의 세기가 시간(7146)에 기준 세기(IR) 미만으로 떨어질 때 제1 타이밍 기준들이 리셋되기 때문이다. 제1 타이밍 기준들은 입력이 시간(7148)에 종료되는 기간(p1) 동안 터치 감응형 표면 상에 유지된 후에 만족되고, 제1 세기 입력 기준들은 시간(7148)에 만족되는데, 이는 입력이 시간(7148)에 세기 임계치(IL)를 만족하기 때문이다. 따라서, 제1 미리정의된 동작(예컨대, 프리뷰 윈도우의 임박한 디스플레이의 힌트를 제공하기 위해 사용자 인터페이스의 적어도 일부분을 디밍하거나 흐리게 하는 것)은 시간(7148)에 수행된다.
일부 실시예들에서, 기준 세기(IR)는 입력의 대표 세기(예컨대, 피크 세기) 및 세기 마진(Imargin)을 사용함으로써 결정된다. 예를 들어, 기준 세기는 입력의 대표 세기(예컨대, 피크 세기)보다 세기 마진(Imargin)만큼 낮은 세기에 대응한다.
도 7vv에서의 사용자 입력 세기 그래프(702)는, 입력의 세기가 입력의 대표 세기(예컨대, 피크 세기)보다 세기 마진(Imargin)만큼 낮은 세기에 대응하는 제1 기준 세기(IR1) 미만으로 감소하는 것을 도시한다. 일부 실시예들에서, 입력의 세기가 제1 기준 세기(IR1) 미만으로 감소할 때, 제1 타이밍 기준들은 리셋되고, 새로운(제2) 기준 세기(IR2)가 제1 기준 세기(IR1)보다 세기 마진(Imargin)만큼 낮은 세기에 대응하도록 제2 기준 세기(IR2)가 결정된다. 입력의 세기가 시간(7150)에 심지어 제2 기준 세기(IR2) 미만으로 감소할 때, 제1 타이밍 기준들은 다시 리셋되고, 제1 기간(p1)은 시간(7152)에 종료된다. 제1 타이밍 기준들이 만족되는데, 이는 입력이 시간(7152)에 제1 기간(p1)의 끝까지 터치 감응형 표면 상에 유지되기 때문이고, 제1 세기 입력 기준들이 만족되는데, 이는 입력이 시간(7152)에 제1 기간(p1)의 끝에서 세기 임계치(IL)를 만족하기 때문이다. 따라서, 제1 미리정의된 동작(예컨대, 프리뷰 윈도우의 임박한 디스플레이의 힌트를 제공하기 위해 사용자 인터페이스의 적어도 일부분을 디밍하거나 흐리게 하는 것)은 시간(7152)에 수행된다.
도 7uu 및 도 7vv가 제1 타이밍 기준들을 리셋하는 것을 예시하지만, 일부 실시예들에서는, 제2 타이밍 기준들이 유사한 방식으로 리셋된다. 간결함을 위해, 이러한 세부 사항은 본 명세서에서 생략된다.
도 7ww는 메일 애플리케이션 사용자 인터페이스(706)의 사용자 인터페이스 객체(708) 위의 포커스 선택자(729)를 도시한다.
도 7ww에서의 사용자 입력 세기 그래프(702)는 미리정의된 동작(예컨대, 메일 애플리케이션 사용자 인터페이스(706)의 디스플레이를 브라우저 애플리케이션 사용자 인터페이스(710)로 대체하는 것)을 위한 제1 세기 임계치 성분(7154)을 도시한다. 제1 세기 임계치 성분(7154)은 초기에 높은 값(IH)을 갖고 시간 경과에 따라 감쇠하는데, 이는 초기 기간 동안 의도하지 않게 강한 입력으로 미리정의된 동작을 즉시 수행하는 기회를 감소시킨다. 그러나, 이것은 미리정의된 동작을 완전히 방지하지는 않는다. 입력이 충분한 세기를 갖는 경우, 그것은 여전히 제1 세기 임계치 성분(7154)을 만족하고 미리정의된 동작을 시작할 수 있다. 시간 경과에 따라 제1 세기 임계치 성분(7154)을 감쇠시킴으로써(예컨대, 감소시킴으로써), 입력이 잠시 동안 터치 감응형 표면 상에 유지된 후에 미리정의된 동작을 수행하는 것이 더 용이해진다.
도 7ww에서, 세기 패턴(7156)을 추종하는 입력은 제1 세기 임계치 성분(7154)을 만족하고, 미리정의된 동작(예컨대, 메일 애플리케이션 사용자 인터페이스(706)의 디스플레이를 브라우저 애플리케이션 사용자 인터페이스(710)로 대체하는 것)의 수행을 시작한다.
세기 패턴(7158)을 추종하는 입력(예컨대, 짧고 강한 탭 제스처)은 제1 세기 임계치 성분(7154)을 만족하지 않는데, 이는 입력의 세기가 신속하게 강하하고 입력이 제1 세기 임계치 성분(7154)이 감쇠하기 시작하기 전에 해제되기 때문이다.
일부 실시예들에서, 제1 세기 임계치 성분(7154)은 입력의 초기 검출로부터 즉시 감쇠하기 시작한다. 일부 실시예들에서, 제1 세기 임계치 성분(7154)은, 도 7ww에 도시된 바와 같이, 입력의 초기 검출로부터 미리정의된 시간 간격(p3) 이후에 감쇠하기 시작한다.
도 7xx에서의 사용자 입력 세기 그래프(702)는, 입력의 세기가 시간(7162)에 기준 세기(IR) 미만으로 떨어질 때, 제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)를 예시하는데, 이 활성화 세기 임계치는, 활성화 세기 임계치(7174)의 제1 세기 임계치 성분이, 제1 및 제2 미리정의된 동작들이 수행될 때 시간(7124)에서 미리정의된 시간 간격(p3) 후에 대응하는 시간(7176)에서 감쇠하기 시작하는 것 이외에는, (도 7yy에서의) 활성화 세기 임계치(7170)와 유사하다. 도 7zz에서, 입력(7172)은 시간(7173)에 활성화 세기 임계치(7174)를 만족하고, 미리정의된 동작(예컨대, 메일 애플리케이션 사용자 인터페이스(706)의 디스플레이를 브라우저 애플리케이션 사용자 인터페이스(710)로 대체하는 것)이 시간(7173)에 수행된다.
도 7aaa는 활성화 세기 임계치(7180)를 예시하는데, 이 활성화 세기 임계치는, 입력(7178)이 세기 임계치(IM)를 만족하는 (그리고 제2 미리정의된 동작이 수행되는) 동안 시간 경과에 따라 감쇠한다. 입력(7178)의 세기는 세기 임계치(IM, IL) 미만으로 감소되는데, 이는 일부 실시예들에서 제2 미리정의된 동작을 실행취소하지 않는다. 활성화 세기 임계치(7180)가 시간 경과에 따라 충분히 감쇠하였기 때문에, 활성화 세기 임계치(7180)가 세기 임계치(IM) 미만이더라도, 입력(7178)의 세기의 증가는 시간(7179)에 활성화 세기 임계치(7180)를 만족한다.
도 7bbb는 도 7aaa에 도시된 것과 동일한 활성화 세기 임계치(7180) 및 입력(7178)을 도시한다. 도 7bbb는 또한, 활성화 세기 임계치(7180)가 기준선 임계치(7182) 미만으로 떨어지지 않는 것을 도시하는데, 이는 미리정의된 동작(예컨대, 메일 애플리케이션 사용자 인터페이스(706)의 디스플레이를 브라우저 애플리케이션 사용자 인터페이스(710)로 대체하는 것)의 의도하지 않은 트리거링을 감소시킨다.
도 8a 내지 도 8e는 일부 실시예들에 따른, 길게 누르기 입력 및 깊게 누르기 입력의 중의성을 해소하는 방법(800)을 예시하는 흐름도들이다. 방법(800)은 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스(예컨대, 도 3의 디바이스(300) 또는 도 1a의 휴대용 다기능 디바이스(100))에서 수행된다. 일부 실시예들에서, 디스플레이는 터치 스크린 디스플레이이고, 터치 감응형 표면은 디스플레이 상에 있거나 그와 일체화된다. 일부 실시예들에서, 디스플레이는 터치 감응형 표면(예컨대, 터치 감응형 표면은 트랙패드임)과 별개이다. 방법(800)의 일부 동작들이 선택적으로 조합되고/되거나 일부 동작들의 순서가 선택적으로 변경된다.
후술되는 바와 같이, 방법(800)은 터치 입력들을 명령어들로 프로세싱하기 위한 향상된 방식을 제공한다. 방법(800)은 터치 입력들을 프로세싱하는 데 있어서의 효율을 개선시킨다.
디바이스는 제1 사용자 인터페이스를 디스플레이한다(802). 제1 사용자 인터페이스를 디스플레이하는 동안, 디바이스는 터치 감응형 표면 상의 입력을 검출한다(804). 제1 사용자 인터페이스 및 터치 감응형 표면 상의 입력에 대한 응답들의 예들은 도 7t 내지 도 7cc를 참조하여 앞에서 기술되어 있다. 일부 실시예들에서, 제1 사용자 인터페이스는 복수의 사용자 인터페이스 객체들을 포함하고, 입력은, 포커스 선택자(예컨대, 도 7t의 포커스 선택자(709))가 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체(예컨대, 도 7t의 객체(708)) 위에 있는 동안 검출되고, 제1 사용자 인터페이스 객체는 적어도 제1 제스처 인식기(예컨대, 프리뷰 제스처 인식기) 및 제2 제스처 인식기(예컨대, 길게 누르기 제스처 인식기)와 연관된다.
제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여(808), 디바이스는, 입력이 제1 미리정의된 기간 동안 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라 제1 동작(예컨대, 도 7d 및 도 7v에 도시된 바와 같이, 사용자 인터페이스를 흐리게 하는 것)을 수행한다(810). 다른 한편으로, 제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여(808), 디바이스는, 입력이 제1 미리정의된 기간 동안 제1 세기 임계치 미만으로 유지되는 것을 포함하는 길게 누르기 기준들을 입력이 만족한다는 결정에 따라, 제1 동작과는 별개인 제2 동작(예컨대, 도 7u의 메뉴 또는 메뉴 뷰(716)를 디스플레이하는 것)을 수행한다(812). 전술된 바와 같이, 일부 실시예들에서, 제2 동작은 메뉴 또는 메뉴 뷰(예컨대, 도 7u의 메뉴 뷰(716))를 디스플레이하는 것을 포함한다(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에서의 IM)는 입력 검출 세기 임계치(예컨대, 도 7t에서의 IL)와는 별개이다. 일부 실시예들에서, 제1 제스처 인식기를 이용한 입력의 프로세싱은 또한, 제2 제스처 인식기가 입력에 대응하는 제스처를 인식하지 않는다는 결정을 요구한다. 일부 실시예들에서, 제1 제스처 인식기를 이용한 입력의 프로세싱은 또한, 제2 제스처 인식기가 입력에 대응하는 제스처를 인식하는 데 실패하였다는(즉, 도 7x 및 도 7y를 참조하여 상기 논의된 바와 같이, 제2 제스처 인식기가 실패 상태로 전이하였다는) 결정을 요구한다.
추가로, 전술한 실시예들에서, 터치 감응형 표면 상의 입력의 제2 부분을 검출하는 것에 응답하여, 디바이스는, 입력이 길게 누르기 기준들을 만족한다는 결정에 따라, 입력을 제2 제스처 인식기로(예컨대, 도 7t 및 도 7u의 길게 누르기 제스처 인식기(L)로) 프로세싱하는 것을 포함하는 제2 동작을 수행한다(854). 일부 실시예들에서, 제2 제스처 인식기를 이용한 입력의 프로세싱은 또한, 제1 제스처 인식기가 입력에 대응하는 제스처를 인식하는 데 실패하였다는 결정(예컨대, 하나 이상의 센서들에 의해 검출된 입력의 세기가 미리정의된 기간 동안 제1 세기 임계치를 만족하지 않음)을 요구한다. 도 7u와 관련하여 상기 논의된 예에서, 프리뷰 제스처 인식기는, 하나 이상의 센서들에 의해 검출된 입력의 세기가 미리정의된 기간(예컨대, 도 7u의 시간(7116)에 종료되는 기간) 동안 제1 세기 임계치(예컨대, 도 7u의 IM)를 만족하지 않는다는 디바이스에 의한 결정에 따라 실패 상태로 전이하였다.
상기에서 나타낸 바와 같이, 일부 실시예들에서, 제1 제스처 인식기(예컨대, 프리뷰 제스처 인식기)는 세기 기반 제스처 인식기이고, 제2 제스처 인식기는 길게 누르기 제스처 인식기이다(860). 일부 실시예들에서, 제2 제스처 인식기(예컨대, 길게 누르기 제스처 인식기)는 입력의 세기에 독립적인 특정 유형 또는 세트의 제스처들을 인식한다.
일부 실시예들 또는 상황들에서, 입력은 입력의 제2 부분에 후속하는 입력의 제3 부분을 포함하고, 방법(800)은 입력의 제3 부분을 제1 제스처 인식기로 프로세싱하는 단계를 포함한다(862). 일부 실시예들에서, 입력이 제1 세기 임계치를 만족하는 것을 중지한다는 결정에 따라, 디바이스는 프리뷰 영역을 축소된 축척으로 디스플레이하는데(예컨대, 프리뷰 영역의 크기를 축소시킴), 그 일례가 도 7h의 사용자 인터페이스로부터 도 7j의 사용자 인터페이스로의 전이(즉, 도 7i의 사용자 인터페이스를 통해 전이하지 않음)에 나타나 있다.
일부 실시예들에서, 제스처 인식기들의 제1 세트는 드러냄 제스처 인식기와 같은 제3 제스처 인식기(예컨대, 도 7a 내지 도 7cc에서의 제스처 인식기(R))를 포함한다(864).
일부 실시예들에서, 입력이 제2 세기 임계치(예컨대, 제1 세기 임계치(IM)보다 더 높은 커밋 세기 임계치(IH))를 만족한다고 결정하는 것에 응답하여, 본 방법은, 제1 동작을 수행하는 것에 후속하여, 제1 사용자 인터페이스(예컨대, 도 7h의 사용자 인터페이스(706))의 디스플레이를 제2 사용자 인터페이스(예컨대, 도 7i의 사용자 인터페이스(710))로 대체하는 단계, 및 프리뷰 영역(예컨대, 도 7h의 프리뷰 영역(712))을 디스플레이하는 것을 중지하는 단계를 포함하는, 입력을 제1 제스처 인식기로 프로세싱하는 단계를 포함한다(866). 일부 실시예들에서, 제2 사용자 인터페이스는 프리뷰 영역에 디스플레이되었던 콘텐츠를 포함한다.
일부 실시예들에서, 제스처 인식기들의 제1 세트는 제4 제스처 인식기(예컨대, 도 7a 내지 도 7cc에 도시된 바와 같은, 커밋 제스처 인식기(C))를 포함하고(868), 방법(800)은, 입력이 제2 세기 임계치(예컨대, 제1 세기 임계치(IM)보다 더 높은 커밋 세기 임계치(IH))를 만족한다고 결정하는 것에 응답하여, 입력을 제4 제스처 인식기(예컨대, 커밋 제스처 인식기)로 프로세싱하는 단계(870)를 포함한다. 일부 실시예들에서, 입력을 제4 제스처 인식기로 프로세싱하는 단계는, 제1 사용자 인터페이스의 디스플레이를 제2 사용자 인터페이스로 대체하는 단계 (및 프리뷰 영역을 디스플레이하는 것을 중지하는 단계), 예를 들어, 도 7h의 사용자 인터페이스(706)의 디스플레이를 도 7i의 사용자 인터페이스(710)로 대체하는 단계, 및 도 7h의 프리뷰 영역(712)을 디스플레이하는 것을 중지하는 단계를 포함한다.
일부 실시예들에서, 방법(800)은, 제2 입력의 제1 부분 및 제2 입력의 제1 부분에 후속하는 제2 입력의 제2 부분을 검출하는 단계를 포함하는, 터치 감응형 표면 상의 제2 입력을 검출하는 단계(872)를 포함한다. 예를 들어, 이것은, 디바이스가 제1 사용자 인터페이스, 또는 제1 사용자 인터페이스 및 제2 사용자 인터페이스와는 별개인 제3 사용자 인터페이스를 디스플레이하고 있는 동안 발생할 수 있다.
터치 감응형 표면 상의 제2 입력의 제1 부분을 검출하는 것(872)에 응답하여, 본 방법은, 적어도 제2 입력의 제1 부분에 대응하는 제스처 인식기들의 제2 세트를 식별하는 단계(874) - 제스처 인식기들의 제2 세트는 제1 제스처 인식기(예컨대, 프리뷰 제스처 인식기) 없이 제2 제스처 인식기(예컨대, 길게 누르기 제스처 인식기)를 포함함 - 를 포함한다. 예를 들어, 제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)에 후속하여, 입력이 (예컨대, IM에 도달하거나 그를 초과함으로써) 세기 입력 기준들을 만족한다는 결정에 따라, 제1 동작(예컨대, 프리뷰 영역을 디스플레이하는 것)을 수행하는 단계(884), 및 입력이 길게 누르기 기준들을 만족한다는 결정에 따라, 제2 동작(예컨대, 도 7u의 메뉴 또는 메뉴 뷰(716)를 디스플레이하는 것)을 수행하는 단계(886)를 포함한다. 따라서, 이러한 결정들 및 동작들은 입력이 터치 감응형 표면과 접촉 상태로 유지되는 동안 수행된다. 일부 실시예들에서, 제3 제스처 인식기(예컨대, 드러냄 제스처 인식기)가 입력들을 프로세싱하고 있는 동안(예컨대, 입력의 제2 부분에 대응하는 터치 이벤트들을 생성하고 있는 동안), 제1 제스처 인식기 및 제2 제스처 인식기는, 입력이 그러한 제스처 인식기들에 대한 제스처 인식 기준들에 매칭되는지 여부를 결정하기 위해 입력의 제2 부분을 평가하고 있다. 그러한 실시예들에서, 입력을 제3 제스처 인식기로 프로세싱하는 것은, 입력을 제1 제스처 인식기로 프로세싱하는 것 및 입력을 제2 제스처 인식기로 프로세싱하는 것을 차단하지 않는다.
전술된 바와 같이, 일부 실시예들에서, 제1 동작을 수행하는 것은 프리뷰 영역(예컨대, 도 7h의 프리뷰 영역(712))을 디스플레이하는 것을 포함한다(820). 더욱이, 일부 실시예들에서, 제2 동작을 수행하는 것은 메뉴 뷰(예컨대, 도 7u의 메뉴 뷰(716))를 디스플레이하는 것을 포함한다(830).
일부 실시예들에서, 제1 세기 임계치는, 입력에서의 다수의 접촉들이 제1 세기 임계치를 만족하는 것에 응답하여 만족된다(822). 예를 들어, 일부 그러한 실시예들에서, 각각의 접촉의 세기는 제1 세기 임계치와 비교된다. 그러나, 일부 다른 실시예들에서, 제1 세기 임계치는, 입력에서의 복수의 접촉들에 의해 적용되는 세기의 조합이 제1 세기 임계치를 만족하는 것(예컨대, 다수의 접촉들의 세기가 합계되거나 달리 조합되고, 생성된 조합된 세기는 제1 세기 임계치와 비교됨)에 응답하여 만족된다(824).
일부 실시예들에서, 제1 세기 임계치는 조정가능하다(826). 예를 들어, 일부 그러한 실시예들에서, 방법(800)은, 입력의 세기가 제1 세기 임계치와는 별개인 제3 세기 임계치를 만족하는 것에 응답하여 활성화되도록 제1 제스처 인식기를 업데이트하는 단계(828)를 포함한다. 일부 실시예들에서, 제1 세기 임계치는 3개 이상의 미리정의된 세기 임계치들(예컨대, 드러냄 세기 임계치(IL), 프리뷰 세기 임계치(IM), 및 커밋 세기 임계치(IH))의 그룹으로부터 선택된다. 일부 실시예들에서, 제3 세기 임계치는 3개 이상의 미리정의된 세기 임계치들의 그룹으로부터 선택된다.
일부 실시예들에서, 제1 세기 임계치는 임의의 미리정의된 세기 임계치들에 독립적으로 선택된다. 일부 실시예들에서, 제1 사용자 인터페이스는 특정 소프트웨어 애플리케이션의 사용자 인터페이스이고, 제1 세기 임계치는 특정 소프트웨어 애플리케이션에 의해 선택되거나 특정된다. 일부 실시예들에서, 제1 세기 임계치는, 터치 감응형 표면 상에서 접촉이 검출되는 동안 변하지 않는 고정된 세기 임계치이다. 그러나, 일부 다른 실시예들에서, 제1 세기 임계치는, 사용자의 활동, 및/또는 디바이스의 조건, 및/또는 다른 환경 파라미터들에 기초하는 미리정의된 임계치 조정 정책들에 기초하여 시간 경과에 따라 변하는 동적 세기 임계치이다. 조정가능한 세기 임계치들은 본 명세서 내의 어딘가 다른 곳에서 더욱 상세하게 논의된다.
도 8a 내지 도 8e에서의 동작들이 설명된 특정 순서는 단지 예시적인 것이며 설명된 순서가 동작들이 수행될 수 있는 유일한 순서임을 표시하는 것으로 의도되지는 않는다는 것이 이해되어야 한다. 당업자는 본 명세서에 기술된 동작들을 재순서화하는 다양한 방식들을 인식할 것이다. 예를 들어, 일부 실시예들에서, 터치 감응형 표면, 디스플레이, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행되는 방법은, 디스플레이 상의 웹 페이지의 적어도 일부분에 대응하는 사용자 인터페이스를 디스플레이하는 동안, 디스플레이 상의 웹 페이지의 디스플레이된 일부분에 대응하는 제1 위치에서 터치 감응형 표면 상의 터치 입력을 검출하는 단계를 포함한다. 본 방법은 또한, 터치 감응형 표면 상의 터치 입력을 검출하는 단계 동안, (예컨대, 하나 이상의 센서들로) 터치 감응형 표면 상의 터치 입력의 세기를 검출하는 단계; 터치 감응형 표면 상의 터치 입력의 세기가 제1 세기 임계치(예컨대, 마우스 다운(mouse down) 세기 임계치와 같은, 낮은 세기 임계치) 미만으로부터 제1 세기 임계치 초과로 변경되었는지 여부를 결정하는 단계; 및 터치 감응형 표면 상의 터치 입력의 세기가 제1 세기 임계치 미만으로부터 제1 세기 임계치 초과로 변경되었다고 결정하는 것에 응답하여, 마우스 다운 이벤트를 생성하는 단계(및 선택적으로, 마우스 다운 이벤트에 대응하는 명령어들을 웹 페이지에서 프로세싱하는 단계)를 포함한다. 본 방법은, 터치 감응형 표면 상의 터치 입력의 세기가 제1 세기 임계치 미만으로부터 제1 세기 임계치 초과로 변경되었다고 결정하는 것에 후속하여, 터치 감응형 표면 상의 터치 입력의 세기를 검출하는 단계; 터치 감응형 표면 상의 터치 입력의 세기가 제1 세기 임계치와는 별개인 제2 세기 임계치(예컨대, 힘 다운(force down) 세기 임계치와 같은, 높은 세기 임계치) 미만으로부터 제2 세기 임계치 초과로 변경되었는지 여부를 결정하는 단계; 및 터치 감응형 표면 상의 터치 입력의 세기가 제2 세기 임계치 미만으로부터 제2 세기 임계치 초과로 변경되었다고 결정하는 것에 응답하여, 마우스 다운 이벤트와는 별개인 힘 다운 이벤트를 생성하는 단계를 추가로 포함한다. 간결함을 위해, 이 상세사항들은 본 명세서에서 반복되지 않는다.
또한, 본 명세서에 기술된 다른 방법들(예컨대, 방법들(900, 1000, 1100, 1200, 1300, 1400, 1500, 1600))과 관련하여 본 명세서에 기술된 다른 프로세스들의 상세사항들이 도 8a 내지 도 8e와 관련하여 전술된 방법(800)에 유사한 방식으로 또한 적용가능하다는 것이 주목되어야 한다. 예를 들어, 방법(800)을 참조하여 전술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들은, 본 명세서에 기술된 다른 방법들(예를 들어, 방법들(900, 1000, 1100, 1200, 1300, 1400, 1500, 1600))을 참조하여 본 명세서에 기술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들의 특성들 중 하나 이상을 선택적으로 갖는다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
도 9a 내지 도 9d는 일부 실시예들에 따른, 팬 제스처 입력 및 깊게 누르기 입력의 중의성을 해소하는 방법(900)을 예시하는 흐름도들이다.
디바이스는 제1 사용자 인터페이스를 디스플레이한다(902). 제1 사용자 인터페이스를 디스플레이하는 동안, 디바이스는 터치 감응형 표면 상의 입력을 검출한다(904). 제1 사용자 인터페이스 및 터치 감응형 표면 상의 입력에 대한 응답들의 예들은 도 7l 내지 도 7s를 참조하여 앞에서 기술되어 있다. 일부 실시예들에서, 제1 사용자 인터페이스는 복수의 사용자 인터페이스 객체들을 포함하고, 입력은, 포커스 선택자(예컨대, 도 7l의 포커스 선택자(707))가 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체(예컨대, 도 7l의 객체(708)) 위에 있는 동안 검출되고, 제1 사용자 인터페이스 객체는 적어도 제1 제스처 인식기(예컨대, 프리뷰 제스처 인식기) 및 제2 제스처 인식기(예컨대, 팬 제스처 인식기(S))와 연관된다.
제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여(908), 디바이스는, 입력이 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라 제1 동작(예컨대, 도 7d 및 도 7p에 도시된 바와 같이, 사용자 인터페이스를 흐리게 하는 것)을 수행한다(910). 다른 한편으로, 제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여(908), 디바이스는, 입력이 (터치 감응형 표면과 접촉 상태로 유지되는 동안) 터치 감응형 표면을 가로질러 적어도 미리정의된 거리만큼 이동하였음을 포함하는 팬 기준들을 입력이 만족한다는 결정에 따라, 제1 동작과는 별개인 제2 동작(예컨대, 도 7m의 제1 사용자 인터페이스의 적어도 일부분을 패닝(panning)하거나 스크롤하는 것)을 수행한다(912). 전술된 바와 같이, 일부 실시예들에서, 제2 동작은 (예컨대, 도 7m에 도시된 바와 같이) 제1 사용자 인터페이스의 적어도 일부분을 스크롤하는 것을 포함한다(930).
일부 실시예들에서, 제1 동작을 수행하는 것은 프리뷰 영역(예컨대, 도 7h, 도 7r, 도 7s의 프리뷰 영역(712))을 디스플레이하는 것을 포함한다(920).
일부 실시예들에서, 세기 입력 기준들은 입력이 (터치 감응형 표면과 접촉 상태로 유지되는 동안) 터치 감응형 표면을 가로질러 (예컨대, 도 7l 내지 도 7q, 및 도 7aa 내지 도 7cc에서 입력 이동 제한 외주부(714)를 참조하여 상기 논의된 바와 같이) 적어도 미리정의된 거리만큼 이동하지 않는 것을 포함한다(922).
일부 실시예들에서, 제1 세기 임계치는 조정가능하다(924). 예를 들어, 일부 그러한 실시예들에서, 방법(900)은, 입력의 세기가 제1 세기 임계치와는 별개인 제3 세기 임계치를 만족하는 것에 응답하여 활성화되도록 제1 제스처 인식기를 업데이트하는 단계(926)를 포함한다. 일부 실시예들에서, 제1 세기 임계치는 3개 이상의 미리정의된 세기 임계치들(예컨대, 드러냄 세기 임계치(IL), 프리뷰 세기 임계치(IM), 및 커밋 세기 임계치(IH))의 그룹으로부터 선택된다. 일부 실시예들에서, 제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에서의 IM)는 입력 검출 세기 임계치(예컨대, 도 7l에서의 IL)와는 별개이다. 일부 실시예들에서, 제1 제스처 인식기를 이용한 입력의 프로세싱은 또한, 제2 제스처 인식기가 입력에 대응하는 제스처를 인식하지 않는다는 결정을 요구한다. 일부 실시예들에서, 제1 제스처 인식기를 이용한 입력의 프로세싱은 또한, 제2 제스처 인식기가 입력에 대응하는 제스처를 인식하는 데 실패하였다는(즉, 도 7s 및 도 7t를 참조하여 상기 논의된 바와 같이, 제2 제스처 인식기가 실패 상태로 전이하였다는) 결정을 요구한다.
추가로, 전술한 실시예들에서, 터치 감응형 표면 상의 입력의 제2 부분을 검출하는 것에 응답하여, 디바이스는, 입력이 팬 기준들을 만족한다는 결정에 따라, 입력을 제2 제스처 인식기로(예컨대, 도 7l 내지 도 7s의 팬 제스처 인식기(S)로) 프로세싱하는 것을 포함하는 제2 동작을 수행한다(954). 일부 실시예들에서, 제2 제스처 인식기를 이용한 입력의 프로세싱은 또한, 제1 제스처 인식기가 입력에 대응하는 제스처를 인식하는 데 실패하였다는 결정(예컨대, 하나 이상의 센서들에 의해 검출된 입력의 세기가 미리정의된 기간 동안 제1 세기 임계치를 만족하지 않음)을 요구한다. 도 7q와 관련하여 상기 논의된 예에서, 프리뷰 제스처 인식기(P)는, 하나 이상의 센서들에 의해 검출된 입력의 세기가 제1 세기 임계치(예컨대, 도 7q의 IM)를 만족하지 않고 입력이 팬 기준들을 만족한다는 디바이스에 의한 결정에 따라 실패 상태로 전이하였다.
상기에서 나타낸 바와 같이, 일부 실시예들에서, 제1 제스처 인식기(예컨대, 프리뷰 제스처 인식기)는 세기 기반 제스처 인식기이고, 제2 제스처 인식기는 팬 제스처 인식기이다(960). 일부 실시예들에서, 제2 제스처 인식기(예컨대, 팬 제스처 인식기)는 입력의 세기에 독립적인 특정 유형 또는 세트의 제스처들을 인식한다.
일부 실시예들 또는 상황들에서, 입력은 입력의 제2 부분에 후속하는 입력의 제3 부분을 포함하고, 방법(900)은 입력의 제3 부분을 제1 제스처 인식기로 프로세싱하는 단계를 포함한다(962). 일부 실시예들에서, 입력이 제1 세기 임계치를 만족하는 것을 중지한다는 결정에 따라, 디바이스는 프리뷰 영역을 축소된 축척으로 디스플레이하는데(예컨대, 프리뷰 영역의 크기를 축소시킴), 그 일례가 도 7h의 사용자 인터페이스로부터 도 7j의 사용자 인터페이스로의 전이(즉, 도 7i의 사용자 인터페이스를 통해 전이하지 않음)에 나타나 있다.
일부 실시예들에서, 제스처 인식기들의 제1 세트는 드러냄 제스처 인식기와 같은 제3 제스처 인식기(예컨대, 도 7a 내지 도 7cc에서의 제스처 인식기(R))를 포함한다(964).
일부 실시예들에서, 입력이 제2 세기 임계치(예컨대, 제1 세기 임계치(IM)보다 더 높은 커밋 세기 임계치(IH))를 만족한다고 결정하는 것에 응답하여, 방법(900)은, (예컨대, 제1 동작을 수행하는 것에 후속하여) 제1 사용자 인터페이스(예컨대, 도 7h의 사용자 인터페이스(706))의 디스플레이를 제2 사용자 인터페이스(예컨대, 도 7i의 사용자 인터페이스(710))로 대체하는 단계를 포함하는, 입력을 제1 제스처 인식기로 프로세싱하는 단계를 포함한다(966). 제1 동작이 프리뷰 영역을 디스플레이하는 것을 포함하는 일부 실시예들에서, 제2 동작을 수행하는 것은 프리뷰 영역(예컨대, 도 7h의 프리뷰 영역(712))을 디스플레이하는 것을 중지하는 것을 포함한다. 일부 실시예들에서, 제2 사용자 인터페이스는 프리뷰 영역에 디스플레이되었던 콘텐츠를 포함한다.
일부 실시예들에서, 제스처 인식기들의 제1 세트는 제4 제스처 인식기(예컨대, 도 7a 내지 도 7cc에 도시된 바와 같은, 커밋 제스처 인식기(C))를 포함하고(968), 방법(900)은, 입력이 제2 세기 임계치(예컨대, 제1 세기 임계치(IM)보다 더 높은 커밋 세기 임계치(IH))를 만족한다고 결정하는 것에 응답하여, 입력을 제4 제스처 인식기(예컨대, 커밋 제스처 인식기)로 프로세싱하는 단계(970)를 포함한다. 일부 실시예들에서, 입력을 제4 제스처 인식기로 프로세싱하는 단계는, 제1 사용자 인터페이스의 디스플레이를 제2 사용자 인터페이스로 대체하는 단계 (및 프리뷰 영역을 디스플레이하는 것을 중지하는 단계), 예를 들어, 도 7h의 사용자 인터페이스(706)의 디스플레이를 도 7i의 사용자 인터페이스(710)로 대체하는 단계, 및 도 7h의 프리뷰 영역(712)을 디스플레이하는 것을 중지하는 단계를 포함한다.
일부 실시예들에서, 방법(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)에 후속하여, 입력이 (예컨대, IM에 도달하거나 그를 초과함으로써) 세기 입력 기준들을 만족한다는 결정에 따라, 제1 동작(예컨대, 프리뷰 영역을 디스플레이하는 것)을 수행하는 단계(976), 및 입력이 팬 기준들을 만족한다는 결정에 따라, 제2 동작(예컨대, 도 7m, 도 7n, 도 7q 등의 제1 사용자 인터페이스의 적어도 일부분을 패닝하거나 스크롤하는 것)을 수행하는 단계(978)를 포함한다. 전형적으로, 이러한 결정들 및 동작들은 입력이 터치 감응형 표면과 접촉 상태로 유지되는 동안 수행된다. 일부 실시예들에서, 제3 제스처 인식기(예컨대, 드러냄 제스처 인식기)가 입력들을 프로세싱하고 있는 동안(예컨대, 입력의 제2 부분에 대응하는 터치 이벤트들을 생성하고 있는 동안), 제1 제스처 인식기 및 제2 제스처 인식기는, 입력이 그러한 제스처 인식기들에 대한 제스처 인식 기준들에 매칭되는지 여부를 결정하기 위해 입력의 제2 부분을 평가하고 있다. 그러한 실시예들에서, 입력을 제3 제스처 인식기로 프로세싱하는 것은, 입력을 제1 제스처 인식기로 프로세싱하는 것 및 입력을 제2 제스처 인식기로 프로세싱하는 것을 차단하지 않는다.
일부 실시예들에서, 제3 동작을 수행하는 단계에 후속하여 제2 동작을 수행하는 단계(978)는, 제3 동작을 반전시키는 단계(980)를 포함한다. 예를 들어, 일부 실시예들에서, 제3 동작이 반전됨에 따라 애니메이션이 디스플레이된다(예컨대, 흐리게 함은 사용자 인터페이스가 스크롤하기 시작함에 따라 단기간에 걸쳐 0으로 감소된다). 더욱이, 일부 실시예들에서, 제3 동작을 수행하는 단계에 후속하여 제2 동작을 수행하는 단계는, 제3 제스처 인식기를 취소 상태에 두는 단계를 포함한다.
도 9a 내지 도 9d에서의 동작들이 설명된 특정 순서는 단지 예시적인 것이며 설명된 순서가 동작들이 수행될 수 있는 유일한 순서임을 표시하는 것으로 의도되지는 않는다는 것이 이해되어야 한다. 당업자는 본 명세서에 기술된 동작들을 재순서화하는 다양한 방식들을 인식할 것이다. 예를 들어, 일부 실시예들에서, 터치 감응형 표면, 디스플레이, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행되는 방법은, 디스플레이 상의 웹 페이지의 적어도 일부분에 대응하는 사용자 인터페이스를 디스플레이하는 동안, 디스플레이 상의 웹 페이지의 디스플레이된 일부분에 대응하는 제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))을 참조하여 본 명세서에 기술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들의 특성들 중 하나 이상을 선택적으로 갖는다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
도 10a 내지 도 10d는 일부 실시예들에 따른, 탭 제스처 입력 및 깊게 누르기 입력의 중의성을 해소하는 방법(1000)을 예시하는 흐름도들이다. 방법(1000)은 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스(예컨대, 도 3의 디바이스(300) 또는 도 1a의 휴대용 다기능 디바이스(100))에서 수행된다. 일부 실시예들에서, 디스플레이는 터치 스크린 디스플레이이고, 터치 감응형 표면은 디스플레이 상에 있거나 그와 일체화된다. 일부 실시예들에서, 디스플레이는 터치 감응형 표면(예컨대, 터치 감응형 표면은 트랙패드임)과 별개이다. 방법(800)의 일부 동작들이 선택적으로 조합되고/되거나 일부 동작들의 순서가 선택적으로 변경된다.
후술되는 바와 같이, 방법(1000)은 터치 입력들을 명령어들로 프로세싱하기 위한 향상된 방식을 제공한다. 방법(1000)은 터치 입력들을 프로세싱하는 데 있어서의 효율을 개선시킨다.
디바이스는 제1 사용자 인터페이스를 디스플레이한다(1002). 제1 사용자 인터페이스를 디스플레이하는 동안, 디바이스는 터치 감응형 표면 상의 입력을 검출한다(1004). 제1 사용자 인터페이스 및 터치 감응형 표면 상의 입력에 대한 응답들의 예들은 도 7a 내지 도 7k를 참조하여 앞에서 기술되어 있다. 일부 실시예들에서, 제1 사용자 인터페이스는 복수의 사용자 인터페이스 객체들을 포함하고, 입력은, 포커스 선택자(예컨대, 도 7a의 포커스 선택자(705))가 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체(예컨대, 도 7a의 객체(708)) 위에 있는 동안 검출되고, 제1 사용자 인터페이스 객체는 적어도 제1 제스처 인식기(예컨대, 프리뷰 제스처 인식기) 및 제2 제스처 인식기(예컨대, 길게 누르기 제스처 인식기)와 연관된다.
제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여(1008), 디바이스는, 입력이 제1 세기 임계치를 만족하고 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라 제1 동작(예컨대, 도 7d에 도시된 바와 같이, 사용자 인터페이스를 흐리게 하는 것)을 수행한다(1010). 다른 한편으로, 제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여(1008), 디바이스는, 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 중지하는 것을 포함하는 탭 기준들을 입력이 만족한다는 결정에 따라, 제1 동작과는 별개인 제2 동작(예컨대, 포커스 선택자(705)의 현재 위치에 대응하는, 객체를 선택하거나 또는 애플리케이션을 개시하는 것, 및 도 7b의 애플리케이션 사용자 인터페이스를 디스플레이하는 것)을 수행한다(1012). 달리 말하면, 입력이 제1 미리정의된 기간(예컨대, 도 7b의 시간(7002)에 종료되는 기간)의 끝 이전에 터치 감응형 표면으로부터 제거되는 경우 입력은 탭 기준들을 충족한다. 일부 실시예들에서, 제2 동작은, 입력이 세기 입력 기준들을 만족하는지 여부에 관계없이, 입력이 탭 기준들을 만족한다는 결정에 따라 수행된다(1014).
일부 실시예들에서, 제1 동작을 수행하는 것은 프리뷰 영역(예컨대, 도 7g의 프리뷰 영역(712))을 디스플레이하는 것을 포함한다(1020). 더욱이, 일부 실시예들에서, 제2 동작을 수행하는 것은, 제1 사용자 인터페이스(예컨대, 도 7a의 사용자 인터페이스(706))의 디스플레이를, 터치 감응형 표면 상의 입력의 위치에 대응하는 소프트웨어 애플리케이션의 제3 사용자 인터페이스(예컨대, 도 7b의 사용자 인터페이스(710))로 대체하는 것을 포함한다(1220). 예를 들어, 일부 실시예들에서, 객체 상의 탭 제스처는 그 객체에 대응하는 소프트웨어 애플리케이션의 사용자 인터페이스의 디스플레이를 야기한다.
일부 실시예들에서, 제1 세기 임계치는 조정가능하다(1024). 예를 들어, 일부 그러한 실시예들에서, 방법(1000)은, 입력의 세기가 제1 세기 임계치와는 별개인 제3 세기 임계치를 만족하는 것에 응답하여 활성화되도록 제1 제스처 인식기를 업데이트하는 단계(1026)를 포함한다. 일부 실시예들에서, 제1 세기 임계치는 3개 이상의 미리정의된 세기 임계치들(예컨대, 드러냄 세기 임계치(IL), 프리뷰 세기 임계치(IM), 및 커밋 세기 임계치(IH))의 그룹으로부터 선택된다. 일부 실시예들에서, 제3 세기 임계치는 3개 이상의 미리정의된 세기 임계치들의 그룹으로부터 선택된다.
일부 실시예들에서, 제1 세기 임계치는 임의의 미리정의된 세기 임계치들에 독립적으로 선택된다. 일부 실시예들에서, 제1 사용자 인터페이스는 특정 소프트웨어 애플리케이션의 사용자 인터페이스이고, 제1 세기 임계치는 특정 소프트웨어 애플리케이션에 의해 선택되거나 특정된다. 일부 실시예들에서, 제1 세기 임계치는, 터치 감응형 표면 상에서 접촉이 검출되는 동안 변하지 않는 고정된 세기 임계치이다. 그러나, 일부 다른 실시예들에서, 제1 세기 임계치는, 사용자의 활동, 및/또는 디바이스의 조건, 및/또는 다른 환경 파라미터들에 기초하는 미리정의된 임계치 조정 정책들에 기초하여 시간 경과에 따라 변하는 동적 세기 임계치이다. 조정가능한 세기 임계치들은 본 명세서 내의 어딘가 다른 곳에서 더욱 상세하게 논의된다.
일부 실시예들에서, 방법(1000)은, 제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여, 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지된 후, 후속하여 입력이 터치 감응형 표면 상에서 검출되는 것을 중지하고 입력이 세기 입력 기준들을 만족하지 않는다는 결정에 따라, 제2 동작을 수행하는 단계를 포함한다(1028). 예를 들어, 도 7b에서의 세기 프로파일(7110)을 갖는 입력은 이러한 기준들을 만족하고, 이에 따라, 입력이 제1 미리정의된 기간보다 더 오래 터치 감응형 표면 상에 유지된다는 사실에도 불구하고, 탭 기준들을 만족한다.
다른 한편으로, 방법(1000)은, 제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여, 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지된 후, 후속하여 입력이 터치 감응형 표면 상에서 검출되는 것을 중지하고 입력이 세기 입력 기준들을 만족한다는 결정에 따라, 제2 동작의 수행을 보류하는 단계를 포함한다(1028). 예를 들어, 도 7k에서의 세기 프로파일(7112 또는 7114)을 갖는 입력은 탭 기준들을 만족하지 않는데, 이는 입력이 제1 미리정의된 기간을 지나 연장되고 세기 입력 기준들을 만족하기(예컨대, 입력이 세기 임계치(IL 또는 IM)를 초과하는 세기를 가짐) 때문이다.
일부 실시예들에서, 터치 감응형 표면 상의 입력을 검출하는 것(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에서의 IM)는 입력 검출 세기 임계치(예컨대, 도 7a에서의 IL)와는 별개이다. 일부 실시예들에서, 제1 제스처 인식기를 이용한 입력의 프로세싱은 또한, 제2 제스처 인식기가 입력에 대응하는 제스처를 인식하지 않는다는 결정을 요구한다. 일부 실시예들에서, 제1 제스처 인식기를 이용한 입력의 프로세싱은 또한, 제2 제스처 인식기가 입력에 대응하는 제스처를 인식하는 데 실패하였다는(즉, 도 7f에서의 사용자 인터페이스로부터 도 7g에서의 사용자 인터페이스로의 전이에서 도시된 바와 같이, 제2 제스처 인식기가 실패 상태로 전이하였다는) 결정을 요구한다.
추가로, 전술한 실시예들에서, 터치 감응형 표면 상의 입력의 제2 부분을 검출하는 것에 응답하여, 디바이스는, 입력이 탭 기준들을 만족한다는 결정에 따라, 입력을 제2 제스처 인식기로(예컨대, 도 7a 내지 도 7k의 탭 제스처 인식기(T)로) 프로세싱하는 것을 포함하는 제2 동작을 수행한다(1054). 일부 실시예들에서, 제2 제스처 인식기를 이용한 입력의 프로세싱은 또한, (예컨대, 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 중지하였기 때문에) 제1 제스처 인식기가 입력에 대응하는 제스처를 인식하는 데 실패하였다는 결정을 요구한다. 도 7b와 관련하여 상기 논의된 예에서, 프리뷰 제스처 인식기(P)는, 입력이 제1 미리정의된 기간 동안(즉, 그의 전체 동안) 터치 감응형 표면 상에 유지되는 것을 중지하였다는 디바이스에 의한 결정에 따라, 실패 상태로 전이하였다.
전술된 바와 같이, 일부 실시예들에서, 제1 제스처 인식기(예컨대, 프리뷰 제스처 인식기)는 세기 기반 제스처 인식기이고, 제2 제스처 인식기는 탭 제스처 인식기이다(1060). 일부 실시예들에서, 제2 제스처 인식기(예컨대, 탭 제스처 인식기)는 입력의 세기에 독립적인 탭 제스처들을 인식한다.
일부 실시예들 또는 상황들에서, 입력은 입력의 제2 부분에 후속하는 입력의 제3 부분을 포함하고, 방법(1000)은 입력의 제3 부분을 제1 제스처 인식기로 프로세싱하는 단계를 포함한다(1062). 일부 실시예들에서, 입력이 제1 세기 임계치를 만족하는 것을 중지한다는 결정에 따라, 디바이스는 프리뷰 영역을 축소된 축척으로 디스플레이하는데(예컨대, 프리뷰 영역의 크기를 축소시킴), 그 일례가 도 7h의 사용자 인터페이스로부터 도 7j의 사용자 인터페이스로의 전이(즉, 도 7i의 사용자 인터페이스를 통해 전이하지 않음)에 나타나 있다.
일부 실시예들에서, 제스처 인식기들의 제1 세트는 드러냄 제스처 인식기와 같은 제3 제스처 인식기(예컨대, 도 7a 내지 도 7cc에서의 제스처 인식기(R))를 포함한다(1064).
일부 실시예들에서, 입력이 제2 세기 임계치(예컨대, 제1 세기 임계치(IM)보다 더 높은 커밋 세기 임계치(IH))를 만족한다고 결정하는 것에 응답하여, 방법(1000)은, (예컨대, 제1 동작을 수행하는 것에 후속하여) 제1 사용자 인터페이스(예컨대, 도 7h의 사용자 인터페이스(706))의 디스플레이를 제2 사용자 인터페이스(예컨대, 도 7i의 사용자 인터페이스(710))로 대체하는 단계를 포함하는, 입력을 제1 제스처 인식기로 프로세싱하는 단계를 포함한다(1066). 제1 동작이 프리뷰 영역을 디스플레이하는 것을 포함하는 일부 실시예들에서, 제2 동작을 수행하는 것은 프리뷰 영역(예컨대, 도 7h의 프리뷰 영역(712))을 디스플레이하는 것을 중지하는 것을 포함한다. 일부 실시예들에서, 제2 사용자 인터페이스는 프리뷰 영역에 디스플레이되었던 콘텐츠를 포함한다.
일부 실시예들에서, 제스처 인식기들의 제1 세트는 제4 제스처 인식기(예컨대, 도 7a 내지 도 7cc에 도시된 바와 같은, 커밋 제스처 인식기(C))를 포함하고(1068), 방법(1000)은, 입력이 제2 세기 임계치(예컨대, 제1 세기 임계치(IM)보다 더 높은 커밋 세기 임계치(IH))를 만족한다고 결정하는 것에 응답하여, 입력을 제4 제스처 인식기(예컨대, 커밋 제스처 인식기)로 프로세싱하는 단계(1070)를 포함한다. 일부 실시예들에서, 입력을 제4 제스처 인식기로 프로세싱하는 단계는, 제1 사용자 인터페이스의 디스플레이를 제2 사용자 인터페이스로 대체하는 단계 (및 프리뷰 영역을 디스플레이하는 것을 중지하는 단계), 예를 들어, 도 7h의 사용자 인터페이스(706)의 디스플레이를 도 7i의 사용자 인터페이스(710)로 대체하는 단계, 및 도 7h의 프리뷰 영역(712)을 디스플레이하는 것을 중지하는 단계를 포함한다.
일부 실시예들에서, 방법(1000)은 입력의 제1 부분을 검출하는 것에 응답하여 제3 동작을 수행하는 단계(1072)를 포함한다. 일부 실시예들에서, 제3 동작을 수행하는 단계는, 제1 사용자 인터페이스의 적어도 일부분을 제1 사용자 인터페이스의 다른 부분들과 시각적으로 구별하는 단계를 포함한다(1074). 예를 들어, 제3 동작은, 도 7d에 도시된 바와 같이, 제3 제스처 인식기(예컨대, 드러냄 제스처 인식기)를 사용함으로써, 포커스 선택자에 대응하는 객체 이외의 사용자 인터페이스를 흐리게 하는 것일 수 있다. 일부 실시예들에서, 제3 동작이 제3 제스처 인식기에 의해 수행된 후에 탭 제스처 인식기가 이어지는 경우, 제3 제스처 인식기는 취소 상태로 전이하고, 제3 동작은 반전된다(예컨대, 흐리게 함은 반전되거나 실행취소된다). 다른 한편으로, 깊게 누르기 제스처 인식기(예컨대, 프리뷰 제스처 인식기)가 이어지는 경우, 제3 제스처 인식기(예컨대, 드러냄 제스처 인식기)에 의한 제3 동작(흐리게 함)은 취소되고, 제1 동작(예컨대, 도 7e 내지 도 7h에 도시된 바와 같이, 프리뷰 영역(712)을 디스플레이하는 것)이 깊게 누르기 제스처 인식기(예컨대, 프리뷰 제스처 인식기)에 의해 수행된다.
일부 실시예들에서, 방법(1000)은, 제3 동작(예컨대, 흐리게 함)을 수행하는 단계(1072)에 후속하여, 입력이 (예컨대, IM에 도달하거나 그를 초과함으로써) 세기 입력 기준들을 만족한다는 결정에 따라, 제1 동작(예컨대, 프리뷰 영역을 디스플레이하는 것)을 수행하는 단계(1076), 및 입력이 탭 기준들을 만족한다는 결정에 따라, 제2 동작(예컨대, 도 7i의 객체를 선택하고 선택된 객체와 연관된 애플리케이션의 사용자 인터페이스를 디스플레이하는 것)을 수행하는 단계(1078)를 포함한다. 일부 실시예들에서, 제3 제스처 인식기(예컨대, 드러냄 제스처 인식기)가 입력들을 프로세싱하고 있는 동안(예컨대, 입력의 제2 부분에 대응하는 터치 이벤트들을 생성하고 있는 동안), 제1 제스처 인식기 및 제2 제스처 인식기는, 입력이 그러한 제스처 인식기들에 대한 제스처 인식 기준들에 매칭되는지 여부를 결정하기 위해 입력의 제2 부분을 평가하고 있다. 그러한 실시예들에서, 입력을 제3 제스처 인식기로 프로세싱하는 것은, 입력을 제1 제스처 인식기로 프로세싱하는 것 및 입력을 제2 제스처 인식기로 프로세싱하는 것을 차단하지 않는다.
일부 실시예들에서, 제3 동작을 수행하는 것은 제1 미리정의된 기간 동안 시작된다(1080). 예를 들어, 제1 미리정의된 기간이 경과하기 전에 입력의 세기가 입력 검출 세기 임계치(예컨대, 도 7d의 IL)를 초과하는 경우(즉, 그러한 결정에 따라), 제1 미리정의된 기간이 경과하기 전이라도, 힌트/드러냄 애니메이션(예컨대, 터치 감응형 표면 상의 입력의 세기에 따라 제1 사용자 인터페이스의 점진적인 흐리게 함)이 디스플레이된다.
도 10a 내지 도 10d에서의 동작들이 설명된 특정 순서는 단지 예시적인 것이며 설명된 순서가 동작들이 수행될 수 있는 유일한 순서임을 표시하는 것으로 의도되지는 않는다는 것이 이해되어야 한다. 당업자는 본 명세서에 기술된 동작들을 재순서화하는 다양한 방식들을 인식할 것이다. 예를 들어, 일부 실시예들에서, 터치 감응형 표면, 디스플레이, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서 수행되는 방법은, 디스플레이 상의 웹 페이지의 적어도 일부분에 대응하는 사용자 인터페이스를 디스플레이하는 동안, 디스플레이 상의 웹 페이지의 디스플레이된 일부분에 대응하는 제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))을 참조하여 본 명세서에 기술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들의 특성들 중 하나 이상을 선택적으로 갖는다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
도 11a는 일부 실시예들에 따른, 미리정의된 명령어들의 애플리케이션 독립적인 세트(예컨대, 애플리케이션 독립적인 모듈(230))를 사용하여 터치 입력들을 프로세싱하는 방법을 예시하는 고레벨 흐름도이다.
애플리케이션 특정 모듈(220)은 사용자 인터페이스(예컨대, 도 7c의 메일 애플리케이션 사용자 인터페이스(706))를 디스플레이한다(1102).
사용자 인터페이스가 디스플레이되는 동안, 애플리케이션 독립적인 모듈(230)은 입력(예컨대, 도 7c에서의 접촉(705))의 제1 부분을 검출하고(1104), 프리뷰 동작들을 제공하기 위해 미리정의된 명령어들의 애플리케이션 독립적인 세트를 실행한다(1105). 일부 실시예들에서, 애플리케이션 독립적인 모듈(230)에 대한 애플리케이션 특정 모듈(220)의 제어가 주어진다. 프리뷰 동작들을 위한 애플리케이션 독립적인 모듈(230)을 사용함으로써, 애플리케이션 특정 모듈(220)의 크기 및 계산 부담들이 감소된다. 프리뷰 동작들을 제공하기 위해 다수의 소프트웨어 애플리케이션들에 의해 동일한 애플리케이션 독립적인 모듈(230)이 사용되어서, 이에 의해 메모리 사용량을 감소시킬 수 있다. 일부 실시예들에서, 애플리케이션 독립적인 모듈(230)은 디바이스의 표준 라이브러리 또는 운영 체제에서 제공되는데, 이는 또한 소프트웨어 개발자들에 의한 개발 시간을 감소시킨다. 더욱이, 애플리케이션 독립적인 모듈(230)은 상호작용을 위한 표준화된 방법들을 제공하는데, 이는 사용자들이 방법들을 신속하게 학습하는 것을 용이하게 하고 사용자들에 대한 인지적 부담을 감소시킨다.
애플리케이션 독립적인 모듈(230)은 프리뷰 동작들을 수행한다(1106).
일부 실시예들에서, 애플리케이션 독립적인 모듈(230)은 동작 정보(예컨대, 프리뷰 동작들이 시작되었음을 나타내는 정보)를 애플리케이션 특정 모듈(220)로 전송한다(1107). 애플리케이션 특정 모듈(220)은 동작 정보를 수신하고(1108), 프리뷰 콘텐츠를 생성하고(1109), 프리뷰 콘텐츠를 애플리케이션 독립적인 모듈(230)로 전송한다(1110). 애플리케이션 독립적인 모듈(230)은 프리뷰 콘텐츠를 수신한다(1111).
애플리케이션 독립적인 모듈(230)은 사용자 인터페이스 객체(예컨대, 도 7d에서의 메일 애플리케이션 사용자 인터페이스(706))를 시각적으로 구별한다(1112).
애플리케이션 독립적인 모듈(230)은 입력의 제2 부분을 수신한다(예컨대, 도 7e에 도시된 바와 같이 입력의 증가된 세기가 검출된다)(1113).
애플리케이션 독립적인 모듈(230)은 프리뷰 영역(예컨대, 도 7g에서의 프리뷰 영역(712))을 디스플레이한다(1114).
일부 실시예들에서, 애플리케이션 독립적인 모듈(230)은 프리뷰 영역을 업데이트한다(예컨대, 도 7h에 도시된 바와 같이, 입력의 세기의 추가 증가가 검출되고 프리뷰 영역(712)의 크기가 증가된다)(1115).
일부 실시예들에서, 애플리케이션 독립적인 모듈(230)은 프리뷰 영역을 디스플레이하는 것을 중지한다(예컨대, 도 7j 및 도 7k에 도시된 바와 같이, 입력의 세기가 세기 임계치(IL) 미만으로 떨어질 때 프리뷰 영역(712)은 디스플레이되는 것이 중지된다)(1116).
일부 실시예들에서, 애플리케이션 독립적인 모듈(230)은 입력의 제3 부분을 검출하고 제2 사용자 인터페이스를 디스플레이한다(예컨대, 도 7i에 도시된 바와 같이, 입력의 세기가 세기 임계치(IH)에 도달하는 것에 응답하여 브라우저 애플리케이션 사용자 인터페이스(710)가 디스플레이된다)(1117). 이때, 다시 애플리케이션 특정 모듈(220)에 대한 애플리케이션 특정 모듈(220)의 제어가 주어지고, 애플리케이션 특정 모듈(220)은 후속 입력들을 프로세싱한다(1118).
도 11a에서의 동작들이 설명된 특정 순서는 단지 예시적인 것이며 설명된 순서가 동작들이 수행될 수 있는 유일한 순서임을 표시하는 것으로 의도되지는 않는다는 것이 이해되어야 한다. 당업자는 본 명세서에 기술된 동작들을 재순서화하는 다양한 방식들을 인식할 것이다. 또한, 본 명세서에 기술된 다른 방법들(예컨대, 방법들(800, 900, 1000, 1100, 1150, 1200, 1300, 1400, 1500, 1600))과 관련하여 본 명세서에 기술된 다른 프로세스들의 세부사항들이 도 11a와 관련하여 전술된 방법에 유사한 방식으로 또한 적용가능하다는 것이 주목되어야 한다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
도 11b 및 도 11c는 일부 실시예들에 따른, 미리정의된 명령어들의 애플리케이션 독립적인 세트를 사용하여 터치 입력들을 프로세싱하는 방법(1100)을 예시하는 흐름도들이다. 방법(1100)은 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스(예컨대, 도 3의 디바이스(300) 또는 도 1a의 휴대용 다기능 디바이스(100))에서 수행된다. 일부 실시예들에서, 디스플레이는 터치 스크린 디스플레이이고, 터치 감응형 표면은 디스플레이 상에 있거나 그와 일체화된다. 일부 실시예들에서, 디스플레이는 터치 감응형 표면과 별개이다. 방법(1100)의 일부 동작들이 선택적으로 조합되고/되거나 일부 동작들의 순서가 선택적으로 변경된다.
후술되는 바와 같이, 방법(1100)은 터치 입력들을 명령어들의 애플리케이션 독립적인 세트로 프로세싱하기 위한 향상된 방식을 제공한다. 방법(1100)은 터치 입력들을 프로세싱하는 데 있어서의 효율을 개선시킨다. 소프트웨어 애플리케이션의 크기를 축소시키고, 소프트웨어 애플리케이션의 속력을 개선하고, 메모리 사용량을 잠재적으로 감소시킴으로써, 그러한 방법들 및 인터페이스들은 보다 효율적인 인간-기계 인터페이스를 제공하여, 이에 의해 전체 동작 시간 및 사용자 경험을 개선시킨다. 배터리-작동형 디바이스들의 경우, 그러한 방법들 및 인터페이스들은 배터리 전력을 절약하고 배터리 충전들 사이의 시간을 증가시킨다. 추가로, 그러한 방법들은 애플리케이션 개발자들에 대한 부담을 감소시키고, 터치 입력들을 보다 효율적으로 프로세싱할 수 있는 소프트웨어 애플리케이션들의 개발을 용이하게 한다. 더욱이, 그러한 방법들 및 사용자 인터페이스들은, 사용자 인터페이스들과 상호작용하는 데 있어서의 표준화된 방식들을 제공하여서, 이에 의해 사용자들에 대한 인지적 부담을 감소시키고 동작 시간 및 사용자 경험을 추가로 개선시킨다.
디바이스는 제1 소프트웨어 애플리케이션의 제1 사용자 인터페이스(예컨대, 도 7c에서의 메일 애플리케이션 사용자 인터페이스(706))를 디스플레이하는데, 제1 사용자 인터페이스는 복수의 사용자 인터페이스 객체들(예컨대, 사용자 인터페이스 객체(708), "Integrate Us" 및 "Subtract"와 같은 버튼들, 이메일 주소, 및 다른 제어부들)을 포함하고, 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체는 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트와 연관된다(예컨대, 사용자 인터페이스 객체(708)는, 예를 들어, 접촉에 의한 입력을 수신하기 전에 사용자 인터페이스 객체(708)를 프리뷰 동작들을 위한 애플리케이션 독립적인 모듈(230)에 사전등록함으로써, 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트에 의해 동작하도록 구성된다)(1130). 일부 실시예들에서, 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트는, 제1 소프트웨어 애플리케이션에 고유한 제1 소프트웨어 애플리케이션의 일부분과는 별개이다. 예를 들어, 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트는, 드롭인 모듈(drop-in module)(예컨대, 도 1c에서의 터치 프로세싱 모듈(220))로서 애플리케이션 개발자에게 제공되는 애플리케이션 개발 프레임워크의 일부이거나 - 드롭인 모듈은 제1 소프트웨어 애플리케이션(예컨대, 애플리케이션 1(136-1))과 일체화되고, 제1 소프트웨어 애플리케이션이 제1 애플리케이션이 구동되는 운영 체제에 의해 제공된 터치 입력 정보와 상호작용하는 것을 가능하게 함 -, 또는 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트는, 제1 소프트웨어 애플리케이션에 대한 일관된 사용자 인터페이스들을 제공하는 API에 따라 제1 소프트웨어 애플리케이션에 대한 제1 사용자 인터페이스를 업데이트하는 운영 체제의 일부이다. 일부 실시예들에서, 디바이스 상에서 구동되는 다수의 상이한 제3자 애플리케이션들은 미리정의된 명령어들의 애플리케이션 독립적인 세트에 대한 독립적인 액세스를 포함한다. 일부 실시예들에서, 디바이스 상에서 구동되는 다수의 상이한 제3자 애플리케이션들은 미리정의된 명령어들의 애플리케이션 독립적인 세트의 독립적인 인스턴스들을 포함한다. 일부 실시예들에서, 디바이스 상의 다수의 상이한 애플리케이션들은, 모든 제3자 애플리케이션들을 지원하는 미리정의된 명령어들의 애플리케이션 독립적인 세트와 상호작용하기 위한 코드를 포함한다. 일부 실시예들에서, 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트는, 제1 소프트웨어 애플리케이션과는 별개이다. 일부 실시예들에서, 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트는, 제1 소프트웨어 애플리케이션 내에 포함된다.
디바이스는 포커스 선택자가 디스플레이 상에서 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체 위에 있는 동안, 접촉에 의한 입력(예컨대, 도 7c에서의 입력(705)과 같은 누르기 입력)의 제1 부분을 검출한다(1132). 일부 실시예들에서, 입력은 터치 감응형 표면 상의 단일 접촉에 의해 형성된다. 일부 실시예들에서, 입력은 고정 입력이다. 일부 실시예들에서, 입력의 접촉은 입력 동안 터치 감응형 표면을 가로질러 이동한다.
디바이스는, 입력의 제1 부분을 검출하는 것에 응답하여 그리고 입력이 제1 세기 임계치(예컨대, 디바이스가 제1 사용자 인터페이스를 흐리게 하기 시작하는 "드러냄" 세기 임계치, 예컨대, 도 7c에서의 IL)를 만족하는 것을 포함하는 드러냄 기준들을 입력의 제1 부분이 만족한다는 결정에 따라, 미리정의된 명령어들의 애플리케이션 독립적인 세트에 대한 프리뷰 콘텐츠를 제공하는 것(예컨대, 도 11a에서의 동작(1110))을 포함하는, 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트를 실행한다(1134). 미리정의된 명령어들의 애플리케이션 독립적인 세트를 실행함으로써 수행되는 프리뷰 동작들은, (예컨대, 도 7d 내지 도 7g에 도시된 바와 같이 프리뷰 영역을 디스플레이하기 전에) 제1 사용자 인터페이스에서 제1 사용자 인터페이스 객체를 시각적으로 구별하는 것(예컨대, 도 7d에 도시된 바와 같이, 제1 사용자 인터페이스 객체 이외의 제1 사용자 인터페이스를 흐리게 하는 것); 및, 제1 사용자 인터페이스에서의 제1 사용자 인터페이스 객체의 시각적 구별의 시작에 후속하여: 입력의 제1 부분에 후속하는 입력의 제2 부분(예컨대, 도 7g에서의 포커스 선택자(705)의 증가된 세기)을 수신하는 것; 및, 입력이 제2 세기 임계치(예컨대, 디바이스가 제1 사용자 인터페이스 객체를 더 힘껏 누름으로써 도달될 수 있는 다른 사용자 인터페이스의 프리뷰를 디스플레이하기 시작하는, 제1 세기 임계치보다 더 높은 "프리뷰" 세기 임계치, 예컨대 도 7g에서의 IM)를 만족하는 것을 포함하는 프리뷰 기준들을 입력의 제2 부분이 만족한다는 결정에 따라, 제1 사용자 인터페이스 상에 오버레이된 프리뷰 영역(예컨대, 도 7g에서의 프리뷰 영역(712))을 디스플레이하는 것을 포함한다. 프리뷰 영역은 프리뷰 콘텐츠를 포함한다. 일부 실시예들에서, 프리뷰 콘텐츠는, 제1 사용자 인터페이스 객체가 활성화될 때 제시되는 사용자 인터페이스의 축소된 뷰이다(예컨대, 프리뷰 영역(712)에서의 프리뷰 콘텐츠는, 도 7b에 도시된 바와 같이 포커스 선택자가 사용자 인터페이스 객체(708) 상에 있는 동안 탭 제스처에 응답하여 디스플레이되는 브라우저 애플리케이션 사용자 인터페이스(710)의 축소된 뷰이다).
일부 실시예들에서, 프리뷰 동작들의 시작에 후속하여, 프리뷰 동작들은 제1 소프트웨어 애플리케이션에 독립적으로(예컨대, 제1 소프트웨어 애플리케이션에 고유한 제1 소프트웨어 애플리케이션의 일부분에 독립적으로) 수행된다(1136). 예를 들어, 도 11a에 도시된 바와 같이, 프리뷰 동작들은, 프리뷰 콘텐츠를 수신하는 것에 후속하여, 애플리케이션 특정 모듈(220)에 독립적으로 애플리케이션 독립적인 모듈(230)에 의해 수행된다.
일부 실시예들에서, 프리뷰 동작들은 접촉의 세기에 따라 프리뷰 영역을 업데이트하는 것을 포함한다(예컨대, 도 7h에 도시된 바와 같이, 입력의 세기의 추가 증가가 검출되고 프리뷰 영역(712)의 크기가 증가된다)(1138).
일부 실시예들에서, 프리뷰 동작들은, 입력의 제2 부분을 검출하는 것에 응답하여, 입력의 제2 부분이 프리뷰 영역 사라짐 기준들을 충족한다는(예컨대, 입력이 종료됨, 예컨대, 접촉의 리프트오프) 결정에 따라, 프리뷰 영역을 디스플레이하는 것을 중지하는 것 및 제1 사용자 인터페이스의 디스플레이를 유지하는 것을 포함한다(예컨대, 도 7j 및 도 7k에 도시된 바와 같이, 입력의 세기가 세기 임계치(IL) 미만으로 떨어질 때 프리뷰 영역(712)은 디스플레이되는 것이 중지된다)(1140). 일부 실시예들에서, 디바이스가 프리뷰 영역을 디스플레이하는 것을 중지하는 것에 후속하여, 디바이스는 제1 소프트웨어 애플리케이션에 고유한 제1 소프트웨어 애플리케이션의 적어도 일부분을 사용하여 후속 입력을 프로세싱한다.
일부 실시예들에서, 프리뷰 동작들은, 입력의 제2 부분을 검출한 후에, 접촉에 의한 입력의 제3 부분을 검출하는 것; 및 접촉에 의한 입력의 제3 부분을 검출하는 것에 응답하여, 입력의 제3 부분이 사용자 인터페이스 대체 기준들을 만족한다는 결정에 따라, 제1 사용자 인터페이스(및 프리뷰 영역의 오버레이)의 디스플레이를 제1 사용자 인터페이스와는 별개인 제2 사용자 인터페이스로 대체하는 것을 포함한다(예컨대, 도 7i에 도시된 바와 같이, 입력의 세기가 세기 임계치(IH)에 도달하는 것에 응답하여 브라우저 애플리케이션 사용자 인터페이스(710)가 디스플레이된다)(1142).
일부 실시예들에서, 프리뷰 동작들은, 미리정의된 명령어들의 애플리케이션 독립적인 세트로부터 제2 사용자 인터페이스를 생성하기 위해 (예컨대, 도 1c에서의 애플리케이션 코어 1(230-1)과 같은, 제1 소프트웨어 애플리케이션에 고유한 제1 소프트웨어 애플리케이션의 일부분에 대한) 제1 사용자 인터페이스 객체에 대한 동작(예컨대, 제1 사용자 인터페이스 객체의 선택 또는 활성화)을 나타내는 정보를 전송하는 것; 및 미리정의된 명령어들의 애플리케이션 독립적인 세트에서 제2 사용자 인터페이스를 수신하는 것을 포함한다(예컨대, 도 11a에서의 동작들(1107, 1111)을 사용하여, 애플리케이션 독립적인 모듈(230)은, 도 7g에 도시된 바와 같이 프리뷰 영역에서 프리뷰 콘텐츠를 제시하기 위한, 그리고, 도 7i에 도시된 바와 같이 입력의 세기의 추가 증가에 응답하여 제1 사용자 인터페이스를 프리뷰 콘텐츠를 포함하는 제2 사용자 인터페이스로 선택적으로 대체하기 위한, 도 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))을 참조하여 본 명세서에 기술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들의 특성들 중 하나 이상을 선택적으로 갖는다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
도 11d는 일부 실시예들에 따른, 미리정의된 명령어들의 애플리케이션 독립적인 세트를 사용하여 터치 입력들을 프로세싱하는 방법(1150)을 예시하는 흐름도들이다. 방법(1150)은 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스(예컨대, 도 3의 디바이스(300) 또는 도 1a의 휴대용 다기능 디바이스(100))에서 수행된다. 일부 실시예들에서, 디스플레이는 터치 스크린 디스플레이이고, 터치 감응형 표면은 디스플레이 상에 있거나 그와 일체화된다. 일부 실시예들에서, 디스플레이는 터치 감응형 표면과 별개이다. 방법(1150)의 일부 동작들이 선택적으로 조합되고/되거나 일부 동작들의 순서가 선택적으로 변경된다.
후술되는 바와 같이, 방법(1150)은 터치 입력들을 명령어들의 애플리케이션 독립적인 세트로 프로세싱하기 위한 향상된 방식을 제공한다. 방법(1150)은 터치 입력들을 프로세싱하는 데 있어서의 효율을 개선시킨다. 소프트웨어 애플리케이션의 크기를 축소시키고, 소프트웨어 애플리케이션의 속력을 개선하고, 메모리 사용량을 잠재적으로 감소시킴으로써, 그러한 방법들 및 인터페이스들은 보다 효율적인 인간-기계 인터페이스를 제공하여, 이에 의해 전체 동작 시간 및 사용자 경험을 개선시킨다. 배터리-작동형 디바이스들의 경우, 그러한 방법들 및 인터페이스들은 배터리 전력을 절약하고 배터리 충전들 사이의 시간을 증가시킨다. 추가로, 그러한 방법들은 애플리케이션 개발자들에 대한 부담을 감소시키고, 터치 입력들을 보다 효율적으로 프로세싱할 수 있는 소프트웨어 애플리케이션들의 개발을 용이하게 한다. 더욱이, 그러한 방법들 및 사용자 인터페이스들은, 사용자 인터페이스들과 상호작용하는 데 있어서의 표준화된 방식들을 제공하여서, 이에 의해 사용자들에 대한 인지적 부담을 감소시키고 동작 시간 및 사용자 경험을 추가로 개선시킨다.
디바이스는 제1 소프트웨어 애플리케이션의 제1 사용자 인터페이스(예컨대, 도 7c에서의 메일 애플리케이션 사용자 인터페이스(706))를 디스플레이하는데, 제1 사용자 인터페이스는 복수의 사용자 인터페이스 객체들(예컨대, 사용자 인터페이스 객체(708), "Integrate Us" 및 "Subtract"와 같은 버튼들, 이메일 주소, 및 다른 제어부들)을 포함하고, 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체는 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트와 연관된다(예컨대, 사용자 인터페이스 객체(708)는 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트에 의해 동작하도록 구성된다)(1152).
디바이스는 포커스 선택자가 디스플레이 상에서 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체 위에 있는 동안, 접촉에 의한 입력(예컨대, 도 7g에서의 입력(705)과 같은 누르기 입력)의 제1 부분을 검출한다(1154).
디바이스는, 입력의 제1 부분을 검출하는 것에 응답하여 그리고 입력의 제1 부분이 프리뷰 기준들을 충족한다는 결정에 따라, 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트를 실행한다(예컨대, 도 11a에서의 동작(1105)(1156). 미리정의된 명령어들의 애플리케이션 독립적인 세트를 실행함으로써 수행되는 프리뷰 동작들은, 제1 사용자 인터페이스 상에 오버레이된 프리뷰 영역(예컨대, 도 7g에 도시된 바와 같이 메일 애플리케이션 사용자 인터페이스(706) 상에 오버레이된 프리뷰 영역(712))을 디스플레이하는 것; 입력의 제1 부분을 검출한 후에, 입력의 제2 부분을 검출하는 것; 및 접촉에 의한 입력의 제2 부분을 검출하는 것에 응답하여, 입력의 제2 부분이 사용자 인터페이스 대체 기준들을 충족한다는 결정에 따라, 제1 사용자 인터페이스의 디스플레이를 제1 사용자 인터페이스와는 별개인 제2 사용자 인터페이스로 대체하는 것(예컨대, 접촉(705)의 세기가 세기 임계치(IH)에 도달하는 것에 응답하여, 메일 애플리케이션 사용자 인터페이스(706)는, 프리뷰 영역(712)과 함께, 도 7i에 도시된 브라우저 애플리케이션 사용자 인터페이스(710)로 대체됨)을 포함한다.
일부 실시예들에서, 프리뷰 동작들의 시작에 후속하여, 프리뷰 동작들은 제1 소프트웨어 애플리케이션에 독립적으로 수행된다(예컨대, 도 11a에 도시된 바와 같이, 애플리케이션 특정 모듈(220)로부터 프리뷰 콘텐츠를 수신하는 것에 후속하여, 프리뷰 동작들(1106)은 애플리케이션 특정 모듈(220)에 독립적으로 수행된다)(1158). 일부 실시예들에서, 프리뷰 콘텐츠는 프리뷰 동작들의 시작 이전에 획득된다(예컨대, 프리뷰 콘텐츠는 도 11a에서의 동작(1112) 이전에 획득된다).
일부 실시예들에서, 제1 사용자 인터페이스의 디스플레이를 제2 사용자 인터페이스로 대체하는 것에 후속하여 검출되는 터치 감응형 표면 상의 입력들은 제1 소프트웨어 애플리케이션으로 프로세싱된다(1160). 예를 들어, 도 1117에 도시된 바와 같이, 제2 사용자 인터페이스, 예컨대, 도 7i에서의 브라우저 애플리케이션 사용자 인터페이스(710)가 디스플레이된 후에, 다시 제1 소프트웨어 애플리케이션(예컨대, 브라우저 모듈(147))에 대한 제어가 주어지고, 제1 소프트웨어 애플리케이션은 (예컨대, 애플리케이션 코어 1(230-1)을 단독으로 사용함으로써, 또는 선택적으로, 터치 프로세싱 모듈(220)과 함께 애플리케이션 코어 1(230-1)을 사용함으로써) 터치 감응형 표면 상의 후속 입력들을 프로세싱한다.
도 11d에서의 동작들이 설명된 특정 순서는 단지 예시적인 것이며 설명된 순서가 동작들이 수행될 수 있는 유일한 순서임을 표시하는 것으로 의도되지는 않는다는 것이 이해되어야 한다. 당업자는 본 명세서에 기술된 동작들을 재순서화하는 다양한 방식들을 인식할 것이다. 또한, 본 명세서에 기술된 다른 방법들(예컨대, 방법들(800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600))과 관련하여 본 명세서에 기술된 다른 프로세스들의 상세사항들이 도 11d와 관련하여 전술된 방법(1150)에 유사한 방식으로 또한 적용가능하다는 것이 주목되어야 한다. 예를 들어, 방법(1150)을 참조하여 전술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들은, 본 명세서에 기술된 다른 방법들(예를 들어, 방법들(800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600))을 참조하여 본 명세서에 기술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들의 특성들 중 하나 이상을 선택적으로 갖는다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
도 12a 및 도 12b는 일부 실시예들에 따른, 미리정의된 데이터 구조를 사용하여 터치 입력을 프로세싱하는 방법(1200)을 예시하는 흐름도들이다. 방법(1200)은 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스(예컨대, 도 3의 디바이스(300) 또는 도 1a의 휴대용 다기능 디바이스(100))에서 수행된다. 일부 실시예들에서, 디스플레이는 터치 스크린 디스플레이이고, 터치 감응형 표면은 디스플레이 상에 있거나 그와 일체화된다. 일부 실시예들에서, 디스플레이는 터치 감응형 표면과 별개이다. 방법(1200)의 일부 동작들이 선택적으로 조합되고/되거나 일부 동작들의 순서가 선택적으로 변경된다.
후술되는 바와 같이, 방법(1200)은 터치 입력들을 미리정의된 데이터 구조로 프로세싱하기 위한 향상된 방식을 제공한다. 방법(1200)은 터치 입력들을 프로세싱하는 데 있어서의 효율을 개선시킨다. 그러한 방법들 및 인터페이스들은 보다 효율적인 인간-기계 인터페이스를 제공하여, 이에 의해 전체 동작 시간 및 사용자 경험을 개선시킨다. 배터리-작동형 디바이스들의 경우, 그러한 방법들 및 인터페이스들은 배터리 전력을 절약하고 배터리 충전들 사이의 시간을 증가시킨다.
디바이스는, 디스플레이 상에 소프트웨어 애플리케이션의 사용자 인터페이스(예컨대, 도 7ff에서의 메일 애플리케이션 사용자 인터페이스(706))를 디스플레이한다(1202).
디바이스는, 디스플레이 상에 소프트웨어 애플리케이션의 사용자 인터페이스를 디스플레이하는 동안, 소프트웨어 애플리케이션의 사용자 인터페이스에 대응하는 위치에서 터치 감응형 표면 상의 입력(예컨대, 도 7ff에서의 입력(713))을 검출한다(1204).
디바이스는, 입력을 검출하는 것에 응답하여, 입력에 대응하는 세기 정보를 명령어들의 애플리케이션 독립적인 세트로부터 소프트웨어 애플리케이션으로 전송한다(예컨대, 도 7ff에 도시된 바와 같이, 애플리케이션 독립적인 모듈(220)은 이벤트 객체(194)를 애플리케이션 특정 모듈(230)로 전송한다)(1206). 세기 정보는 하나 이상의 센서들에 할당되는 기준 세기(예컨대, 기준 세기(7208)); 및 입력의 검출된(예컨대, 측정된) 세기에 대응하는 특성 세기(예컨대, 특성 세기(7206))를 포함한다. 일부 실시예들에서, 명령어들의 애플리케이션 독립적인 세트는 애플리케이션 독립적인 소프트웨어 엔티티(예컨대, 도 1c에서의 터치 프로세싱 모듈(220))이다.
일부 실시예들에서, 특성 세기는 민감도 값(예컨대, 도 7ff에서의 민감도(7210))에 의해 추가로 조정된다(1208). 일부 실시예들에서, 특성 세기는 민감도 값을 포함한다(예컨대, 특성 세기는 민감도 값과 곱해진다). 예를 들어, (기준 세기가 100 g일 때) 1x 민감도에서, 100 g의 세기가 1.0의 정규화된 세기와 동일하고, 2x 세기에서, 50 g의 세기가 1.0의 정규화된 세기와 동일하다. 이와 비교하여, 1x 세기에서, 50 g의 세기가 0.5의 정규화된 세기와 동일하다.
일부 실시예들에서, 입력의 특성 세기는 기준 세기에 기초하여 정규화되는 정규화된 세기 값이다(예컨대, 정규화된 세기 1.0 = 특성 세기 100 g / 기준 세기 100 g)(1210).
일부 실시예들에서, 세기 정보는, 세기 기반 기준들(예컨대, 측정된 접촉 세기)과 비-세기(non-intensity) 기반 기준들(예컨대, 접촉의 이동, 접촉의 지속기간, 접촉의 위치 등)의 조합에 기초하여 하나 이상의 휴리스틱(heuristic)들에 의해 결정되는 세기 상태 정보를 포함한다(1212). 예를 들어, 세기 상태를 결정하기 위한 임계치들은 접촉의 이동, 접촉의 지속기간, 및 접촉의 위치에 따라 달라진다. 일부 실시예들에서, 세기 상태들 중 하나 이상은 (예컨대, 방법들(1500, 1600)을 참조하여 아래에서 더욱 상세하게 기술되는 바와 같이) 동적으로 결정된 세기 상태를 포함한다.
일부 실시예들에서, 세기 상태 정보는, 현재 세기 상태가 제스처 인식기에 대한 세기 상태 요건(예컨대, 방법(1400)을 참조하여 후술되는 바와 같이 제1 클래스의 제스처들 중 제1 제스처에 대한 제3자 애플리케이션에 의해 특정되는 세기 기준들)에 매칭되는지 여부에 대한 디바이스로부터의 표시에 기초하여 제공된다(1214).
일부 실시예들에서, 세기 정보는 복수의 상이한 이용가능한 상태 값들(예컨대, 힘이 가해지지 않은 상태, 힌트/드러냄 상태, 피크/프리뷰 상태, 팝(pop)/커밋 상태)을 갖는 세기 상태 정보를 포함하고, 세기 상태들 사이의 전이들은 운영 체제 구동형 사용자 상호작용들(예컨대, 피크 및 팝, 퀵 액션(quick action) 메뉴 등)을 트리거하기 위해 운영 체제 전체에 걸쳐 사용된다(1216).
일부 실시예들에서, 입력의 특성 세기는 하나 이상의 터치 이벤트들을 통해 제공되는데, 터치 이벤트들 각각은 터치 이벤트에 대응하는 접촉의 특성 세기를 포함한다(예컨대, 도 7ii에서, 2개의 이벤트 객체들(194, 7194)이 제공된다)(1218). 일부 실시예들에서, 터치 이벤트들은 뷰와 연관된 제스처 인식기가 제스처를 인식한 후에 뷰로 전달된다. 예를 들어, 제스처 인식기가 제스처를 인식한 후에 전달되는 터치 이벤트들은 세기 정보를 포함한다. 일부 실시예들에서, 터치 이벤트들은 제스처 인식기와 연관되지 않는 뷰로 전달되고, 터치 이벤트들에 기초하여 뷰에 대응하는 애플리케이션에 의해 동작들(예컨대, 제스처에서의 접촉들 중 하나 이상의 접촉들의 세기에 기초하여 결정되는 두께를 갖는 라인을 드로잉하는 것)이 수행된다.
일부 실시예들에서, 디바이스는, 디스플레이 상에, 복수의 세기 민감도 설정값들 중에서 각각의 세기 민감도 설정값을 선택하기 위한 민감도 제어부(예컨대, 복수의 세기 민감도 설정값들을 갖는 도 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))을 참조하여 본 명세서에 기술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들의 특성들 중 하나 이상을 선택적으로 갖는다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
도 13a 및 도 13b는 일부 실시예들에 따른, 힘 제스처 진행 표시자를 사용하여 터치 입력을 프로세싱하는 방법을 예시하는 흐름도들이다. 방법(1300)은 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스(예컨대, 도 3의 디바이스(300) 또는 도 1a의 휴대용 다기능 디바이스(100))에서 수행된다. 일부 실시예들에서, 디스플레이는 터치 스크린 디스플레이이고, 터치 감응형 표면은 디스플레이 상에 있거나 그와 일체화된다. 일부 실시예들에서, 디스플레이는 터치 감응형 표면과 별개이다. 방법(1300)의 일부 동작들이 선택적으로 조합되고/되거나 일부 동작들의 순서가 선택적으로 변경된다.
방법(1300)은 터치 입력들을 힘 제스처 진행 표시자로 프로세싱하기 위한 향상된 방식을 제공한다. 방법(1300)은 터치 입력들을 프로세싱하는 데 있어서의 효율을 개선시킨다. 그러한 방법들 및 인터페이스들은 보다 효율적인 인간-기계 인터페이스를 제공하여, 이에 의해 전체 동작 시간 및 사용자 경험을 개선시킨다. 배터리-작동형 디바이스들의 경우, 그러한 방법들 및 인터페이스들은 배터리 전력을 절약하고 배터리 충전들 사이의 시간을 증가시킨다.
디바이스는, 디스플레이 상에 소프트웨어 애플리케이션의 제1 사용자 인터페이스(예컨대, 도 7a에서의 메일 애플리케이션 사용자 인터페이스(706))를 디스플레이한다(1302).
디바이스는, 소프트웨어 애플리케이션의 제1 사용자 인터페이스를 디스플레이하는 동안, 터치 감응형 표면 상의 입력(예컨대, 도 7a에서의 포커스 선택자(705))을 검출한다(1304).
디바이스는, 입력을 검출하는 동안: 입력의 세기에 대한 변화들을 검출하는 것에 응답하여, 입력의 세기에 대한 변화들을 나타내는 제1 진행 표시자의 값을 명령어들의 애플리케이션 독립적인 세트로부터 소프트웨어 애플리케이션에 제공하고(예컨대, 도 7ff에 도시된 바와 같이 이벤트 객체(194)가 애플리케이션 독립적인 모듈(220)로부터 애플리케이션 특정 모듈(230)로 전달됨); 명령어들의 애플리케이션 독립적인 세트와는 상이한 소프트웨어 애플리케이션 내의 명령어들의 세트 및 제1 진행 표시자(예컨대, 도 7d에서의 진행 표시자(750))의 값에 따라 제1 사용자 인터페이스를 업데이트한다(예컨대, 제1 사용자 인터페이스는, 도 7ff에서의 애플리케이션 특정 모듈(230)을 사용하여, 예를 들어 도 7d에 도시된 바와 같은 시각적 구별을 나타내도록 업데이트된다)(1306). 일부 실시예들에서, 본 방법은, 제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 최종 상태가 피크/프리뷰 세기 상태에 대응해야 하는지 또는 팝/커밋 세기 상태에 대응해야 하는지 여부를 특정한다).
일부 실시예들에서, 상이한 상태들 사이의 진행은 세기 기반 기준들(예컨대, 측정된 접촉 세기)과 비-세기 기반 기준들(예컨대, 접촉의 이동, 접촉의 지속기간, 접촉의 위치 등)의 조합에 기초하여 하나 이상의 휴리스틱들에 의해 결정된다(1312). 일부 실시예들에서, 세기 상태들 중 하나 이상은 (예컨대, 방법들(1500, 1600)을 참조하여 아래에서 더욱 상세하게 기술되는 바와 같이) 동적으로 결정된 세기 상태이다.
일부 실시예들에서, 상태들은 디바이스의 운영 체제에 의해 제공되는 상태 값들의 세트(예컨대, 힘이 가해지지 않은 상태, 힌트/드러냄 상태, 피크/프리뷰 상태, 팝/커밋 상태)로부터 선택되고, 이러한 상태들 사이의 전이들은 운영 체제 구동형 사용자 상호작용들(예컨대, 피크 및 팝, 퀵 액션 메뉴 등)을 트리거하기 위해 운영 체제 전체에 걸쳐 사용된다(1314).
일부 실시예들에서, 디바이스는, 입력을 검출하는 동안: 제1 최종 상태에 걸쳐(또는 그에 대한) 입력의 세기에 대한 변화들을 검출하는 것에 응답하여: 입력에 대한 변화들을 나타내는 제2 진행 표시자(예컨대, 도 7g에서의 제2 진행 표시자(752))의 값을 명령어들의 애플리케이션 독립적인 세트로부터 소프트웨어 애플리케이션에 제공한다(1316). 제2 진행 표시자의 값은 제2 초기 상태와 제2 최종 상태 사이의(예컨대, 피크/프리뷰 세기 상태와 팝/커밋 세기 상태 사이의) 입력의 상태값을 나타내는 정규화된 값이다. 디바이스는 명령어들의 애플리케이션 독립적인 세트와는 상이한 소프트웨어 애플리케이션 내의 명령어들의 세트 및 제2 진행 표시자의 값에 따라 제1 사용자 인터페이스를 업데이트한다. 일부 실시예들에서, 제2 초기 상태는 제1 최종 상태에 대응한다. 이것은, 디바이스가 제1 초기 상태로부터 제2 최종 상태로 공백 없이 연속적으로 입력의 세기에 대한 변화들을 모니터링할 수 있게 한다.
일부 실시예들에서, 소프트웨어 애플리케이션 내의 명령어들의 세트 및 제2 진행 표시자의 값에 따라 제1 사용자 인터페이스를 업데이트하는 것은, 제1 사용자 인터페이스를 제2 사용자 인터페이스로 대체하는 것을 포함한다(예컨대, 도 7i에서, 제2 진행 표시자(752)가 제2 최종 상태에 도달할 때, 메일 애플리케이션 사용자 인터페이스(706)는 브라우저 애플리케이션 사용자 인터페이스(710)로 대체된다)(1318).
일부 실시예들에서, 소프트웨어 애플리케이션 내의 명령어들의 세트는 입력의 세기에 대한 변화들을 그래픽으로 나타내는 맞춤화된 애니메이션을 제공하도록 구성된다(1320). 일부 실시예들에서, 소프트웨어 애플리케이션 내의 명령어들의 세트는 입력의 시작을 그래픽으로 나타내는 맞춤화된 애니메이션을 제공하도록 구성된다. 예를 들어, 소프트웨어 애플리케이션 내의 명령어들의 세트는 제1 사용자 인터페이스의 적어도 일부분을 흐리게 하기 위해 사용된다. 일부 실시예들에서, 소프트웨어 애플리케이션 내의 명령어들의 세트는 입력의 완료(예컨대, 입력이 최종 상태에 도달함)를 그래픽으로 나타내는 맞춤화된 애니메이션을 제공하도록 구성된다. 예를 들어, 소프트웨어 애플리케이션 내의 명령어들의 세트는 프리뷰 윈도우를 디스플레이하기 위해 사용된다. 일부 실시예들에서, 맞춤화된 애니메이션에서의 프리뷰 윈도우는 직사각형이 아닌 형상(예컨대, 원)을 갖는다. 맞춤화된 애니메이션의 사용은, 디바이스가 애플리케이션 독립적인 모듈(220)에 의해 미리정의되지 않은 애니메이션을 제공할 수 있게 한다.
일부 실시예들에서, 디바이스는, 입력을 검출하는 동안: 입력이 제1 세기 기준들(예컨대, 제1 초기 상태)을 만족하는 것을 검출하는 것에 응답하여, 제1 진행 표시자의 값이 (제1 초기 상태와 제1 최종 상태 사이에서) 입력의 세기에 대한 변화들을 나타내도록 제1 진행 표시자를 시작한다(1322). 예를 들어, 도 7b 및 도 7c에서, 제1 진행 표시자(750)는 입력이 세기 임계치(IL)에 도달할 때에만 시작된다. 이것은 제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))을 참조하여 본 명세서에 기술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들의 특성들 중 하나 이상을 선택적으로 갖는다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
도 14a 내지 도 14c는 일부 실시예들에 따른, 제3자 애플리케이션들에 의해 특정된 세기 기준들에 기초하여 터치 입력들을 프로세싱하는 방법을 예시하는 흐름도들이다. 방법(1400)은 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스(예컨대, 도 3의 디바이스(300) 또는 도 1a의 휴대용 다기능 디바이스(100))에서 수행된다. 일부 실시예들에서, 디스플레이는 터치 스크린 디스플레이이고, 터치 감응형 표면은 디스플레이 상에 있거나 그와 일체화된다. 일부 실시예들에서, 디스플레이는 터치 감응형 표면과 별개이다. 방법(1400)의 일부 동작들이 선택적으로 조합되고/되거나 일부 동작들의 순서가 선택적으로 변경된다.
후술되는 바와 같이, 방법(1400)은 터치 입력들을 동적 임계치들로 프로세싱하기 위한 향상된 방식을 제공한다. 방법(1400)은 터치 입력들을 프로세싱하는 데 있어서의 효율을 개선시킨다. 불필요한/관련없는/반복적인 입력들을 감소시킴으로써, 그러한 방법들 및 인터페이스들은 보다 효율적인 인간-기계 인터페이스를 제공하여, 이에 의해 전체 동작 시간 및 사용자 경험을 개선시킨다. 배터리-작동형 디바이스들의 경우, 그러한 방법들 및 인터페이스들은 배터리 전력을 절약하고 배터리 충전들 사이의 시간을 증가시킨다.
디바이스는 디스플레이 상에, 운영 체제 내에서 구동되는 제1 제3자 애플리케이션의 사용자 인터페이스(예컨대, 도 7jj에서의 메일 애플리케이션 사용자 인터페이스(706))를 디스플레이한다(1402). 디바이스의 능력들은 운영 체제의 운영 체제 프레임워크(예컨대, UI 키트 내의 터치 이벤트 API)를 통해 제1 제3자 애플리케이션에 노출된다. 예를 들어, 이용가능한 제스처 클래스들에 관한 정보가 제1 제3자 애플리케이션에 제공된다. 운영 체제 프레임워크는 디바이스에 의해 인식될 수 있는 복수의 제스처 클래스들을 정의한다. 제1 제스처 클래스는 제1 제스처 인식 기준들이 충족될 때 터치 감응형 표면 상에서 검출되는 입력을 제1 제스처로서 인식하기 위한 제1 제스처 인식 기준들과 연관된다. 제1 제3자 애플리케이션은 제1 동작을 위해 사용자 인터페이스의 제1 부분을 제1 제스처 클래스로부터의 제1 제스처(예컨대, 제1 핀치 제스처 인식기(N1))와 연관시켰다. 제1 제3자 애플리케이션은 제1 동작을 위해 사용자 인터페이스의 제1 부분과 연관된 제1 제스처에 대한 제1 세기 기준들을 특정하였다. 일부 실시예들에서, 제1 제스처 인식 기준들 및 제1 세기 기준들 양쪽 모두가 만족될 때 제1 동작이 수행된다.
일부 실시예들에서, 제1 세기 기준들은 세기 임계치(예컨대, 도 7jj에서의 세기 임계치(I1))를 포함한다(1404). 예를 들어, 입력의 세기가 세기 임계치에 도달할 때 제1 세기 기준들은 (적어도 부분적으로) 만족된다.
일부 실시예들에서, 세기 임계치는 미리정의된 임계치들의 세트로부터 선택된다(예컨대, 세기 임계치는 미리정의된 임계치들의 세트, 예컨대 힌트/드러냄 임계치, 피크/프리뷰 임계치, 및 팝/커밋 임계치, 또는 그들의 대응하는 세기 값들, 예컨대 100 g, 200 g, 및 300 g으로부터 선택된다)(1406).
일부 실시예들에서, 세기 임계치는 디바이스에 의해 검출가능한 값들의 범위로부터 선택된다(예컨대, 일부 실시예들에서, 세기 임계치는 1 g 내지 500 g의 임의의 값, 예컨대 1 g, 10 g, 100 g, 450 g 등일 수 있다)(1408).
일부 실시예들에서, 제1 세기 기준들은 시간 경과에 따른 세기의 변화율, 다수의 접촉들의 세기, 입력의 지속시간, 터치 감응형 표면을 가로지른 입력에 의해 이동된 거리, 입력에서의 접촉들의 수, 입력의 이동 방향, 입력에서의 접촉들의 터치다운의 상대적 타이밍, 입력에서의 접촉들의 모션 등을 포함한다. 일부 실시예들에서, 제1 세기 기준들은 (예컨대, 방법들(1500, 1600)을 참조하여 아래에서 더욱 상세하게 기술되는 바와 같이) 동적 세기 임계치를 포함한다.
디스플레이 상에 제1 제3자 애플리케이션의 사용자 인터페이스를 디스플레이하는 동안, 디바이스는, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분에 대응하는 위치에서 터치 감응형 표면 상의 입력(예컨대, 도 7jj에서의 포커스 선택자들(715, 717)에 의해 나타낸 디핀치 제스처)을 검출한다(1410).
입력을 검출하는 것에 응답하여: 디바이스는, 입력이 제1 제스처 인식 기준들을 충족하고 입력이 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족한다는 결정에 따라, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제1 동작을 수행하고(예컨대, 도 7jj 및 도 7kk에서, 포커스 선택자들(715, 717)에 의해 나타낸 디핀치 제스처가 세기 임계치(I1)를 만족할 때 메일 애플리케이션 사용자 인터페이스(706)는 메일 애플리케이션 사용자 인터페이스(724)로 대체되고)(1412); 입력이 제1 제스처 인식 기준들을 충족하지만 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족하지 않는다는 결정에 따라, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제1 동작의 수행을 보류한다(예컨대, 도 7ll에서, 포커스 선택자들(715, 717)에 의해 나타낸 디핀치 제스처가 세기 임계치(I1)를 만족하지 않을 때 메일 애플리케이션 사용자 인터페이스(706)는 메일 애플리케이션 사용자 인터페이스(724)로 대체되지 않지만, 선택적으로, 포커스 선택자들(715, 717)에 의해 나타낸 디핀치 제스처에 응답하여 비-세기 기반 디핀치 제스처와 연관된 줌인 동작이 수행된다)(1414).
일부 실시예들에서, 제1 제3자 애플리케이션은 제2 동작을 위해 사용자 인터페이스의 제1 부분을 제1 제스처 클래스로부터의 제1 제스처와 연관시켰다(예컨대, 줌인/줌아웃(zoom-out) 동작들을 위해 비-세기 기반 핀치 제스처 인식기가 연관된다)(도 14b의 1416). 제1 제3자 애플리케이션은 제2 동작을 위해 사용자 인터페이스의 제1 부분과 연관된 제1 제스처에 대한 제1 세기 기준들을 특정하지 않았다. 일부 실시예들에서, 제1 제3자 애플리케이션은 제2 동작을 위해 사용자 인터페이스의 제1 부분과 연관된 제1 제스처에 대한 임의의 세기 기준들을 특정하지 않았다. 입력을 검출하는 것에 응답하여, 디바이스는, 입력이 제1 제스처 인식 기준들을 충족하지만 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족하지 않는다는 결정에 따라, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제2 동작을 수행하고(예컨대, 도 7ll에서, 포커스 선택자들(715, 717)에 의해 나타낸 디핀치 제스처가 세기 임계치(I1)를 만족하지 않을 때, 메일 애플리케이션 사용자 인터페이스(706)는 줌인되고); 입력이 제1 제스처 인식 기준들을 충족하고 입력이 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족한다는 결정에 따라, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제2 동작의 수행을 보류한다(예컨대, 도 7kk에서, 포커스 선택자들(715, 717)에 의해 나타낸 디핀치 제스처가 세기 임계치(I1)를 만족할 때, 메일 애플리케이션 사용자 인터페이스(724)는 줌인되지 않는다).
일부 실시예들에서, 제2 제스처 클래스는 제2 제스처 인식 기준들이 충족될 때 터치 감응형 표면 상에서 검출되는 입력을 제2 제스처로서 인식하기 위한 제2 제스처 인식 기준들과 연관된다(1418). 제1 제3자 애플리케이션은 제3 동작을 위해 사용자 인터페이스의 제1 부분을 제2 제스처 클래스로부터의 제2 제스처와 연관시켰다(예컨대, 도 7mm에서, 두 손가락 팬 제스처 인식기(2S)는 메일 애플리케이션 사용자 인터페이스(706)의 제1 부분과 연관된다). 제1 제3자 애플리케이션은 제3 동작을 위해 사용자 인터페이스의 제1 부분과 연관된 제2 제스처에 대한 제2 세기 기준들(예컨대, 세기 임계치(I2))을 특정하였다. 입력을 검출하는 것에 응답하여, 디바이스는, 입력이 제2 제스처 인식 기준들을 충족하고 입력이 제1 제3자 애플리케이션에 의해 특정된 제2 세기 기준들을 충족한다는 결정에 따라, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제3 동작을 수행하고(예컨대, 도 7nn에 도시된 바와 같이 메일 애플리케이션 사용자 인터페이스(706) 상에 링크된 웹사이트의 리뷰를 보여주는 리뷰 윈도우(726)를 디스플레이함); 입력이 제2 제스처 인식 기준들을 충족하지만 제1 제3자 애플리케이션에 의해 특정된 제2 세기 기준들을 충족하지 않는다는 결정에 따라, 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제3 동작의 수행을 보류한다(예컨대, 입력이 세기 임계치(I2)를 충족하지 않을 때, 리뷰 윈도우(726)는 디스플레이되지 않는다).
일부 실시예들에서, 디바이스는, 디스플레이 상에, 운영 체제 내에서 구동되고 제1 제3자 애플리케이션과는 상이한 제2 제3자 애플리케이션(예컨대, 도 1a에서의 브라우저 모듈(147))의 사용자 인터페이스를 디스플레이한다(도 14c의 1420). 제2 제3자 애플리케이션은 제1 동작을 위해 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분을 제1 제스처 클래스로부터의 제1 제스처와 연관시켰다(예컨대, 브라우저 애플리케이션 사용자 인터페이스(710)의 주소 윈도우는, 브라우저 애플리케이션 사용자 인터페이스(710)를 도 7pp에 도시된 탭 관리 뷰(728)로 대체하기 위해 제3 핀치 제스처 인식기(N3)와 연관된다). 제2 제3자 애플리케이션은 제1 동작을 위해 사용자 인터페이스의 제2 부분과 연관된 제1 제스처에 대한 제3 세기 기준들(예컨대, 도 7pp에서의 세기 임계치(I3))을 특정하였다. 제3 세기 기준들은 제1 세기 기준들과 상이하다(그리고, 선택적으로, 제3 세기 기준들은 제2 세기 기준들과 상이하다). 디스플레이 상에 제2 제3자 애플리케이션의 사용자 인터페이스를 디스플레이하는 동안, 디바이스는, 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분에 대응하는 위치에서 터치 감응형 표면 상의 입력을 검출한다(예컨대, 도 7oo에서 포커스 선택자들(723, 725)에 의해 나타낸 디핀치 제스처가 브라우저 애플리케이션 사용자 인터페이스(710)의 주소 윈도우 상에서 검출된다). 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분에 대응하는 위치에서 입력을 검출하는 것에 응답하여, 디바이스는, 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분에 대응하는 위치에서의 입력이 제1 제스처 인식 기준들을 충족하고 입력이 제2 제3자 애플리케이션에 의해 특정된 제3 세기 기준들을 충족한다는 결정에 따라, 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분과 연관된 제1 동작을 수행하고(예컨대, 도 7pp에 도시된 바와 같이 브라우저 애플리케이션 사용자 인터페이스(710)가 탭 관리 뷰(728)로 대체되고); 제2 제3자 애플리케이션의 사용자 인터페이스의 부분에 대응하는 위치에서의 입력이 제1 제스처 인식 기준들을 충족하지만 제2 제3자 애플리케이션에 의해 특정된 제3 세기 기준들을 충족하지 않는다는 결정에 따라, 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분과 연관된 제1 동작의 수행을 보류한다. 예를 들어, 포커스 선택자들(723, 725)에 의해 나타낸 디핀치 제스처의 세기가 세기 임계치(I3) 미만일 때, 도 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))을 참조하여 본 명세서에 기술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들의 특성들 중 하나 이상을 선택적으로 갖는다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
도 15a 및 도 15b는 일부 실시예들에 따른, 동적 임계치들에 기초하여 터치 입력들을 프로세싱하는 방법을 예시하는 흐름도들이다. 방법(1500)은 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스(예컨대, 도 3의 디바이스(300) 또는 도 1a의 휴대용 다기능 디바이스(100))에서 수행된다. 일부 실시예들에서, 디스플레이는 터치 스크린 디스플레이이고, 터치 감응형 표면은 디스플레이 상에 있거나 그와 일체화된다. 일부 실시예들에서, 디스플레이는 터치 감응형 표면과 별개이다. 방법(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에 도시된 바와 같은 세기 임계치(IL))를 만족할 것을 요구한다.
일부 실시예들에서, 제1 기간은 터치 감응형 표면 상의 입력을 검출하는 것에 응답하여 시작한다(예컨대, 도 7ss에서, 기간(p1)은 포커스 선택자(727)의 초기 검출로부터 시작한다)(1508).
일부 실시예들에서, 입력을 검출하는 동안, 디바이스는, 입력의 세기가 기준 세기 임계치 미만으로 감소되었다는 결정에 따라, 제1 기간을 재시작한다(예컨대, 도 7uu에 도시된 바와 같이, 입력의 세기가 기준 세기 임계치(IR) 미만으로 감소될 때, 제1 기간은 입력의 세기가 기준 세기 임계치(IR) 미만으로 떨어졌을 때의 시간(7146)으로부터 재시작한다)(1510). 일부 실시예들에서, 기준 세기 임계치는 미리정의된 검출 기간 동안 검출된 최대 세기 및 세기 감소 마진(예컨대, 10 g, 20 g, 30 g, 또는 40 g과 같은 고정된 마진, 또는 접촉의 최대 세기의 5%, 10%, 20%, 또는 30%와 같은 동적 마진), 예컨대 도 7uu에서의 Imargin에 기초하여 결정된다. 일부 실시예들에서, 기준 세기 임계치는 기간이 시작한 이후로(예컨대, 입력이 검출된 순간 이후로 또는 기간이 재시작한 마지막 시간 이후로) 검출된 최대 세기 및 세기 감소 마진에 기초하여 결정된다. 예를 들어, 기준 세기 임계치는 최대 검출된 세기 - 세기 감소 마진(예컨대, 도 7uu에서의 Imargin)에 대응한다. 일부 실시예들에서, 기준 세기 임계치는 입력이 검출되는 동안 계속해서 업데이트된다(예컨대, 도 7vv에 도시된 바와 같이, 기준 세기 임계치는 입력의 세기에 대한 변화들에 기초하여 업데이트된다).
일부 실시예들에서, 입력을 검출하는 동안, 디바이스는, 입력의 세기가 기준 세기 임계치 미만으로 감소되었다는 결정에 따라, 기준 세기 임계치를 리셋한다(예컨대, 도 7vv에서, 입력의 세기가 제1 기준 세기(IR1) 미만으로 감소될 때, 기준 세기는 제2 기준 세기(IR2)로 리셋된다)(1512). 일부 실시예들에서, 기준 세기 임계치는, 기준 세기 임계치가 리셋될 때 검출되는 입력의 세기에 기초하여 변경된다(예컨대, 제2 기준 세기(IR2)는, IR1인 기준 세기 임계치가 리셋될 때의 입력의 세기에 기초하여 결정된다). 예를 들어, 기준 세기 임계치는, 기준 세기 임계치가 리셋될 때(또는 그 직전에) 검출되는 입력의 세기 - 세기 감소 마진으로 리셋된다(예컨대, 도 7vv에서, 제2 기준 세기(IR2)는 제1 기준 세기(IR1) - 세기 마진(Imargin)이다).
일부 실시예들에서, 제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여, 입력이 제1 타이밍 기준들 및/또는 제1 세기 입력 기준들을 만족하지 않는다는 결정에 따라, 디바이스는 제1 동작을 보류한다(예컨대, 입력이 도 7rr에서의 세기 패턴(7130) 또는 세기 패턴(7132)을 추종할 때, 도 7ss에 도시된 바와 같이 사용자 인터페이스 객체(708)를 시각적으로 구별하는 것과 같은 제1 동작은 수행되지 않는다)(1514).
일부 실시예들에서, 제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여, 디바이스는, 입력이 제2 타이밍 기준들 및 제2 세기 입력 기준들을 만족한다는 결정에 따라, 제1 동작과는 별개인 제2 동작을 수행한다(예컨대, 도 5tt에 도시된 바와 같이, 입력이 시간(7136)에 종료되는 기간(p2)에 기초하는 제2 타이밍 기준들 및 세기 임계치(IM)에 기초하는 제2 세기 입력 기준들을 만족할 때, 프리뷰 영역(712)이 디스플레이된다)(1516, 도 15b). 제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와 관련하여 전술된 프리뷰 제스처 인식기(P))로 프로세싱하는 것을 포함하는 제2 동작을 수행한다(1518). 일부 실시예들에서, 입력을 제2 제스처 인식기로 프로세싱하는 것은 제1 제스처 인식기를 실패 상태에 두는 것을 포함한다.
일부 실시예들에서, 입력을 제1 제스처 인식기로 프로세싱하는 것은 탭 제스처 인식기를 취소 상태에 두는 것을 시작한다. 일부 실시예들에서, 입력을 탭 제스처 인식기로 프로세싱하는 것은 제1 제스처 인식기를 취소 상태에 두는 것을 시작한다. 일부 실시예들에서, 입력을 길게 누르기 제스처 인식기로 프로세싱하는 것은 제1 제스처 인식기를 취소 상태에 두는 것을 시작한다.
일부 실시예들에서, 디바이스는, 입력의 종료를 검출하고(예컨대, 터치 감응형 표면으로부터의 입력에 대응하는 접촉의 리프트오프를 검출함); 입력의 종료를 검출하는 것에 응답하여, 입력이 제1 타이밍 기준들(및 제2 타이밍 기준들)과는 별개인 제3 타이밍 기준들을 만족한다는 결정에 따라, 제1 동작(및 제2 동작)과는 별개인 제3 동작을 수행한다(1520). 예를 들어, 디바이스가 신속한 탭 입력(예컨대, 도 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))을 참조하여 본 명세서에 기술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들의 특성들 중 하나 이상을 선택적으로 갖는다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
도 16a 및 도 16b는 일부 실시예들에 따른, 동적 임계치들에 기초하여 터치 입력들을 프로세싱하는 방법(1600)을 예시하는 흐름도들이다. 방법(1600)은 디스플레이, 터치 감응형 표면, 및 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스(예컨대, 도 3의 디바이스(300) 또는 도 1a의 휴대용 다기능 디바이스(100))에서 수행된다. 일부 실시예들에서, 디스플레이는 터치 스크린 디스플레이이고, 터치 감응형 표면은 디스플레이 상에 있거나 그와 일체화된다. 일부 실시예들에서, 디스플레이는 터치 감응형 표면과 별개이다. 방법(1600)의 일부 동작들이 선택적으로 조합되고/되거나 일부 동작들의 순서가 선택적으로 변경된다.
후술되는 바와 같이, 방법(1600)은 터치 입력들을 동적 임계치들로 프로세싱하기 위한 향상된 방식을 제공한다. 방법(1600)은 터치 입력들을 프로세싱하는 데 있어서의 효율을 개선시킨다. 불필요한/관련없는/반복적인 입력들을 감소시킴으로써, 그러한 방법들 및 인터페이스들은 보다 효율적인 인간-기계 인터페이스를 제공하여, 이에 의해 전체 동작 시간 및 사용자 경험을 개선시킨다. 배터리-작동형 디바이스들의 경우, 그러한 방법들 및 인터페이스들은 배터리 전력을 절약하고 배터리 충전들 사이의 시간을 증가시킨다.
디바이스는 디스플레이 상에 사용자 인터페이스(예컨대, 도 7ww에서의 메일 애플리케이션 사용자 인터페이스(706))를 디스플레이한다(1602).
사용자 인터페이스를 디스플레이하는 동안, 디바이스는 터치 감응형 표면 상의 입력(예컨대, 도 7ww에서의 포커스 선택자(729))을 검출한다(1604).
제1 사용자 인터페이스를 검출하는 동안 입력을 검출하는 것에 응답하여, 그리고 입력을 검출하는 동안, 입력이 활성화 세기 임계치를 만족한다는 결정에 따라, 디바이스는 제1 동작을 수행한다(예컨대, 입력(7156)의 세기가 제1 세기 임계치 성분(7154)을 초과할 때, 메일 애플리케이션 사용자 인터페이스(706)는 브라우저 애플리케이션 사용자 인터페이스(710)로 대체된다)(1606). 활성화 세기 임계치는 시간 경과에 따라 제1 세기 값(예컨대, 초기 세기 임계치(IH))으로부터 감소되는 제1 세기 임계치 성분(예컨대, 도 7ww에서의 제1 세기 임계치 성분(7154))을 포함한다.
일부 실시예들에서, 활성화 세기 임계치는 지연을 가진 채 입력의 세기를 추종하는 제2 세기 임계치 성분(예컨대, 도 7yy에서의 제2 세기 임계치 성분(7168))을 포함한다(1608). 일부 실시예들에서, 제2 세기 임계치 성분은 입력의 세기에 로우 패스 필터(low pass filter)를 적용함으로써 획득된다.
일부 실시예들에서, 활성화 세기 임계치는 제1 세기 임계치 성분과 제2 세기 임계치 성분의 합계이다(예컨대, 도 7yy에서, 활성화 세기 임계치(7170)는 제1 세기 임계치 성분(7154)과 제2 세기 임계치 성분(7168)의 합계이다)(1610). 일부 실시예들에서, 활성화 세기 임계치는 그것이 최소 활성화 세기 임계치 이상이도록 하는 방식으로 설정된다(예컨대, 도 7bbb에 도시된 바와 같이, 활성화 세기 임계치(7180)는 기준선 임계치(7182) 이상이다).
일부 실시예들에서, 제1 세기 임계치 성분은 입력이 검출되는 순간으로부터 미리정의된 시간 간격 이후에 감소된다(예컨대, 도 7ww에서, 제1 세기 임계치 성분(7154)은 입력이 초기에 검출될 때로부터 미리정의된 시간 간격(p3) 이후에 감소된다)(1612).
일부 실시예들에서, 제1 세기 임계치 성분이 기준 세기 임계치 미만이 아니라는 결정에 따라, 제1 세기 임계치 성분은 미리정의된 시간 간격 이후에(예컨대, 도 7ww에 도시된 바와 같이 입력이 검출되는 순간으로부터 또는 피크 동작이 수행된 순간으로부터) 감소되는 감쇠 곡선을 추종하고; 제1 세기 임계치 성분이 기준 세기 임계치 미만이라는 결정에 따라, 제1 세기 임계치 성분은 미리정의된 시간 간격을 참조하지 않고서 결정된 시간에 시작하여 감소되는 감쇠 곡선을 추종한다(예컨대, 도 7xx에 도시된 바와 같이, 제1 세기 임계치 성분(7164)은 입력의 세기가 기준 세기 임계치(IR) 미만으로 떨어질 때 감쇠하기 시작한다)(1614). 일부 실시예들에서, 기준 세기 임계치는 미리정의된 검출 기간 동안 검출된 최대 세기 및 세기 감소 마진에 기초하여 결정된다. 일부 실시예들에서, 기준 세기 임계치는 입력이 검출되는 순간 이후로 검출된 최대 세기 및 세기 감소 마진에 기초하여 결정된다. 예를 들어, 기준 세기 임계치는 최대 검출된 세기 - 세기 감소 마진에 대응한다. 일부 실시예들에서, 기준 세기 임계치는 입력이 검출되는 동안 계속해서 업데이트된다.
일부 실시예들에서, 제1 사용자 인터페이스를 디스플레이하는 동안 입력을 검출하는 것에 응답하여, 그리고 입력을 검출하는 동안, 입력이 제1 타이밍 기준들 및 제1 세기 입력 기준들을 만족한다는 결정에 따라, 디바이스는 제2 동작(예컨대, 피크/프리뷰 동작)을 수행한다(도 16b의 1616). 예를 들어, 도 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 세기 임계치 성분의 감쇠는, 입력이 제1 타이밍 기준들 및 제1 세기 입력 기준들을 만족할 때의 시간(7124)에서 미리정의된 시간 간격(p3) 후에 대응하는 시간(7176)에 시작한다.
일부 실시예들에서, 입력은, 세기의 제1 증가, 세기의 제1 증가에 후속하는 세기의 제2 증가, 및 입력이 세기의 제1 증가와 세기의 제2 증가 사이에서 터치 감응형 표면과 접촉 상태로 유지되는 동안, 세기의 제1 증가와 세기의 제2 증가 사이의 세기의 감소를 포함하는 연속 제스처이다(예컨대, 도 7aaa에서, 입력(7178)은 입력(7178)을 해제하지 않고서 IL 미만으로부터 IM 초과로의 세기의 제1 증가, 이어서 IM 초과로부터 IL 미만으로의 세기의 감소, 이어서 IL 미만으로부터 IL 초과(및 IM 초과)로의 세기의 제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))을 참조하여 본 명세서에 기술된 터치 입력들, 사용자 인터페이스 객체들, 세기 임계치들, 및 애니메이션들의 특성들 중 하나 이상을 선택적으로 갖는다. 간결함을 위해, 이 상세사항들이 여기서 반복되지 않는다.
일부 실시예들에 따르면, 도 17은 다양한 기술된 실시예들의 원리들에 따라 구성된 전자 디바이스(1700)의 기능 블록도를 도시한다. 디바이스(1700)의 기능 블록들은, 선택적으로, 다양한 기술된 실시예들의 원리를 수행하기 위한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합에 의해 구현된다. 당업자라면 다양한 기술된 실시예들의 원리들을 구현하기 위해 도 17에서 기술된 기능 블록들이 선택적으로 조합되거나 서브블록들로 분리된다는 것이 이해된다. 따라서, 본 명세서의 설명은, 선택적으로, 본 명세서에 기술된 기능 블록들의 임의의 가능한 조합 또는 분리 또는 추가 정의를 지원한다.
도 17에 도시된 바와 같이, 전자 디바이스(1700)는 하나 이상의 사용자 인터페이스들을 디스플레이하도록 구성된 디스플레이 유닛(1702); 사용자 입력들을 수신하도록 구성된 터치 감응형 표면 유닛(1704); 터치 감응형 표면 유닛(1704)과의 접촉들의 세기를 검출하도록 구성된 하나 이상의 센서 유닛들(1706); 및 디스플레이 유닛(1702), 터치 감응형 표면 유닛(1704) 및 하나 이상의 센서 유닛들(1706)에 결합된 프로세싱 유닛(1708)을 포함한다. 일부 실시예들에서, 프로세싱 유닛(1708)은 디스플레이 인에이블 유닛(1710), 입력 평가 유닛(1712), 제스처 인식기 유닛(1714), 및 동작 수행 유닛(1716)을 포함한다.
일부 실시예들에서, 전자 디바이스(1700)는 길게 누르기 제스처와 깊게 누르기 입력을 구별하도록 그리고 길게 누르기 제스처 및 깊게 누르기 입력에 응답하여 별개의 동작들을 수행하도록 구성된다. 그러한 실시예들에서, 프로세싱 유닛(1708)은 제1 사용자 인터페이스의 디스플레이를 인에이블하도록 구성되고, 프로세싱 유닛(1708)은, (예컨대, 디스플레이 인에이블 유닛(1710)으로) 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안, (예컨대, 입력 평가 유닛(1712)으로) 터치 감응형 표면 유닛 상의 입력을 검출하도록, 그리고 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 입력이 제1 미리정의된 기간 동안 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라, (예컨대, 동작 수행 유닛(1716)으로) 제1 동작을 수행하도록, 그리고 입력이 제1 미리정의된 기간 동안 제1 세기 임계치 미만으로 유지되는 것을 포함하는 길게 누르기 기준들을 입력이 만족한다는 결정에 따라, (예컨대, 동작 수행 유닛(1716)으로) 제2 동작을 수행하도록 추가로 구성된다. 이러한 실시예들의 일부 구현예들에서, 제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)은 입력의 제3 부분을 제1 제스처 인식기로 프로세싱하도록 구성된다.
일부 실시예들에서, 제스처 인식기들의 제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 세트는 제1 제스처 인식기 없이 제2 제스처 인식기를 포함한다. 더욱이, 이러한 실시예들에서, 프로세싱 유닛은 터치 감응형 표면 상의 제2 입력의 제2 부분을 검출하는 것에 응답하여, 제2 입력이 제1 미리정의된 기간과는 상이한 지속기간을 갖는 제2 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 포함하는 제2 길게 누르기 기준들을 제2 입력이 만족한다는 결정에 따라, 제2 입력을 제2 제스처 인식기로 프로세싱하도록 구성된다.
일부 실시예들에서, 전자 디바이스(1700)(도 17)는 팬 제스처와 깊게 누르기 입력을 구별하도록 그리고 팬 제스처 및 깊게 누르기 입력에 응답하여 별개의 동작들을 수행하도록 구성된다. 그러한 실시예들에서, 프로세싱 유닛(1708)은 제1 사용자 인터페이스의 디스플레이를 인에이블하도록 구성되고, 프로세싱 유닛(1708)은, (예컨대, 디스플레이 인에이블 유닛(1710)으로) 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안, (예컨대, 입력 평가 유닛(1712)으로) 터치 감응형 표면 유닛 상의 입력을 검출하도록, 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 입력이 제1 세기 임계치를 만족하는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라, (예컨대, 동작 수행 유닛(1716)으로) 제1 동작을 수행하도록, 그리고 입력이 터치 감응형 표면을 가로질러 적어도 미리정의된 거리만큼 이동하였음을 포함하는 팬 기준들을 입력이 만족한다는 결정에 따라, (예컨대, 동작 수행 유닛(1716)으로) 제2 동작을 수행하도록 추가로 구성된다. 이러한 실시예들의 일부 구현예들에서, 제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)은 입력의 제3 부분을 제1 제스처 인식기로 프로세싱하도록 구성된다.
일부 실시예들에서, 제스처 인식기들의 제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)은, (예컨대, 디스플레이 인에이블 유닛(1710)으로) 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안, (예컨대, 입력 평가 유닛(1712)으로) 터치 감응형 표면 유닛 상의 입력을 검출하도록, 그리고 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 입력이 제1 세기 임계치를 만족하고 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 포함하는 세기 입력 기준들을 입력이 만족한다는 결정에 따라, (예컨대, 동작 수행 유닛(1716)으로) 제1 동작을 수행하도록, 그리고 입력이 제1 미리정의된 기간 동안 터치 감응형 표면 상에 유지되는 것을 중지하는 것을 포함하는 길게 누르기 기준들을 입력이 만족한다는 결정에 따라, (예컨대, 동작 수행 유닛(1716)으로) 제2 동작을 수행하도록 추가로 구성된다. 이러한 실시예들의 일부 구현예들에서, 제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)은 입력의 제3 부분을 제1 제스처 인식기로 프로세싱하도록 구성된다.
일부 실시예들에서, 제스처 인식기들의 제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과 관련하여 전술된 바와 같은) 범용 프로세서들 또는 애플리케이션 특정 칩들과 같은 정보 프로세싱 장치 내의 하나 이상의 기능 모듈을 구동시킴으로써 구현된다.
일부 실시예들에 따르면, 도 18은 다양한 기술된 실시예들의 원리들에 따라 구성된 전자 디바이스(1800)의 기능 블록도를 도시한다. 디바이스(1800)의 기능 블록들은, 선택적으로, 다양한 기술된 실시예들의 원리를 수행하기 위한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합에 의해 구현된다. 당업자라면 다양한 기술된 실시예들의 원리들을 구현하기 위해 도 18에서 기술된 기능 블록들이 선택적으로 조합되거나 서브블록들로 분리된다는 것이 이해된다. 따라서, 본 명세서의 설명은, 선택적으로, 본 명세서에 기술된 기능 블록들의 임의의 가능한 조합 또는 분리 또는 추가 정의를 지원한다.
도 18에 도시된 바와 같이, 전자 디바이스(1800)는 하나 이상의 사용자 인터페이스들을 디스플레이하도록 구성된 디스플레이 유닛(1802); 사용자 입력들을 수신하도록 구성된 터치 감응형 표면 유닛(1804); 터치 감응형 표면 유닛(1804)과의 접촉들의 세기를 검출하도록 구성된 하나 이상의 센서 유닛들(1806); 및 디스플레이 유닛(1802), 터치 감응형 표면 유닛(1804) 및 하나 이상의 센서 유닛들(1806)에 결합된 프로세싱 유닛(1808)을 포함한다. 일부 실시예들에서, 프로세싱 유닛(1808)은 디스플레이 인에이블 유닛(1810), 검출 유닛(1812), 및 프리뷰 동작 유닛(1814)을 포함한다.
프로세싱 유닛(1808)은, (예컨대, 디스플레이 인에이블 유닛(1810)으로) 제1 소프트웨어 애플리케이션의 제1 사용자 인터페이스의 디스플레이를 인에이블하도록 - 제1 사용자 인터페이스는 복수의 사용자 인터페이스 객체들을 포함하고, 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체는 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트와 연관됨 -; 포커스 선택자가 디스플레이 유닛(1802) 상에서 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체 위에 있는 동안, (예컨대, 검출 유닛(1812)으로) 접촉에 의한 입력의 제1 부분을 검출하도록; 그리고 입력의 제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)은, (예컨대, 디스플레이 인에이블 유닛(1810)으로) 제1 소프트웨어 애플리케이션의 제1 사용자 인터페이스의 디스플레이를 인에이블하도록 - 제1 사용자 인터페이스는 복수의 사용자 인터페이스 객체들을 포함하고, 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체는 프리뷰 동작들을 위한 미리정의된 명령어들의 애플리케이션 독립적인 세트와 연관됨 -; 포커스 선택자가 디스플레이 유닛(1802) 상에서 복수의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체 위에 있는 동안, (예컨대, 검출 유닛(1812)으로) 접촉에 의한 입력의 제1 부분을 검출하도록; 그리고 입력의 제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)과의 접촉들의 세기를 검출하도록 구성된 하나 이상의 센서 유닛들(1906); 및 디스플레이 유닛(1902), 터치 감응형 표면 유닛(1904) 및 하나 이상의 센서 유닛들(1906)에 결합된 프로세싱 유닛(1908)을 포함한다. 일부 실시예들에서, 프로세싱 유닛(1908)은 디스플레이 인에이블 유닛(1910), 검출 유닛(1912), 전송 유닛(1914), 수신 유닛(1916), 및 조정 유닛(1918)을 포함한다.
프로세싱 유닛(1908)은, (예컨대, 디스플레이 인에이블 유닛(1910)으로) 디스플레이 유닛(1902) 상에 소프트웨어 애플리케이션의 사용자 인터페이스의 디스플레이를 인에이블하도록; 디스플레이 유닛(1902) 상에 소프트웨어 애플리케이션의 사용자 인터페이스의 디스플레이를 인에이블하는 동안, (예컨대, 검출 유닛(1912)으로) 소프트웨어 애플리케이션의 사용자 인터페이스에 대응하는 위치에서 터치 감응형 표면 유닛(1904) 상의 입력을 검출하도록; 그리고 입력을 검출하는 것에 응답하여, (예컨대, 전송 유닛(1914)으로) 입력에 대응하는 세기 정보를 명령어들의 애플리케이션 독립적인 세트로부터 소프트웨어 애플리케이션으로 전송하도록 구성된다. 세기 정보는 하나 이상의 센서들에 할당되는 기준 세기; 및 입력의 검출된 세기에 대응하는 특성 세기를 포함한다.
일부 실시예들에서, 특성 세기는 민감도 값에 의해 추가로 조정된다
일부 실시예들에서, 프로세싱 유닛(1908)은 (예컨대, 디스플레이 인에이블 유닛(1910)으로) 디스플레이 유닛(1902) 상에 복수의 세기 민감도 설정값들 중에서 각각의 세기 민감도 설정값을 선택하기 위한 민감도 제어부의 디스플레이를 인에이블하도록; 민감도 제어부의 디스플레이를 인에이블하는 동안, (예컨대, 수신 유닛(1916)으로) 복수의 세기 민감도 설정값들 중 각각의 세기 민감도 설정값의 선택에 대응하는 사용자 입력을 수신하도록; 그리고 각각의 세기 민감도 설정값의 선택에 대응하는 사용자 입력을 수신하는 것에 응답하여, (예컨대, 조정 유닛(1918)으로) 사용자에 의해 선택되는 각각의 세기 민감도 설정값에 대응하는 각각의 민감도 값에 의해 복수의 후속 입력들에 대한 특성 세기 값들을 조정하도록 추가로 구성된다.
일부 실시예들에서, 입력의 특성 세기는 기준 세기에 기초하여 정규화되는 정규화된 세기 값이다.
일부 실시예들에서, 세기 정보는, 세기 기반 기준들과 비-세기 기반 기준들의 조합에 기초하여 하나 이상의 휴리스틱들에 의해 결정되는 세기 상태 정보를 포함한다.
일부 실시예들에서, 세기 정보는 복수의 상이한 이용가능한 상태 값들을 갖는 세기 상태 정보를 포함하고, 세기 상태들 사이의 전이들은 운영 체제 구동형 사용자 상호작용들을 트리거하기 위해 운영 체제 전체에 걸쳐 사용된다.
일부 실시예들에서, 세기 상태 정보는, 현재 세기 상태가 제스처 인식기에 대한 세기 상태 요건에 매칭되는지 여부에 대한 디바이스로부터의 표시에 기초하여 제공된다.
일부 실시예들에서, 입력의 특성 세기는 하나 이상의 터치 이벤트들을 통해 제공되는데, 터치 이벤트들 각각은 터치 이벤트에 대응하는 접촉의 특성 세기를 포함한다.
일부 실시예들에 따르면, 도 20은 다양한 기술된 실시예들의 원리들에 따라 구성된 전자 디바이스(2000)의 기능 블록도를 도시한다. 디바이스(2000)의 기능 블록들은, 선택적으로, 다양한 기술된 실시예들의 원리를 수행하기 위한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합에 의해 구현된다. 당업자라면 다양한 기술된 실시예들의 원리들을 구현하기 위해 도 20에서 기술된 기능 블록들이 선택적으로 조합되거나 서브블록들로 분리된다는 것이 이해된다. 따라서, 본 명세서의 설명은, 선택적으로, 본 명세서에 기술된 기능 블록들의 임의의 가능한 조합 또는 분리 또는 추가 정의를 지원한다.
도 20에 도시된 바와 같이, 전자 디바이스(2000)는 사용자 인터페이스를 디스플레이하도록 구성된 디스플레이 유닛(2002); 사용자 입력들을 수신하도록 구성된 터치 감응형 표면 유닛(2004); 터치 감응형 표면 유닛(2004)과의 접촉들의 세기를 검출하도록 구성된 하나 이상의 센서 유닛들(2006); 및 디스플레이 유닛(2002), 터치 감응형 표면 유닛(2004) 및 하나 이상의 센서 유닛들(2006)에 결합된 프로세싱 유닛(2008)을 포함한다. 일부 실시예들에서, 프로세싱 유닛(2008)은 디스플레이 인에이블 유닛(2010), 검출 유닛(2012), 제공 유닛(2014), 업데이트 유닛(2016), 및 시작 유닛(2018)을 포함한다.
프로세싱 유닛(2008)은, (예컨대, 디스플레이 인에이블 유닛(2010)으로) 디스플레이 유닛(2002) 상에 소프트웨어 애플리케이션의 제1 사용자 인터페이스의 디스플레이를 인에이블하도록; 소프트웨어 애플리케이션의 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안, (예컨대, 검출 유닛(2012)으로) 터치 감응형 표면 유닛(2004) 상의 입력을 검출하도록; 그리고 입력을 검출하는 동안: 입력의 세기에 대한 변화들을 검출하는 것에 응답하여, (예컨대, 제공 유닛(2014)으로) 입력의 세기에 대한 변화들을 나타내는 제1 진행 표시자의 값을 명령어들의 애플리케이션 독립적인 세트로부터 소프트웨어 애플리케이션에 제공하도록; 그리고 명령어들의 애플리케이션 독립적인 세트와는 상이한 소프트웨어 애플리케이션 내의 명령어들의 세트 및 제1 진행 표시자의 값에 따라 (예컨대, 업데이트 유닛(2016)으로) 제1 사용자 인터페이스를 업데이트하도록 구성된다.
일부 실시예들에서, 제1 진행 표시자의 값은 제1 초기 상태와 제1 최종 상태 사이의 입력의 상태값을 나타내는 정규화된 값이다.
일부 실시예들에서, 제1 초기 상태 및 제1 최종 상태는 소프트웨어 애플리케이션에 의해 특정된다.
일부 실시예들에서, 프로세싱 유닛(2008)은, 입력을 검출하는 동안: 제1 최종 상태에 걸쳐 입력의 세기에 대한 변화들을 검출하는 것에 응답하여: (예컨대, 제공 유닛(2014)으로) 입력에 대한 변화들을 나타내는 제2 진행 표시자의 값을 명령어들의 애플리케이션 독립적인 세트로부터 소프트웨어 애플리케이션에 제공하도록 - 제2 진행 표시자의 값은 제2 초기 상태와 제2 최종 상태 사이의 입력의 상태값을 나타내는 정규화된 값임 -; 그리고 명령어들의 애플리케이션 독립적인 세트와는 상이한 소프트웨어 애플리케이션 내의 명령어들의 세트 및 제2 진행 표시자의 값에 따라 (예컨대, 업데이트 유닛(2016)으로) 제1 사용자 인터페이스를 업데이트하도록 구성된다.
일부 실시예들에서, 상이한 상태들 사이의 진행은 세기 기반 기준들과 비-세기 기반 기준들의 조합에 기초하여 하나 이상의 휴리스틱들에 의해 결정된다.
일부 실시예들에서, 상태들은 디바이스의 운영 체제에 의해 제공되는 상태 값들의 세트로부터 선택되고, 이러한 상태들 사이의 전이들은 운영 체제 구동형 사용자 상호작용들을 트리거하기 위해 운영 체제 전체에 걸쳐 사용된다.
일부 실시예들에서, 소프트웨어 애플리케이션 내의 명령어들의 세트 및 제2 진행 표시자의 값에 따라 제1 사용자 인터페이스를 업데이트하는 것은, 제1 사용자 인터페이스를 제2 사용자 인터페이스로 대체하는 것을 포함한다.
일부 실시예들에서, 소프트웨어 애플리케이션 내의 명령어들의 세트는 입력의 세기에 대한 변화들을 그래픽으로 나타내는 맞춤화된 애니메이션을 제공하도록 구성된다.
일부 실시예들에서, 프로세싱 유닛(2008)은, 입력을 검출하는 동안: 입력이 제1 세기 기준들을 만족하는 것을 검출하는 것에 응답하여, (예컨대, 시작 유닛(2018)으로) 제1 진행 표시자의 값이 입력의 세기에 대한 변화들을 나타내도록 제1 진행 표시자를 시작하도록 구성된다.
도 21은 일부 실시예들에 따른 전자 디바이스의 기능 블록도이다.
일부 실시예들에 따르면, 도 21은 다양한 기술된 실시예들의 원리들에 따라 구성된 전자 디바이스(2100)의 기능 블록도를 도시한다. 디바이스(2100)의 기능 블록들은, 선택적으로, 다양한 기술된 실시예들의 원리를 수행하기 위한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합에 의해 구현된다. 당업자라면 다양한 기술된 실시예들의 원리들을 구현하기 위해 도 21에서 기술된 기능 블록들이 선택적으로 조합되거나 서브블록들로 분리된다는 것이 이해된다. 따라서, 본 명세서의 설명은, 선택적으로, 본 명세서에 기술된 기능 블록들의 임의의 가능한 조합 또는 분리 또는 추가 정의를 지원한다.
도 21에 도시된 바와 같이, 전자 디바이스(2100)는 사용자 인터페이스들을 디스플레이하도록 구성된 디스플레이 유닛(2102), 접촉들을 검출하도록 구성된 터치 감응형 표면 유닛(2104), 터치 감응형 표면 유닛(2104)과의 접촉들의 세기를 검출하도록 구성된 하나 이상의 센서 유닛들(2106); 및 디스플레이 유닛(2102), 터치 감응형 표면 유닛(2104) 및 하나 이상의 센서 유닛들(2106)과 결합된 프로세싱 유닛(2108)을 포함한다. 일부 실시예들에서, 프로세싱 유닛(2108)은 디스플레이 인에이블 유닛(2110), 검출 유닛(2112), 제1 동작 유닛(2114), 기간 재시작 유닛(2116), 기준 세기 리셋 유닛(2118), 보류 유닛(2120), 제2 동작 유닛(2122), 및 제3 동작 유닛(2124)을 포함한다.
프로세싱 유닛(2108)은 (예컨대, 디스플레이 인에이블 유닛(2110)을 사용하여) 디스플레이 유닛(2102) 상에, 운영 체제 내에서 구동되는 제1 제3자 애플리케이션의 사용자 인터페이스의 디스플레이를 인에이블하도록 구성된다. 디바이스의 능력들은 운영 체제의 운영 체제 프레임워크를 통해 제1 제3자 애플리케이션에 노출된다. 운영 체제 프레임워크는 디바이스에 의해 인식될 수 있는 복수의 제스처 클래스들을 정의한다. 제1 제스처 클래스는 제1 제스처 인식 기준들이 충족될 때 터치 감응형 표면 유닛(2104) 상에서 검출되는 입력을 제1 제스처로서 인식하기 위한 제1 제스처 인식 기준들과 연관된다. 제1 제3자 애플리케이션은 제1 동작을 위해 사용자 인터페이스의 제1 부분을 제1 제스처 클래스로부터의 제1 제스처와 연관시켰다. 제1 제3자 애플리케이션은 제1 동작을 위해 사용자 인터페이스의 제1 부분과 연관된 제1 제스처에 대한 제1 세기 기준들을 특정하였다. 프로세싱 유닛(2108)은 디스플레이 유닛(2102) 상에 제1 제3자 애플리케이션의 사용자 인터페이스의 디스플레이를 인에이블하는 동안, (예컨대, 검출 유닛(2112)을 사용하여) 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분에 대응하는 위치에서 터치 감응형 표면 유닛(2104) 상의 입력을 검출하도록; 그리고, 입력을 검출하는 것에 응답하여: 입력이 제1 제스처 인식 기준들을 충족하고 입력이 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족한다는 결정에 따라, (예컨대, 제1 동작 유닛(2114)을 사용하여) 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제1 동작을 수행하도록; 그리고, 입력이 제1 제스처 인식 기준들을 충족하지만 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족하지 않는다는 결정에 따라, (예컨대, 보류 유닛(2116)을 사용하여) 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제1 동작의 수행을 보류하도록 구성된다.
일부 실시예들에서, 제1 제3자 애플리케이션은 제2 동작을 위해 사용자 인터페이스의 제1 부분을 제1 제스처 클래스로부터의 제1 제스처와 연관시켰고, 제1 제3자 애플리케이션은 제2 동작을 위해 사용자 인터페이스의 제1 부분과 연관된 제1 제스처에 대한 제1 세기 기준들을 특정하지 않았다. 프로세싱 유닛(2108)은, 입력을 검출하는 것에 응답하여: 입력이 제1 제스처 인식 기준들을 충족하지만 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족하지 않는다는 결정에 따라, (예컨대, 제2 동작 유닛(2118)을 사용하여) 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제2 동작을 수행하도록; 그리고, 입력이 제1 제스처 인식 기준들을 충족하고 입력이 제1 제3자 애플리케이션에 의해 특정된 제1 세기 기준들을 충족한다는 결정에 따라, (예컨대, 보류 유닛(2116)을 사용하여) 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제2 동작의 수행을 보류하도록 구성된다.
일부 실시예들에서, 제2 제스처 클래스는 제2 제스처 인식 기준들이 충족될 때 터치 감응형 표면 유닛(2104) 상에서 검출되는 입력을 제2 제스처로서 인식하기 위한 제2 제스처 인식 기준들과 연관된다. 제1 제3자 애플리케이션은 제3 동작을 위해 사용자 인터페이스의 제1 부분을 제2 제스처 클래스로부터의 제2 제스처와 연관시켰다. 제1 제3자 애플리케이션은 제3 동작을 위해 사용자 인터페이스의 제1 부분과 연관된 제2 제스처에 대한 제2 세기 기준들을 특정하였다. 프로세싱 유닛(2108)은, 입력을 검출하는 것에 응답하여: 입력이 제2 제스처 인식 기준들을 충족하고 입력이 제1 제3자 애플리케이션에 의해 특정된 제2 세기 기준들을 충족한다는 결정에 따라, (예컨대, 제3 동작 유닛(2120)을 사용하여) 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제3 동작을 수행하도록; 그리고, 입력이 제2 제스처 인식 기준들을 충족하지만 제1 제3자 애플리케이션에 의해 특정된 제2 세기 기준들을 충족하지 않는다는 결정에 따라, (예컨대, 보류 유닛(2116)을 사용하여) 제1 제3자 애플리케이션의 사용자 인터페이스의 제1 부분과 연관된 제3 동작의 수행을 보류하도록 구성된다.
일부 실시예들에서, 제1 세기 기준들은 세기 임계치를 포함한다.
일부 실시예들에서, 세기 임계치는 미리정의된 임계치들의 세트로부터 선택된다.
일부 실시예들에서, 세기 임계치는 디바이스(예컨대, 디바이스(2100) 또는 센서 유닛들(2106))에 의해 검출가능한 값들의 범위로부터 선택된다.
일부 실시예들에서, 프로세싱 유닛(2108)은 (예컨대, 디스플레이 인에이블 유닛(2110)을 사용하여) 디스플레이 유닛(2102) 상에, 운영 체제 내에서 구동되고 제1 제3자 애플리케이션과는 상이한 제2 제3자 애플리케이션의 사용자 인터페이스의 디스플레이를 인에이블하도록 구성된다. 제2 제3자 애플리케이션은 제1 동작을 위해 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분을 제1 제스처 클래스로부터의 제1 제스처와 연관시켰다. 제2 제3자 애플리케이션은 제1 동작을 위해 사용자 인터페이스의 제2 부분과 연관된 제1 제스처에 대한 제3 세기 기준들을 특정하였다. 제3 세기 기준들은 제1 세기 기준들과는 상이하다. 프로세싱 유닛(2108)은, 디스플레이 유닛(2102) 상에 제2 제3자 애플리케이션의 사용자 인터페이스의 디스플레이를 인에이블하는 동안, (예컨대, 검출 유닛(2112)을 사용하여) 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분에 대응하는 위치에서 터치 감응형 표면 유닛(2104) 상의 입력을 검출하도록; 그리고, 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분에 대응하는 위치에서 입력을 검출하는 것에 응답하여: 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분에 대응하는 위치에서의 입력이 제1 제스처 인식 기준들을 충족하고 입력이 제2 제3자 애플리케이션에 의해 특정된 제3 세기 기준들을 충족한다는 결정에 따라, (예컨대, 제1 동작 유닛(2114)을 사용하여) 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분과 연관된 제1 동작을 수행하도록; 그리고, 제2 제3자 애플리케이션의 사용자 인터페이스의 부분에 대응하는 위치에서의 입력이 제1 제스처 인식 기준들을 충족하지만 제2 제3자 애플리케이션에 의해 특정된 제3 세기 기준들을 충족하지 않는다는 결정에 따라, (예컨대, 보류 유닛(2116)을 사용하여) 제2 제3자 애플리케이션의 사용자 인터페이스의 제2 부분과 연관된 제1 동작의 수행을 보류하도록 구성된다.
일부 실시예들에 따르면, 도 22는 다양한 기술된 실시예들의 원리들에 따라 구성된 전자 디바이스(2200)의 기능 블록도를 도시한다. 디바이스(2200)의 기능 블록들은, 선택적으로, 다양한 기술된 실시예들의 원리를 수행하기 위한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합에 의해 구현된다. 당업자라면 다양한 기술된 실시예들의 원리들을 구현하기 위해 도 22에서 기술된 기능 블록들이 선택적으로 조합되거나 서브블록들로 분리된다는 것이 이해된다. 따라서, 본 명세서의 설명은, 선택적으로, 본 명세서에 기술된 기능 블록들의 임의의 가능한 조합 또는 분리 또는 추가 정의를 지원한다.
도 22에 도시된 바와 같이, 전자 디바이스(2200)는 사용자 인터페이스들을 디스플레이하도록 구성된 디스플레이 유닛(2202), 접촉들을 검출하도록 구성된 터치 감응형 표면 유닛(2204), 터치 감응형 표면 유닛(2204)과의 접촉들의 세기를 검출하도록 구성된 하나 이상의 센서 유닛들(2206); 및 디스플레이 유닛(2202), 터치 감응형 표면 유닛(2204) 및 하나 이상의 센서 유닛들(2206)과 결합된 프로세싱 유닛(2208)을 포함한다. 일부 실시예들에서, 프로세싱 유닛(2208)은 디스플레이 인에이블 유닛(2210), 검출 유닛(2212), 제1 동작 유닛(2214), 기간 재시작 유닛(2216), 기준 세기 리셋 유닛(2218), 보류 유닛(2220), 제2 동작 유닛(2222), 및 제3 동작 유닛(2224)을 포함한다.
프로세싱 유닛(2208)은, (예컨대, 디스플레이 인에이블 유닛(2210)을 사용하여) 디스플레이 유닛(2202) 상에 사용자 인터페이스의 디스플레이를 인에이블하도록; 사용자 인터페이스의 디스플레이를 인에이블하는 동안, (예컨대, 검출 유닛(2212)을 사용하여) 터치 감응형 표면 유닛(2204) 상의 입력을 검출하도록; 그리고, 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 그리고 입력을 검출하는 동안: 입력이 제1 타이밍 기준들 및 제1 세기 입력 기준들을 만족한다는 결정에 따라, (예컨대, 제1 동작 유닛(2214)을 사용하여) 제1 동작을 수행하도록 구성된다. 제1 타이밍 기준들은 제1 기간이 경과하는 동안 입력이 터치 감응형 표면 유닛(2204) 상에 유지될 것을 요구한다. 제1 세기 입력 기준들은 제1 기간의 끝에 또는 그에 후속하여 입력이 제1 세기 임계치를 만족할 것을 요구한다.
일부 실시예들에서, 제1 기간은 터치 감응형 표면 유닛(2204) 상의 입력을 검출하는 것에 응답하여 시작한다.
일부 실시예들에서, 프로세싱 유닛(2208)은, 입력을 검출하는 동안, 입력의 세기가 기준 세기 임계치 미만으로 감소되었다는 결정에 따라, (예컨대, 기간 재시작 유닛(2216)을 사용하여) 제1 기간을 재시작하도록 구성된다.
일부 실시예들에서, 프로세싱 유닛(2208)은, 입력을 검출하는 동안, 입력의 세기가 기준 세기 임계치 미만으로 감소되었다는 결정에 따라, (예컨대, 기준 세기 리셋 유닛(2218)을 사용하여) 기준 세기 임계치를 리셋하도록 구성된다.
일부 실시예들에서, 프로세싱 유닛(2208)은, 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 입력이 제1 타이밍 기준들 및/또는 제1 세기 입력 기준들을 만족하지 않는다는 결정에 따라, (예컨대, 보류 유닛(2220)을 사용하여) 제1 동작을 보류하도록 구성된다.
일부 실시예들에서, 프로세싱 유닛(2208)은, 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 입력이 제2 타이밍 기준들 및 제2 세기 입력 기준들을 만족한다는 결정에 따라, (예컨대, 제2 동작 유닛(2222)을 사용하여) 제1 동작과는 별개인 제2 동작을 수행하도록 구성된다. 제2 타이밍 기준들은 제2 기간이 경과하는 동안 입력이 터치 감응형 표면 유닛(2204) 상에 유지될 것을 요구한다. 제2 세기 입력 기준들은 제2 기간의 끝에 또는 그에 후속하여, 입력이 제1 세기 임계치와는 별개인 제2 세기 임계치를 만족할 것을 요구한다.
일부 실시예들에서, 프로세싱 유닛(2208)은, 입력을 검출하는 것에 응답하여 그리고 입력이 제1 타이밍 기준들 및 제1 입력 기준들을 만족한다는 결정에 따라, (예컨대, 제1 동작 유닛(2214)을 사용하여) 입력을 제1 제스처 인식기로 프로세싱하는 것을 포함하는 제1 동작을 수행하도록; 그리고, 입력을 검출하는 것에 응답하여 그리고 입력이 제2 타이밍 기준들 및 제2 세기 입력 기준들을 만족한다는 결정에 따라, (예컨대, 제2 동작 유닛(2222)을 사용하여) 입력을 제2 제스처 인식기로 프로세싱하는 것을 포함하는 제2 동작을 수행하도록 구성된다.
일부 실시예들에서, 프로세싱 유닛(2208)은, (예컨대, 검출 유닛(2212)을 사용하여) 입력의 종료를 검출하도록; 그리고, 입력의 종료를 검출하는 것에 응답하여, 입력이 제1 타이밍 기준들과는 별개인 제3 타이밍 기준들을 만족한다는 결정에 따라, (예컨대, 제3 동작 유닛(2224)을 사용하여) 제1 동작과는 별개인 제3 동작을 수행하도록 구성된다.
일부 실시예들에서, 프로세싱 유닛(2208)은, 입력의 종료를 검출하는 것에 응답하여, 입력이 제3 타이밍 기준들 또는 제1 타이밍 기준들을 만족하지 않는다는 결정에 따라, (예컨대, 보류 유닛(2220)을 사용하여) 임의의 동작의 수행을 보류하도록 구성된다.
일부 실시예들에 따르면, 도 23은 다양한 기술된 실시예들의 원리들에 따라 구성된 전자 디바이스(2300)의 기능 블록도를 도시한다. 디바이스(2300)의 기능 블록들은, 선택적으로, 다양한 기술된 실시예들의 원리를 수행하기 위한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합에 의해 구현된다. 당업자라면 다양한 기술된 실시예들의 원리들을 구현하기 위해 도 23에서 기술된 기능 블록들이 선택적으로 조합되거나 서브블록들로 분리된다는 것이 이해된다. 따라서, 본 명세서의 설명은, 선택적으로, 본 명세서에 기술된 기능 블록들의 임의의 가능한 조합 또는 분리 또는 추가 정의를 지원한다.
도 23에 도시된 바와 같이, 전자 디바이스(2300)는 사용자 인터페이스들을 디스플레이하도록 구성된 디스플레이 유닛(2302), 접촉들을 검출하도록 구성된 터치 감응형 표면 유닛(2304), 터치 감응형 표면 유닛(2304)과의 접촉들의 세기를 검출하도록 구성된 하나 이상의 센서 유닛들(2306); 및 디스플레이 유닛(2302), 터치 감응형 표면 유닛(2304) 및 하나 이상의 센서 유닛들(2306)과 결합된 프로세싱 유닛(2308)을 포함한다. 일부 실시예들에서, 프로세싱 유닛(2308)은 디스플레이 인에이블 유닛(2310), 검출 유닛(2312), 제1 동작 유닛(2314), 및 제2 동작 유닛(2316)을 포함한다.
프로세싱 유닛(2308)은, (예컨대, 디스플레이 인에이블 유닛(2310)을 사용하여) 디스플레이 유닛(2302) 상에 사용자 인터페이스의 디스플레이를 인에이블하도록; 사용자 인터페이스의 디스플레이를 인에이블하는 동안, (예컨대, 검출 유닛(2312)을 사용하여) 터치 감응형 표면 유닛(2304) 상의 입력을 검출하도록; 그리고, 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 그리고 입력을 검출하는 동안: 입력이 활성화 세기 임계치를 만족한다는 결정에 따라, (예컨대, 제1 동작 유닛(2314)을 사용하여) 제1 동작을 수행하도록 구성된다. 활성화 세기 임계치는 시간 경과에 따라 제1 세기 값으로부터 감소되는 제1 세기 임계치 성분을 포함한다.
일부 실시예들에서, 활성화 세기 임계치는 지연을 가진 채 입력의 세기를 추종하는 제2 세기 임계치 성분을 포함한다.
일부 실시예들에서, 활성화 세기 임계치는 제1 세기 임계치 성분과 제2 세기 임계치 성분의 합계이다.
일부 실시예들에서, 제1 세기 임계치 성분은 입력이 검출되는 순간으로부터 미리정의된 시간 간격 이후에 감소된다.
일부 실시예들에서, 제1 세기 임계치 성분이 기준 세기 임계치 미만이 아니라는 결정에 따라, 제1 세기 임계치 성분은 미리정의된 시간 간격 이후에 감소되는 감쇠 곡선을 추종하고; 제1 세기 임계치 성분이 기준 세기 임계치 미만이라는 결정에 따라, 제1 세기 임계치 성분은 미리정의된 시간 간격을 참조하지 않고서 결정된 시간에 시작하여 감소되는 감쇠 곡선을 추종한다.
일부 실시예들에서, 프로세싱 유닛(2308)은, 제1 사용자 인터페이스의 디스플레이를 인에이블하는 동안 입력을 검출하는 것에 응답하여, 그리고 입력을 검출하는 동안: 입력이 제1 타이밍 기준들 및 제1 세기 입력 기준들을 만족한다는 결정에 따라, (예컨대, 제2 동작 유닛(2316)을 사용하여) 제2 동작을 수행하도록 구성된다. 제1 타이밍 기준들은 제1 기간이 경과하는 동안 입력이 터치 감응형 표면 유닛(2304) 상에 유지될 것을 요구한다. 제1 세기 입력 기준들은 제1 기간의 끝에 또는 그에 후속하여 입력이 제1 세기 임계치를 만족할 것을 요구한다.
일부 실시예들에서, 제1 세기 임계치 성분은 입력이 제1 타이밍 기준들 및 제1 세기 입력 기준들을 만족하는 순간으로부터 미리정의된 시간 간격 이후에 감소되는 감쇠 곡선을 추종한다.
일부 실시예들에서, 입력은, 세기의 제1 증가, 세기의 제1 증가에 후속하는 세기의 제2 증가, 및 입력이 세기의 제1 증가와 세기의 제2 증가 사이에서 터치 감응형 표면 유닛(2304)과 접촉 상태로 유지되는 동안 세기의 제1 증가와 세기의 제2 증가 사이의 세기의 감소를 포함하는 연속 제스처이다. 프로세싱 유닛(2308)은, 입력의 세기의 제1 증가를 검출하는 것에 응답하여, (예컨대, 제2 동작 유닛(2316)을 사용하여) 제2 동작을 수행하도록; 그리고, 입력의 세기의 제2 증가를 검출하는 것에 응답하여, (예컨대, 제1 동작 유닛(2314)을 사용하여) 제1 동작을 수행하도록 구성된다.
전술된 정보 프로세싱 방법들에서의 동작들은, 선택적으로, (예컨대, 도 1a 및 도 3과 관련하여 전술된 바와 같은) 범용 프로세서들 또는 애플리케이션 특정 칩들과 같은 정보 프로세싱 장치 내의 하나 이상의 기능 모듈을 구동시킴으로써 구현된다.
도 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 접촉이 사용자 인터페이스 상의 객체의 선택과 같은 미리정의된 이벤트 또는 서브이벤트, 또는 하나의 배향에서 다른 배향으로의 디바이스의 회전에 대응하는지 여부(또는 디바이스의 회전 여부)를 결정한다. 각각의 미리정의된 이벤트 또는 서브이벤트가 검출되는 경우에, 이벤트 인식기(180)는 이벤트 또는 서브이벤트의 검출과 연관된 이벤트 핸들러(190)를 활성화시킨다. 이벤트 핸들러(190)는 선택적으로 데이터 업데이터(176) 또는 객체 업데이터(177)를 이용하거나 호출하여, 애플리케이션 내부 상태(192)를 업데이트한다. 일부 실시예들에서, 이벤트 핸들러(190)는 각자의 GUI 업데이터(178)에 액세스하여, 애플리케이션에 의해 디스플레이되는 것을 업데이트한다. 유사하게, 다른 프로세스들이 도 1a 및 도 1b에 도시된 컴포넌트들에 기초하여 어떻게 구현될 수 있는지는 당업자에게 자명할 것이다.
전술한 설명은, 설명의 목적을 위해, 특정 실시예들을 참조하여 기술되었다. 그러나, 상기의 예시적인 논의들은 본 발명을 개시된 정확한 형태들로 규명하거나 제한하려는 의도는 아니다. 많은 수정들 및 변형들이 상기 교시 내용들의 관점에서 가능하다. 본 발명의 원리 및 그의 실제적인 응용을 가장 잘 설명하여 다른 당업자들이 본 발명 및 기술된 다양한 실시예를 고려되는 특정 용도에 적합한 바와 같은 다양한 변형과 함께 가장 잘 사용하는 것을 가능하게 하도록 실시예들이 선택 및 설명되었다.
부록 A
iOS를 위한 이벤트 처리 가이드
Figure 112018013962419-pct00024
개발자
목차
iOS에서의 이벤트들에 관해 7
둘러보기 7
UIKit는 당신의 앱이 쉽게 제스처들을 검출할 수 있게 함 7
이벤트는 특정 경로를 따라 이동하여 그것을 처리할 객체를 찾음 8
UIEvent는 터치, 쉐이크 모션(Shake-Motion), 또는 원격 제어 이벤트를 캡슐화함 8
앱은 사용자들이 그의 뷰들을 터치할 때 멀티터치 이벤트들을 수신 8
앱은 사용자들이 그들의 디바이스들을 이동시킬 때 모션 이벤트들을 수신 9
앱은 사용자들이 멀티미디어 제어부들을 조작할 때 원격 제어 이벤트들을 수신 9
전제 조건들 9
참조 사항 10
제스처 인식기들 11
제스처 인식기들을 사용하여 이벤트 처리를 단순화 11
내장된 제스처 인식기들은 일반적인 제스처들을 인식 12
제스처 인식기들은 뷰에 부착됨 12
제스처들은 액션 메시지들을 트리거 12
제스처 인식기들을 이용하여 이벤트들에 응답 13
인터페이스 빌더(Interface Builder)를 사용하여 당신의 앱에 제스처 인식기를 추가 14
제스처 인식기를 프로그래밍 방식으로 추가 14
별개의 제스처(Discrete Gesture)들에 응답 15
연속 제스처들에 응답 17
제스처 인식기들이 어떻게 상호작용하는지를 정의 18
제스처 인식기들은 유한 상태 기계에서 동작 18
다른 제스처 인식기들과 상호작용 20
다른 사용자 인터페이스 제어부들과 상호작용 24
제스처 인식기들은 원시 터치 이벤트들을 해석 24
이벤트는 현재 멀티터치 시퀀스에 대한 모든 터치들을 포함 24
앱은 터치 처리 메소드들에서의 터치들을 수신 25
뷰들에 대한 터치들의 전달을 조절 26
제스처 인식기들은 터치를 인식하기 위한 첫 번째 기회를 얻음 26
뷰들에 대한 터치들의 전달에 영향을 줌 27
맞춤형 제스처 인식기를 생성 28
맞춤형 제스처 인식기에 대한 터치 이벤트 처리 메소드들을 구현 29
제스처 인식기의 상태를 리셋 31
이벤트 전달: 응답자 체인(Responder Chain) 32
히트 테스팅은 터치가 발생한 뷰를 반환 32
응답자 체인은 응답자 객체들로 구성됨 34
응답자 체인은 특정 전달 경로를 추종 35
멀티터치 이벤트들 38
UIResponder의 서브클래스를 생성 38
당신의 서브클래스에서 터치 이벤트 처리 메소드들을 구현 39
터치 이벤트의 페이즈 및 위치를 추적 40
터치 객체들을 인출 및 질의 40
탭 제스처들을 처리 43
스와이프 및 드래그 제스처들을 처리 43
복합 멀티터치 시퀀스를 처리 46
맞춤형 터치 이벤트 거동을 특정 50
히트 테스팅을 오버라이드(override)함으로써 터치들을 인터셉트 52
터치 이벤트들을 포워딩 52
멀티터치 이벤트들을 처리하기 위한 최상의 관례들 54
모션 이벤트들 56
UIDevice를 이용하여 현재 디바이스 배향을 얻음 56
UIEvent를 이용하여 쉐이크 모션 이벤트들을 검출 58
모션 이벤트들에 대한 제1 응답자를 지정 58
모션 처리 메소드들을 구현 58
모션 이벤트들에 대한 요구되는 하드웨어 능력들을 설정 및 확인 59
코어 모션을 이용하여 디바이스 이동을 캡처 60
모션 이벤트 업데이트 간격을 선택 61
코어 모션을 사용하여 가속도계 이벤트들을 처리 62
회전 속도 데이터를 처리 64
프로세싱된 디바이스 모션 데이터를 처리 67
원격 제어 이벤트들 70
원격 제어 이벤트들에 대한 당신의 앱을 준비 70
원격 제어 이벤트들을 처리 70
Now Playing 정보를 제공 71
디바이스 상에서 원격 제어 이벤트들을 테스트 72
문서 개정 이력 73
Objective-C 6
도면들, 표들, 및 목록들
제스처 인식기들 11
Figure 112018013962419-pct00025
이벤트 전달: 응답자 체인 32
Figure 112018013962419-pct00026
멀티터치 이벤트들 38
Figure 112018013962419-pct00027
모션 이벤트들 56
Figure 112018013962419-pct00028
원격 제어 이벤트들 70
Figure 112018013962419-pct00029
Objective-CSwift
iOS에서의 이벤트들에 관해
사용자들은 그들의 iOS 디바이스들을, 화면을 터치하거나 디바이스를 쉐이킹하는 것과 같이, 여러 가지 방식으로 조작한다. iOS는 사용자가 하드웨어를 언제 어떻게 조작하는지를 해석하고 이러한 정보를 당신의 앱으로 전달한다. 당신의 앱이 자연스럽고 직관적인 방식으로 액션들에 응답하면 할수록, 사용자에게 점점 더 설득력 있는 경험이 된다.
Figure 112018013962419-pct00030
둘러보기
이벤트들은 앱에 사용자 액션들을 알려주기 위해 앱으로 전송되는 객체들이다. iOS에서, 이벤트들은 많은 형태들을 취할 수 있다: 멀티-터치(Multi-Touch) 이벤트들, 모션 이벤트들, 및 멀티미디어를 제어하기 위한 이벤트들. 이러한 마지막 유형의 이벤트는 그것이 외부 액세서리로부터 비롯될 수 있기 때문에 원격 제어 이벤트로 알려져 있다.
UIKit는 당신의 앱이 쉽게 제스처들을 검출할 수 있게 함
iOS 앱들은 터치들의 조합들을 인식하고, 핀칭 제스처에 응답하여 콘텐츠를 줌인하는 것 및 플리킹(flicking) 제스처에 응답하여 콘텐츠를 스크롤하는 것과 같이, 사용자들에게 직관적인 방식으로 그들에 응답한다. 실제로, 일부 제스처들은 매우 일반적이어서, 그들은 UIKit에 대해 내장되어 있다. 예를 들어, UIControl 서브클래스들, 예컨대 UIButton 및 UISlider는, 특정 제스처들에 응답한다 - 버튼의 경우 탭에 응답하고 슬라이더의 경우 드래그에 응답한다. 당신이 이러한 제어부들을 구성하는 경우, 그들은 그 터치가 발생할 때 액션 메시지를 타깃 객체로 전송한다. 당신은 또한, 제스처 인식기들을 사용함으로써 뷰들에 타깃-액션 메커니즘을 채용할 수 있다. 당신이 제스처 인식기를 뷰에 부착하는 경우, 전체 뷰가 제어부처럼 작용한다 - 당신이 특정하는 어떤 제스처에도 응답함. 제스처 인식기들은 복잡한 이벤트 처리 로직에 보다 높은 레벨의 추상적 개념을 제공한다. 제스처 인식기들은 강력하고, 재사용가능하고, 적응가능하기 때문에, 제스처 인식기들은 당신의 앱에서의 터치 이벤트 처리를 구현하기 위한 바람직한 방식이다. 당신은 내장된 제스처 인식기들 중 하나를 사용하고 그의 거동을 맞춤화할(customize) 수 있다. 또는, 당신은 새로운 제스처를 인식하기 위한 당신 자신의 제스처 인식기를 생성할 수 있다.
Figure 112018013962419-pct00031
이벤트는 특정 경로를 따라 이동하여 그것을 처리할 객체를 찾음
iOS가 이벤트를 인식할 때, 그것은 이벤트를, 터치가 발생한 뷰와 같은, 그 이벤트를 처리하기 위해 가장 관련있을 듯한 초기 객체로 전달한다. 초기 객체가 이벤트를 처리할 수 없는 경우, iOS는 이벤트를 처리하기에 충분한 컨텍스트를 갖는 객체를 찾아낼 때까지 이벤트를 보다 큰 범주를 갖는 객체들로 계속해서 전달한다. 객체들의 이러한 시퀀스는 응답자 체인으로 알려져 있고, iOS가 체인을 따라 이벤트들을 전달함에 따라, 그것은 또한 이벤트에 응답하는 책임을 전송한다. 이러한 설계 패턴은 이벤트 처리를 협력적이고 동적으로 만든다.
Figure 112018013962419-pct00032
UIEvent는 터치, 쉐이크 모션, 또는 원격 제어 이벤트를 캡슐화함
많은 이벤트들은 UIKit UIEvent 클래스의 인스턴스들이다. UIEvent 객체는 이벤트에 응답하는 방식을 결정하기 위해 당신의 앱이 사용할 이벤트에 관한 정보를 포함한다. 사용자 액션이 발생함에 따라 - 예를 들어, 손가락들이 화면을 터치하고 그의 표면을 가로질러 이동함에 따라 -, iOS는 이벤트 객체들을 처리하기 위한 앱으로 계속해서 전송한다. 각각의 이벤트 객체는 유형 - 터치, "쉐이킹" 모션, 또는 원격 제어 - 및 하위유형을 갖는다.
Figure 112018013962419-pct00033
앱은 사용자들이 그의 뷰들을 터치할 때 멀티터치 이벤트들을 수신
당신의 앱에 따라, UIKit 제어부들 및 제스처 인식기들은 모든 당신의 앱의 터치 이벤트 처리에 충분할 수 있다. 당신의 앱이 맞춤형 뷰들을 갖고 있더라도, 당신은 제스처 인식기들을 사용할 수 있다. 경험에 근거한 규칙(rule of thumb)으로서, 터치에 따른 드로잉과 같이, 터치에 대한 당신의 앱의 응답이 뷰 자체와 밀착 결합될 때, 당신은 당신 자신의 맞춤형 터치 이벤트 처리를 기록한다. 이러한 경우에, 당신은 낮은 레벨의 이벤트 처리를 책임진다. 당신은 터치 메소드들을 구현하고, 이러한 메소드들 내에서, 당신은 원시 터치 이벤트들을 분석하여 적절히 응답한다.
Figure 112018013962419-pct00034
앱은 사용자들이 그들의 디바이스들을 이동시킬 때 모션 이벤트들을 수신
모션 이벤트들은 디바이스의 위치, 배향, 및 이동에 관한 정보를 제공한다. 모션 이벤트들에 반응함으로써, 당신은 미묘하면서도 강력한 특징부들을 당신의 앱에 추가할 수 있다. 가속도계 및 자이로스코프 데이터는 당신이 기울임, 회전, 및 쉐이킹을 검출할 수 있게 한다.
모션 이벤트들은 상이한 형태들로 일어나고, 당신은 그들을 상이한 프레임워크들을 사용하여 처리할 수 있다. 사용자들이 디바이스를 쉐이킹할 때, UIKit는 UIEvent 객체를 앱에 전달한다. 당신의 앱이 고속, 연속 가속도계 및 자이로스코프 데이터를 수신하기를 당신이 원하는 경우, 코어 모션 프레임워크를 사용하라.
Figure 112018013962419-pct00035
앱은 사용자들이 멀티미디어 제어부들을 조작할 때 원격 제어 이벤트들을 수신
iOS 제어부들 및 외부 액세서리들은 원격 제어 이벤트들을 앱으로 전송한다. 이러한 이벤트들은, 헤드셋을 통해 볼륨을 조정하는 것과 같이, 사용자들이 오디오 및 비디오를 제어할 수 있게 한다. 멀티미디어 원격 제어 이벤트들을 처리하여, 당신의 앱이 이러한 유형의 커맨드들에 응답하게 만들어라.
Figure 112018013962419-pct00036
전제 조건들
이 문서는 당신이 하기에 익숙하다고 가정한다:
Figure 112018013962419-pct00037
iOS 앱 개발의 기본적인 개념들
Figure 112018013962419-pct00038
당신의 앱의 사용자 인터페이스를 생성하는 상이한 태양들
Figure 112018013962419-pct00039
뷰들 및 뷰 제어기들이 작동하는 방식, 및 그들을 맞춤화하는 방식
당신이 그러한 개념들에 익숙하지 않은 경우, 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 레퍼런스 라이브러리(Reference Library)에서의 많은 샘플 코드 프로젝트들은, 제스처 인식기들을 사용하고 이벤트들을 처리하는 코드를 갖는다. 그 중에서도, 하기의 프로젝트들이 있다:
Figure 112018013962419-pct00040
Simple Gesture Recognizers는 제스처 인식을 이해하기 위한 완벽한 시작 포인트이다. 이 앱은 탭, 스와이프, 및 회전 제스처들을 인식하는 방식을 증명한다. 앱은, 터치 위치에서 이미지를 디스플레이하고 애니메이션화함으로써 각각의 제스처에 응답한다.
Figure 112018013962419-pct00041
Handling Touches Using Responder Methods and Gesture Recognizers는, 화면 주위로 사각형들을 드래그하기 위해 다중 터치들을 처리하는 방식을 증명하는 2개의 프로젝트들을 포함한다. 하나의 버전은 제스처 인식기들을 사용하고, 다른 버전은 맞춤형 터치 이벤트 처리 메소드들을 사용한다. 후자의 버전은 터치들이 발생함에 따라 현재 터치 페이즈를 화면 상에 디스플레이하기 때문에 터치 페이즈들을 이해하는 데 특히 유용하다.
Figure 112018013962419-pct00042
MoveMe는 터치 이벤트들에 응답하여 뷰를 애니메이션화하는 방식을 나타낸다. 맞춤형 터치 이벤트 처리에 대한 당신의 이해를 증진하기 위해 이러한 샘플 프로젝트를 검토하라.
제스처 인식기들
SwiftObjective-C
제스처 인식기들은 낮은 레벨의 이벤트 처리 코드를 보다 높은 레벨의 액션들로 전환한다. 이들은 당신이 뷰에 부착하는 객체들인데, 이는 제어부가 응답하는 방식으로 뷰가 액션들에 응답할 수 있게 한다. 제스처 인식기들은 터치들을 해석하여, 그들이 특정 제스처, 예컨대 스와이프, 핀치, 또는 회전에 대응하는지 여부를 결정한다. 그들이 그들의 할당된 제스처를 인식하는 경우, 그들은 액션 메시지를 타깃 객체로 전송한다. 타깃 객체는 전형적으로 뷰의 뷰 제어기인데, 뷰 제어기는 도 1-1에 도시된 바와 같이 제스처에 응답한다. 이러한 설계 패턴은 강력하고 간단하며; 당신은 뷰가 어떤 액션들에 응답하는지를 동적으로 결정할 수 있고, 당신은 뷰를 서브클래스화할 필요없이 뷰에 제스처 인식기들을 추가할 수 있다.
[도 1-1] 뷰에 부착된 제스처 인식기
Figure 112018013962419-pct00043
제스처 인식기들을 사용하여 이벤트 처리를 단순화
UIKit 프레임워크는 일반적인 제스처들을 검출하는 미리정의된 제스처 인식기들을 제공한다. 가능하다면 미리정의된 제스처 인식기를 사용하는 것이 최상인데, 이는 그들의 단순함이 당신이 기록해야 하는 코드의 양을 감소시키기 때문이다. 더욱이, 직접 기록하는 대신에 표준 제스처 인식기를 사용하면, 당신의 앱이 사용자들이 예상하는 방식으로 거동하는 것을 보장한다.
당신의 앱이 고유 제스처, 예컨대 체크마크 또는 소용돌이치는 모션(swirly motion)을 인식하기를 당신이 원하는 경우, 당신은 당신 자신의 맞춤형 제스처 인식기를 생성할 수 있다. 당신 자신의 제스처 인식기를 설계 및 구현하는 방식을 학습하기 위해, '맞춤형 제스처 인식기를 생성(페이지 28)'을 참조하라.
내장된 제스처 인식기들은 일반적인 제스처들을 인식
당신의 앱을 설계할 때, 당신이 인에이블하기를 원하는 제스처들을 고려하라. 이어서, 각각의 제스처에 대해, 표 1-1에 열거된 미리정의된 제스처 인식기들 중 하나가 충분한지 여부를 결정하라.
[표 1-1]
Figure 112018013962419-pct00044
당신의 앱은 사용자들이 예상하는 방식들로만 제스처들에 응답해야 한다. 예를 들어, 핀치는 줌인 및 줌아웃해야 하는 반면, 탭은 무언가를 선택해야 한다. 제스처들을 적절하게 사용하는 방식에 관한 지침들에 대해서는, Apps Respond to Gestures, Not Clicks를 참조하라.
제스처 인식기들은 뷰에 부착됨
모든 제스처 인식기는 하나의 뷰와 연관된다. 대조적으로, 뷰는 다수의 제스처 인식기들을 가질 수 있는데, 이는 단일 뷰가 많은 상이한 제스처들에 응답할 수 있기 때문이다. 제스처 인식기가 특정 뷰에서 발생하는 터치들을 인식하게 하려면, 당신은 그 뷰에 제스처 인식기를 부착해야 한다. 사용자가 그 뷰를 터치할 때, 제스처 인식기는 뷰 객체가 발생하기 전에 터치가 발생했다는 메시지를 수신한다. 그 결과, 제스처 인식기는 뷰를 대신하여 터치들에 응답할 수 있다.
제스처들은 액션 메시지들을 트리거
제스처 인식기가 그의 특정된 제스처를 인식할 때, 그것은 액션 메시지를 그의 타깃으로 전송한다. 제스처 인식기를 생성하기 위해, 당신은 그것을 타깃 및 액션으로 초기화한다.
별개의 제스처 및 연속 제스처
제스처들은 별개이거나 연속적이다. 탭과 같은 별개의 제스처는 한 번 발생한다. 핀칭과 같은 연속 제스처는 일정 기간에 걸쳐 발생한다. 별개의 제스처들의 경우, 제스처 인식기는 그의 타깃에 단일 액션 메시지를 전송한다. 연속 제스처들에 대한 제스처 인식기는, 도 1-2에 도시된 바와 같이, 멀티터치 시퀀스가 종료될 때까지, 액션 메시지들을 그의 타깃으로 계속 전송한다.
[도 1-2] 별개의 제스처 및 연속 제스처
Figure 112018013962419-pct00045
제스처 인식기들을 이용하여 이벤트들에 응답
내장된 제스처 인식기를 당신의 앱에 추가하기 위해 당신이 하는 세 가지가 있다:
1. 제스처 인식기 인스턴스를 생성 및 구성.
이 단계는 타깃, 액션을 할당하는 것, 및, 때때로, 제스처-특정 속성들(예컨대, number0fTapsRequired)을 할당하는 것을 포함한다.
2. 제스처 인식기를 뷰에 부착.
3. 제스처를 처리하는 액션 메소드를 구현.
인터페이스 빌더를 사용하여 당신의 앱에 제스처 인식기를 추가
Xcode에서의 인터페이스 빌더 내에서, 당신이 당신의 사용자 인터페이스에 임의의 객체를 추가하는 것과 동일한 방식으로 당신의 앱에 제스처 인식기를 추가하라 - 객체 라이브러리로부터 뷰로 제스처 인식기를 드래그하라. 당신이 이것을 행할 때, 제스처 인식기는 자동으로 그 뷰에 부착되게 된다. 당신은 당신의 제스처 인식기가 어느 뷰에 부착되는지를 확인할 수 있고, 필요한 경우, 닙 파일(nib file)에서의 접속을 변경할 수 있다.
당신이 제스처 인식기 객체를 생성한 후에, 당신은 액션 메소드를 생성 및 그와 접속할 필요가 있다. 이 메소드는 접속된 제스처 인식기가 그의 제스처를 인식할 때마다 호출된다. 당신이 이러한 액션 메소드 이외에서 제스처 인식기를 참조할 필요가 있는 경우, 당신은 또한 제스처 인식기에 대한 아울렛(outlet)을 생성하고 그와 접속해야 한다. 당신의 코드는 목록 1-1과 유사하게 보여야 한다.
[목록 1-1] 인터페이스 빌더를 이용하여 당신의 앱에 제스처 인식기를 추가
Figure 112018013962419-pct00046
제스처 인식기를 프로그래밍 방식으로 추가
당신은 구체적인 UIGestureRecognizer 서브클래스의 인스턴스, 예컨대 UIPinchGestureRecognizer를 배정 및 초기화함으로써 제스처 인식기를 프로그래밍 방식으로 생성할 수 있다. 당신이 제스처 인식기를 초기화할 때, 목록 1-2에서와 같이, 타깃 객체 및 액션 선택자를 특정하라. 종종, 타깃 객체는 뷰의 뷰 제어기이다.
당신이 제스처 인식기를 프로그래밍 방식으로 생성하는 경우, 당신은 addGestureRecognizer : 메소드를 사용하여 그것을 뷰에 부착할 필요가 있다. 목록 1-2는 단일 탭 제스처 인식기를 생성하고, 제스처가 인식되기 위해 하나의 탭이 요구됨을 특정하고, 이어서 제스처 인식기 객체를 뷰에 부착한다. 전형적으로, 당신은, 목록 1-2에 나타낸 바와 같이, 당신의 뷰 제어기의 viewDidLoad 메소드로 제스처 인식기를 생성한다.
[목록 1-2] 단일 탭 제스처 인식기를 프로그래밍 방식으로 생성
Figure 112018013962419-pct00047
별개의 제스처들에 응답
당신이 제스처 인식기를 생성할 때, 당신은 인식기를 액션 메소드에 접속한다. 이러한 액션 메소드를 사용하여 당신의 제스처 인식기의 제스처에 응답하라. 목록 1-3은 별개의 제스처에 응답하는 일례를 제공한다. 제스처 인식기가 부착되는 뷰를 사용자가 탭핑할 때, 뷰 제어기는 "Tap"이라고 되어 있는 이미지 뷰를 디스플레이한다. ShFowGestureForTapRecognizer : 메소드는 인식기의 IocationInView: 속성으로부터 뷰에서의 제스처의 위치를 결정하고, 이어서 그 위치에 이미지를 디스플레이한다.
Figure 112018013962419-pct00048
[목록 1-3] 더블 탭 제스처를 처리
Figure 112018013962419-pct00049
각각의 제스처 인식기는 그 자신의 속성들의 세트를 갖는다. 예를 들어, 목록 1-4에서, ShowGestureForSwipeRecognizer : 메소드는 스와이프 제스처 인식기의 방향 속성을 사용하여, 사용자가 좌측으로 스와이프하였는지 또는 우측으로 스와이프하였는지를 결정한다. 이어서, 그것은 그 값을 사용하여, 스와이프와 동일한 방향으로 이미지를 페이드 아웃되게 한다.
[목록 1-4] 좌측 또는 우측 스와이프 제스처에 응답
Figure 112018013962419-pct00050
연속 제스처들에 응답
연속 제스처들은 그것이 일어나고 있을 때 당신의 앱이 제스처에 응답할 수 있게 한다. 예를 들어, 당신의 앱은 사용자가 핀칭하는 동안 주밍할 수 있거나 또는 사용자가 화면 주위로 객체를 드래그할 수 있게 한다.
목록 1-5는 제스처와 동일한 회전 각도에서 "회전" 이미지를 디스플레이하고, 사용자가 회전을 중지할 때, 이미지가 수평으로 다시 회전하면서 제자리에서 페이드 아웃되도록 이미지를 애니메이션화한다. 사용자가 그의 손가락들을 회전함에 따라, ShowGestureForRotationRecognizer : 메소드는 두 손가락 모두가 들어올려질 때까지 계속해서 호출된다.
[목록 1-5] 회전 제스처에 응답
Figure 112018013962419-pct00051
drawImageForGestureRecognizer : 메소드에서, 메소드가 호출될 때마다, 이미지는 불투명하게 설정된다. 제스처가 완료될 때, animateWithDuration : 메소드에서 이미지는 투명하게 설정된다. showGestureForRotationRecognizer : 메소드는, 제스처 인식기의 상태를 확인함으로써 제스처가 완료되는지 여부를 결정한다. 이러한 상태들은 '제스처 인식기들은 유한 상태 기계에서 동작(페이지 18)'에서 더욱 상세하게 설명된다.
제스처 인식기들이 어떻게 상호작용하는지를 정의
종종, 당신이 제스처 인식기들을 당신의 앱에 추가할 때, 당신은 인식기들이 서로 또는 당신의 앱에서의 임의의 다른 터치 이벤트 처리 코드와 어떻게 상호작용하기를 당신이 원하는지에 대해 구체적일 필요가 있다. 이를 위해, 당신은 먼저 제스처 인식기들이 작동하는 방식에 대해 조금 더 이해할 필요가 있다.
제스처 인식기들은 유한 상태 기계에서 동작
제스처 인식기들은 미리정의된 방식으로 하나의 상태로부터 다른 상태로 전이한다. 각각의 상태로부터, 그들은 그들이 소정의 조건들을 충족하는지 여부에 기초하여 여러 가능한 다음의 상태들 중 하나로 이동할 수 있다. 정확한 상태 기계는 도 1-3에 예시된 바와 같이, 제스처 인식기가 별개인지 또는 연속적인지에 따라 다르다. 모든 제스처 인식기들은 가능 상태(Possible state)(UlGestureRecognizerStatePossible)에서 시작한다. 그들은 그들이 수신하는 임의의 멀티터치 시퀀스들을 분석하고, 분석 동안, 그들은 제스처를 인식하거나 또는 그를 인식하는 데 실패한다. 제스처를 인식하는 데 실패한다는 것은, 제스처 인식기가 실패 상태(Failed state)(UlGestureRecognizerStateFailed)로 전이한다는 것을 의미한다.
[도 1-3] 제스처 인식기들에 대한 상태 기계들
Figure 112018013962419-pct00052
별개의 제스처 인식기가 그의 제스처를 인식할 때, 제스처 인식기는 가능 상태로부터 인식 상태(Recognized)(UlGestureRecognizerStateRecognized)로 전이하고, 인식은 완료된다.
연속 제스처들의 경우, 제스처가 처음으로 인식될 때 제스처 인식기는 가능 상태로부터 시작 상태(Began)(UlGestureRecognizerStateBegan)로 전이한다. 이어서, 그것은 시작 상태로부터 변경 상태(Changed)(UlGestureRecognizerStateChanged)로 전이하고, 제스처가 발생함에 따라 변경 상태로부터 변경 상태로 계속해서 이동한다. 사용자의 마지막 손가락이 뷰로부터 들어올려질 때, 제스처 인식기는 종료 상태(Ended state)(UlGestureRecognizerStateEnded)로 전이하고, 인식은 완료된다. 종료 상태는 인식 상태에 대한 별칭이라는 것에 유의한다.
제스처가 더 이상 예상되는 패턴과 맞지 않다고 결정되는 경우, 연속 제스처에 대한 인식기는 또한 변경 상태로부터 취소 상태(Canceled)(UlGestureRecognizerStateCancelled)로 전이할 수 있다.
제스처 인식기가 상태를 변경할 때마다, 제스처 인식기가 실패 상태 또는 취소 상태로 전이하지 않는 한, 제스처 인식기는 액션 메시지를 그의 타깃으로 전송한다. 따라서, 별개의 제스처 인식기는 그것이 가능 상태로부터 인식 상태로 전이할 때 단일 액션 메시지만을 전송한다. 연속 제스처 인식기는, 제스처 인식기가 상태들을 변경함에 따라 많은 액션 메시지들을 전송한다.
제스처 인식기가 인식(또는 종료) 상태에 도달할 때, 제스처 인식기는 그의 상태를 가능으로 다시 리셋한다. 가능 상태로 다시 전이하는 것은, 액션 메시지를 트리거하지 않는다.
다른 제스처 인식기들과 상호작용
뷰는 그에 부착된 하나 초과의 제스처 인식기를 가질 수 있다. 뷰의 gestureRecognizers 속성을 사용하여 어떤 제스처 인식기들이 뷰에 부착되는지를 결정하라. 당신은 또한, ddGestureRecognizer : 메소드 및 removeGestureRecognizer : 메소드 각각을 이용하여 제스처 인식기를 추가하거나 또는 그를 뷰로부터 제거함으로써 뷰가 제스처들을 처리하는 방식을 동적으로 변경할 수 있다.
뷰가 그에 부착된 다수의 제스처 인식기들을 가질 때, 당신은 경쟁 제스처 인식기들이 터치 이벤트들을 수신 및 분석하는 방식을 변경하기를 원할 수 있다. 디폴트로, 제스처 인식기들이 터치를 먼저 수신하는 설정 순서가 없고, 이러한 이유로, 터치들은 매번 상이한 순서로 제스처 인식기들로 전달될 수 있다. 당신은 하기를 위해 이러한 디폴트 거동을 오버라이드할 수 있다:
Figure 112018013962419-pct00053
하나의 제스처 인식기가 다른 제스처 인식기보다 먼저 터치를 분석해야 함을 특정.
Figure 112018013962419-pct00054
2개의 제스처 인식기들이 동시에 동작할 수 있게 함.
Figure 112018013962419-pct00055
제스처 인식기가 터치를 분석하는 것을 방지.
이러한 거동들에 영향을 주기 위해 서브 클래스들에 의해 오버라이드되는 메소드들, 델리게이트(delegate) 메소드들, 및 UIGestureRecognizer 클래스 메소드들을 사용하라.
2개의 제스처 인식기들에 대한 특정 순서를 선언
당신이 스와이프 및 팬 제스처를 인식하기를 원하고, 당신이 이러한 2개의 제스처들이 별개의 액션들을 트리거하기를 원한다고 상정하라. 디폴트로, 사용자가 스와이프하려고 시도할 때, 제스처는 팬으로서 해석된다. 이것은, 스와이프 제스처가 스와이프(별개의 제스처)로서 해석되기 위해 필요한 조건들을 충족하기 전에 스와이프 제스처가 팬(연속 제스처)으로서 해석되기 위해 필요한 조건들을 충족하기 때문이다.
당신의 뷰가 스와이프들 및 팬들 양쪽 모두를 인식하기 위해, 당신은 팬 제스처 인식기가 터치 이벤트를 분석하기 전에 스와이프 제스처 인식기가 터치 이벤트를 분석하기를 원한다. 스와이프 제스처 인식기가, 터치가 스와이프라고 결정하는 경우, 팬 제스처 인식기는 결코 터치를 분석할 필요가 없다. 스와이프 제스처 인식기가, 터치가 스와이프가 아니라고 결정하는 경우, 스와이프 제스처 인식기는 실패 상태로 이동하고, 팬 제스처 인식기가 터치 이벤트를 분석하기 시작해야 한다.
당신은, 목록 1-6에서와 같이, 당신이 지연시키기를 원하는 제스처 인식기에 대해 require Gesture Recognizer To Fail: 메소드를 호출함으로써 2개의 제스처 인식기들 사이의 이러한 유형의 관계를 표시한다. 이러한 목록에서, 제스처 인식기들 둘 모두는 동일한 뷰에 부착된다.
[목록 1-6] 팬 제스처 인식기는 스와이프 제스처 인식기가 실패할 것을 요구
Figure 112018013962419-pct00056
requireGestureRecognizerToFail: 메소드는 메시지를 수신기로 전송하고, 수신용 인식기가 시작할 수 있기 전에 작동하지 않아야만 하는 일부 OtherGestureRecognizer를 특정한다. 다른 제스처 인식기가 실패 상태로 전이하는 것을 기다리는 동안, 수신용 인식기는 가능 상태에 남아 있다. 다른 제스처 인식기가 실패하는 경우, 수신용 인식기는 터치 이벤트를 분석하고 그의 다음 상태로 이동한다. 다른 한편으로, 다른 제스처 인식기가 인식 상태 또는 시작 상태로 전이하는 경우, 수신용 인식기는 실패 상태로 이동한다. 상태 전이들에 관한 정보에 대해, '제스처 인식기들은 유한 상태 기계에서 동작(페이지 18)'을 참조하라.
Figure 112018013962419-pct00057
제스처 인식기들이 터치들을 분석하는 것을 방지
당신은 델리게이트 객체를 당신의 제스처 인식기에 추가함으로써 제스처 인식기의 거동을 변경할 수 있다. UlGestureRecognizerDelegate 프로토콜은, 당신이 제스처 인식기가 터치들을 분석하는 것을 방지할 수 있는 몇 개의 방식들을 제공한다. 당신은 gestureRecognizer : shouldReceiveTouch : 메소드 또는 gestureRecognizerShouldBegin: 메소드를 사용한다 - 둘 모두는 UlGestureRecognizerDelegate 프로토콜의 선택적인 메소드들이다.
터치가 시작될 때, 당신의 제스처 인식기가 그 터치를 고려해야 하는지 여부를 당신이 즉시 결정할 수 있는 경우, gestureRecognizer: shouldReceiveTouch : 메소드를 사용하라. 이 메소드는 새로운 터치가 있을 때마다 호출된다. '아니오(NO)'를 반환하는 것은, 제스처 인식기가 터치가 발생하였음을 통지받는 것을 방지한다. 디폴트 값은 '예(YES)'이다. 이 메소드는 제스처 인식기의 상태를 변경하지 않는다.
목록 1-7은 gestureRecognizer: shouldReceiveTouch : 델리게이트 메소드를 사용하여, 탭 제스처 인식기가 맞춤형 서브뷰 내에 있는 터치들을 수신하는 것을 방지한다. 터치가 발생할 때, gestureRecognizer : ShouldReceiveTouch : 메소드가 호출된다. 그것은 사용자가 맞춤형 뷰를 터치하였는지 여부를 결정하고, 만약 그렇다면, 탭 제스처 인식기가 터치 이벤트를 수신하는 것을 방지한다.
[목록 1-7] 제스처 인식기가 터치를 수신하는 것을 방지
Figure 112018013962419-pct00058
당신이 제스처 인식기가 터치를 분석해야 하는지 여부를 결정하기 전에 가능한 한 오랫동안 기다릴 필요가 있는 경우, gestureRecognizerShouldBegin : 델리게이트 메소드를 사용하라. 일반적으로, 당신이 제스처 인식기와 경쟁하는 맞춤형 터치 이벤트 처리를 갖는 UIView 또는 UIControl 서브클래스를 갖는 경우, 당신은 이 메소드를 사용한다. '아니오'를 반환하는 것은, 제스처 인식기로 하여금 즉시 실패하게 하는데, 이는 다른 터치 처리가 진행될 수 있게 한다. 제스처 인식기가 뷰 또는 제어부가 터치를 수신하는 것을 방지할 경우, 이 메소드는 제스처 인식기가 가능 상태를 벗어나서 전이하려고 시도할 때 호출된다.
당신의 뷰 또는 뷰 제어기가 제스처 인식기의 델리게이트일 수 없는 경우, 당신은 gestureRecognizerShouldBegin: UIView 메소드를 사용할 수 있다. 메소드 시그니처(signature) 및 구현예는 동일하다.
동시 제스처 인식을 허용
디폴트로, 2개의 제스처 인식기들은 그들 각각의 제스처들을 동시에 인식할 수 없다. 그러나, 예를 들어 사용자가 동시에 뷰를 핀치하고 회전시킬 수 있기를 당신이 원한다고 가정하라. 당신은 gestureRecognizer: shouldRecognizeSimuItaneouslyWithGestureRecognizer : 메소드, UlGestureRecognizerDelegate 프로토콜의 선택적 메소드를 구현함으로써 디폴트 거동을 변경할 필요가 있다. 이 메소드는, 제스처의 하나의 제스처 인식기의 분석이, 다른 제스처 인식기가 그의 제스처를 인식하는 것을 차단하거나, 또는 그 반대도 가능할 때 호출된다. 이 메소드는 디폴트로 '아니오'를 반환한다. 2개의 제스처 인식기들이 그들의 제스처들을 동시에 분석하기를 당신이 원할 때 '예'를 반환한다.
Figure 112018013962419-pct00059
2개의 제스처 인식기들 사이의 일방향 관계를 특정
당신이 2개의 인식기들이 서로 상호작용하는 방식을 제어하기를 원하지만 당신이 일방향 관계를 특정할 필요가 있는 경우, 당신은, canPreventGestureRecognizer : 또는 canBePreventedByGestureRecognizer : 서브클래스 메소드들을 오버라이드하여 '아니오'를 반환할 수 있다(디폴트는 '예'임). 예를 들어, 당신이 회전 제스처가 핀치 제스처를 방지하기를 원하지만 당신이 핀치 제스처가 회전 제스처를 방지하기를 원치않는 경우, 당신은 하기를 특정할 것이고:
Figure 112018013962419-pct00060
회전 제스처 인식기의 서브클래스 메소드를 오버라이드하여 '아니오'를 반환할 것이다. UIGestureRecognizer를 서브클래스화하는 방식에 관한 더 많은 정보에 대해, '맞춤형 제스처 인식기를 생성(페이지 28)'을 참조하라.
어떠한 제스처도 다른 것을 방지하지 않아야 하는 경우, '동시 제스처 인식을 허용(페이지 23)'에 기술된 바와 같이, gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 메소드를 사용하라. 디폴트로, 핀치 제스처는 회전을 방지하고, 그 반대로도 가능한데, 이는 2개의 제스처들이 동시에 인식될 수 없기 때문이다.
다른 사용자 인터페이스 제어부들과 상호작용
iOS 6.0 이상에서, 디폴트 제어 액션들은 제스처 인식기 거동과 오버랩되는 것을 방지한다. 예를 들어, 버튼에 대한 디폴트 액션은 단일 탭이다. 당신이 버튼의 부모 뷰(parent view)에 부착된 단일 탭 제스처 인식기를 갖고, 사용자가 버튼을 탭핑하는 경우, 버튼의 액션 메소드는 제스처 인식기 대신에 터치 이벤트를 수신한다. 이는 제어부에 대한 디폴트 액션과 오버랩되는 제스처 인식에만 적용되는데, 제어부는 하기를 포함한다:
Figure 112018013962419-pct00061
UIButton, UISwitch, UIStepper, UISegmentedControI, 및 UIPageControl 상의 단일 손가락 단일 탭.
Figure 112018013962419-pct00062
슬라이더와 평행한 방향으로의, UISlider의 노브(knob) 상의 단일 손가락 스와이프.
Figure 112018013962419-pct00063
스위치와 평행한 방향으로의, UISwitch의 노브 상의 단일 손가락 팬 제스처.
당신이 이러한 제어부들 중 하나의 제어부의 맞춤형 서브클래스를 갖고 당신이 디폴트 액션을 변경하기를 원하는 경우, 부모 뷰 대신에 제어부에 직접 제스처 인식기를 부착하라. 이어서, 제스처 인식기는 터치 이벤트를 먼저 수신한다. 항상 그렇듯이, 특히 표준 제어부의 디폴트 거동을 오버라이드할 때, 당신의 앱이 직관적인 사용자 경험을 제공하는 것을 보장하기 위해 iOS Human Interface Guidelines를 꼭 읽어라.
제스처 인식기들은 원시 터치 이벤트들을 해석
지금까지, 당신은 제스처들에 관해 그리고 당신의 앱이 어떻게 그들을 인식하고 그들에 응답할 수 있는지를 학습하였다. 그러나, 맞춤형 제스처 인식기를 생성하기 위해 또는 제스처 인식기들이 뷰의 터치 이벤트 처리와 상호작용하는 방식을 제어하기 위해, 당신은 터치들 및 이벤트들의 관점에서 보다 구체적으로 생각할 필요가 있다.
이벤트는 현재 멀티터치 시퀀스에 대한 모든 터치들을 포함
iOS에서, 터치는 화면 상의 손가락의 존재 또는 이동이다. 제스처는 UITouch 객체들에 의해 표현되는 하나 이상의 터치들을 갖는다. 예를 들어, 핀치-축소(pinch-close) 제스처는 2개의 터치들을 갖는다 - 화면 상의 2개의 손가락들이 반대 방향들로부터 서로를 향해 이동함.
이벤트는 멀티터치 시퀀스 동안 발생하는 모든 터치들을 포괄한다. 멀티터치 시퀀스는 손가락이 화면을 터치할 때 시작하고, 마지막 손가락이 들어올려질 때 종료한다. 손가락이 이동함에 따라, iOS는 터치 객체들을 이벤트로 전송한다. 멀티터치 이벤트는 유형 UlEventTypeTouches의 UIEvent 객체에 의해 표현된다.
각각의 터치 객체는 하나의 손가락만을 추적하고 멀티터치 시퀀스만큼만 지속된다. 시퀀스 동안, UIKit는 손가락을 추적하고, 터치 객체의 속성들을 업데이트한다. 이러한 속성들은 터치의 페이즈, 뷰에서의 그의 위치, 그의 이전 위치, 및 그의 타임스탬프를 포함한다.
터치 페이즈는, 터치가 언제 시작되는지, 그것이 이동 중인지 또는 정지 상태인지 여부, 및 그것이 언제 종료되는지 - 즉, 손가락이 언제 화면을 더 이상 터치하지 않는지 - 를 나타낸다. 도 1-4에 나타낸 바와 같이, 앱은 임의의 터치의 각각의 페이즈 동안 이벤트 객체들을 수신한다.
[도 1-4] 멀티터치 시퀀스 및 터치 페이즈들
Figure 112018013962419-pct00064
Figure 112018013962419-pct00065
앱은 터치 처리 메소드들에서의 터치들을 수신
멀티터치 시퀀스 동안, 앱은 주어진 터치 페이즈 동안 새로운 또는 변경된 터치들이 있을 때 이러한 메시지들을 전송하고; 앱은 하기를 호출한다:
Figure 112018013962419-pct00066
하나 이상의 손가락들이 화면 상을 터치 다운할 때 touchesBegan:withEvent: 메소드.
Figure 112018013962419-pct00067
하나 이상의 손가락들이 이동할 때 touchesMoved:withEvent: 메소드.
Figure 112018013962419-pct00068
하나 이상의 손가락들이 화면으로부터 들어올려질 때 touchesEnded:withEvent: 메소드.
Figure 112018013962419-pct00069
터치 시퀀스가 착신 전화 통화와 같은 시스템 이벤트에 의해 취소될 때 touchesCancelled:withEvent: 메소드.
이러한 메소드들 각각은 터치 페이즈와 연관되는데; 예를 들어, touchesBegan:withEvent: 메소드는 UITouchPhaseBegan과 연관된다. 터치 객체의 페이즈는 그의 페이즈 속성 내에 저장된다.
Figure 112018013962419-pct00070
뷰들에 대한 터치들의 전달을 조절
뷰가 제스처 인식기보다 먼저 터치를 수신하기를 당신이 원하는 경우가 있을 수 있다. 그러나, 당신이 뷰들에 대한 터치들의 전달 경로를 변경할 수 있기 전에, 당신은 디폴트 거동을 이해할 필요가 있다. 간단한 경우에, 터치가 발생할 때, 터치 객체는 UIApplication 객체로부터 UIWindow 객체로 전달된다. 이어서, 윈도우는 먼저, 그것이 터치를 뷰 객체 자체로 전달하기 전에, 터치들이 발생한 뷰를 부착한 임의의 제스처 인식기들로 (또는 그러한 뷰의 수퍼뷰(superview)들로) 터치들을 전송한다.
[도 1-5] 터치 이벤트들에 대한 디폴트 전달 경로
Figure 112018013962419-pct00071
제스처 인식기들은 터치를 인식하기 위한 첫 번째 기회를 얻음
윈도우는 뷰에 대한 터치 객체들의 전달을 지연시켜서, 제스처 인식기가 터치를 먼저 분석할 수 있도록 한다. 지연 동안, 제스처 인식기가 터치 제스처를 인식하는 경우, 윈도우는 결코 터치 객체를 뷰로 전달하지 않고, 또한 그러한 인식된 시퀀스의 일부였던, 그것이 이전에 뷰로 전송한 임의의 터치 객체들을 취소한다.
예를 들어, 당신이 두 손가락 터치를 요구하는 별개의 제스처에 대한 제스처 인식기를 갖는 경우, 이것은 2개의 별개의 터치 객체들로 변환된다. 터치들이 발생함에 따라, 터치 객체들은 앱 객체로부터 터치들이 발생한 뷰에 대한 윈도우 객체로 전달되고, 도 1-6에 도시된 바와 같이, 하기 시퀀스가 발생한다.
[도 1-6] 터치들에 대한 메시지들의 시퀀스
Figure 112018013962419-pct00072
1. 윈도우는 시작 페이즈(Began phase)에서의 2개의 터치 객체들을 - touchesBegan:withEvent: 메소드를 통해 - 제스처 인식기로 전송한다. 제스처 인식기는 제스처를 아직 인식하지 않으므로, 그의 상태가 가능이다. 윈도우는 이러한 동일한 터치들을, 제스처 인식기가 부착되는 뷰로 전송한다.
2. 윈도우는 이동 페이즈(Moved phase)에서의 2개의 터치 객체들을 - touchesMoved:withEvent: 메소드를 통해 - 제스처 인식기로 전송한다. 인식기는 여전히 제스처를 검출하지 않고, 여전히 가능 상태에 있다. 윈도우는 이어서 이러한 터치들을 부착된 뷰로 전송한다.
3. 윈도우는 종료 페이즈(Ended phase)에서의 하나의 터치 객체를 - touchesEnded:withEvent: 메소드를 통해 - 제스처 인식기로 전송한다. 이 터치 객체는 제스처에 대한 충분한 정보를 제공하지 않지만, 윈도우는 부착된 뷰로부터 객체를 보류한다.
4. 윈도우는 종료 페이즈에서의 다른 터치 객체를 전송한다. 제스처 인식기는 이제 그의 제스처를 인식하므로, 그것은 그의 상태를 인식으로 설정한다. 제1 액션 메시지가 전송되기 직전에, 뷰는 touchesCancelled:withEvent: 메소드를 호출하여, 시작 페이즈 및 이동 페이즈에서 이전에 전송된 터치 객체들을 무효화한다. 종료 페이즈에서의 터치들은 취소된다.
이제, 마지막 단계에서의 제스처 인식기가, 그가 분석 중인 이 멀티터치 시퀀스가 그의 제스처가 아님을 결정한다고 가정한다. 그것은 그의 상태를 UIGestureRecognizerStateFailed로 설정한다. 이어서, 윈도우는 종료 페이즈에서의 2개의 터치 객체들을 부착된 뷰로 touchesEnded:withEvent: 메시지 내에서 전송한다.
연속 제스처에 대한 제스처 인식기는, 터치 객체들이 종료 페이즈에 도달하기 전에 그의 제스처를 인식할 가능성이 더 큰 것 이외에는, 유사한 시퀀스를 추종한다. 그의 제스처를 인식할 시에, 그것은 그의 상태를 UlGestureRecognizerStateBegan(인식되지 않음)으로 설정한다. 윈도우는 멀티터치 시퀀스에서의 모든 후속 터치 객체들을 제스처 인식기로 전송하지만 부착된 뷰로는 전송하지 않는다.
뷰들에 대한 터치들의 전달에 영향을 줌
당신은 여러 UIGestureRecognizer 속성들의 값들을 변경하여, 디폴트 전달 경로를 소정 방식으로 변경할 수 있다. 당신이 이러한 속성들의 디폴트 값들을 변경하는 경우, 당신은 거동의 하기 차이들을 얻는다:
Figure 112018013962419-pct00073
delaysTouchesBegan(디폴트가 '아니오') - 일반적으로, 윈도우는 시작 페이즈 및 이동 페이즈에서의 터치 객체들을 뷰 및 제스처 인식기로 전송한다. delaysTouchesBegan을 '예'로 설정하는 것은, 윈도우가 시작 페이즈에서의 터치 객체들을 뷰로 전달하는 것을 방지한다. 이것은, 제스처 인식기가 그의 제스처를 인식할 때, 터치 이벤트의 어떠한 부분도 부착된 뷰로 전달되지 않았음을 보장한다. 이러한 속성을 설정할 때 주의해야 하는데, 이는 당신의 인터페이스가 응답하지 않게 할 수 있기 때문이다.
이러한 설정은 UlScrollView에 대한 delaysContentTouches 속성에 유사한 거동을 제공하는데; 이 경우에, 터치가 시작된 후 곧 스크롤이 시작될 때, 스크롤-뷰 객체의 서브뷰들은 결코 터치를 수신하지 않으므로, 시각적 피드백의 플래시가 없다.
Figure 112018013962419-pct00074
delaysTouchesEnded(디폴트가 '예') - 이 속성이 '예'로 설정될 때, 제스처가 나중에 취소하기를 원할 수 있는 액션을 뷰가 완료하지 않는 것을 보장한다. 제스처 인식기가 터치 이벤트를 분석하고 있을 때, 윈도우는 종료 페이즈에서의 터치 객체들을 부착된 뷰로 전달하지 않는다. 제스처 인식기가 그의 제스처를 인식하는 경우, 터치 객체들은 취소된다. 제스처 인식기가 그의 제스처를 인식하지 못하는 경우, 윈도우는 이러한 객체들을 touchesEnded:withEvent: 메시지를 통해 뷰로 전달한다. 이러한 속성을 '아니오'로 설정하는 것은, 뷰가 종료 페이즈에서의 터치 객체들을 제스처 인식기와 동시에 분석할 수 있게 한다.
예를 들어, 뷰가 2개의 탭들을 요구하는 탭 제스처 인식기를 갖고 사용자가 뷰를 더블 탭핑하는 것을 고려한다. 속성을 '예'로 설정하면, 뷰는 touchesBegan:withEvent:, touchesBegan:withEvent:, touchesCancelled:withEvent:, 및 touchesCancelled:withEvent:를 얻는다. 이 속성이 '아니오'로 설정되는 경우, 뷰는 메시지들의 하기 시퀀스를 얻는다: touchesBegan:withEvent:, touchesEnded:withEvent:, touchesBegan:withEvent:, 및 touchesCancelled:withEvent: - 이는 touchesBegan:withEvent :에서, 뷰가 더블 탭을 인식할 수 있음을 의미한다.
제스처 인식기가, 그가 결정하는 터치가 그의 제스처의 일부가 아님을 검출하는 경우, 그것은 터치를 직접 그의 뷰로 전달할 수 있다. 이를 위해, 제스처 인식기는 ignoreTouch:forEvent:를 자체적으로 호출하여, 터치 객체에 전달한다.
맞춤형 제스처 인식기를 생성
맞춤형 제스처 인식기를 구현하기 위해, 먼저 UIGestureRecognizer의 서브클래스를 Xcode로 생성한다. 이어서, 당신의 서브클래스의 헤더 파일에 하기의 임포트 지시어(import directive)를 추가한다:
Figure 112018013962419-pct00075
다음으로, 하기 메소드 선언을 UlGestureRecognizerSubclass.h로부터 당신의 헤더 파일로 복사하는데; 이들은 당신이 당신의 서브클래스에서 오버라이드하는 메소드들이다:
Figure 112018013962419-pct00076
이러한 메소드들은, '앱은 터치 처리 메소드들에서의 터치들을 수신(페이지 25)'에서 앞서 기술된 대응하는 터치 이벤트 처리 메소드들과 동일한 정확한 시그니처 및 거동을 갖는다. 당신이 오버라이드하는 모든 메소드들에서, 메소드가 널(null) 구현예를 갖고 있더라도, 당신은 수퍼클래스 구현예를 호출해야 한다.
UIGestureRecognizer.h에서 이루어진 것과 같이, UIGestureRecognizerSubclass.h에서의 상태 속성은 이제 판독 전용 대신에 판독-기록할 수 있음에 주목한다. 당신의 서브클래스는 UlGestureRecognizerState 상수들을 그 속성에 할당함으로써 그의 상태를 변경한다.
맞춤형 제스처 인식기에 대한 터치 이벤트 처리 메소드들을 구현
맞춤형 제스처 인식기에 대한 구현예의 핵심은 하기 4개의 메소드들이다: touchesBegan:withEvent:, touchesMoved:withEvent:, touchesEnded:withEvent:, 및 touchesCancelled:withEvent:. 이러한 메소드들 내에서, 당신은 제스처 인식기의 상태를 설정함으로써 낮은 레벨의 터치 이벤트들을 제스처 인식으로 변환한다. 목록 1-8은 별개의 단일 터치 체크마크 제스처에 대한 제스처 인식기를 생성한다. 그것은 제스처의 중간점 - 업스트로크(upstroke)가 시작되는 포인트 - 을 기록하여, 클라이언트들이 이 값을 획득할 수 있도록 한다.
이 예는 단일 뷰만을 갖지만, 대부분의 앱들은 많은 뷰들을 갖는다. 일반적으로, 당신은 다수의 뷰들에 걸쳐 있는 제스처들을 당신이 정확하게 인식할 수 있도록 터치 위치들을 화면의 좌표계로 전환해야 한다.
[목록 1-8] 체크마크 제스처 인식기의 구현예
Figure 112018013962419-pct00077
'제스처 인식기들은 유한 상태 기계에서 동작(페이지 18)'에 기술된 바와 같이, 별개의 제스처 및 연속 제스처에 대한 상태 전이들은 상이하다. 당신이 맞춤형 제스처 인식기를 생성할 때, 당신은 그것에 관련 상태들을 할당함으로써 그것이 별개인지 또는 연속적인지 여부를 나타낸다. 일례로서, 목록 1-8에서의 체크마크 제스처 인식기는 결코 상태를 시작 또는 변경으로 설정하지 않는데, 이는 그것이 별개이기 때문이다.
제스처 인식기를 서브클래스화할 때 당신이 해야 하는 가장 중요한 일은, 제스처 인식기의 상태를 정확하게 설정하는 것이다. iOS는 제스처 인식기들이 예상대로 상호작용하기 위해 제스처 인식기의 상태를 알 필요가 있다. 예를 들어, 당신이 동시 인식을 허용하기를 원하거나 또는 제스처 인식기가 실패하기를 요구하는 경우, iOS는 당신의 인식기의 현재 상태를 이해할 필요가 있다.
맞춤형 제스처 인식기들의 생성에 관한 더 많은 것에 대해서는, WWDC2012 : Building Advanced Gesture Recognizers를 참조하라.
제스처 인식기의 상태를 리셋
당신의 제스처 인식기가 인식/종료, 취소, 또는 실패 상태로 전이하는 경우, UIGestureRecognizer 클래스는 제스처 인식기가 가능 상태로 다시 전이하기 직전에 리셋 메소드를 호출한다.
목록 1-9에서와 같이, 당신의 인식기가 제스처를 인식할 시에 새로운 시도를 할 준비를 하도록 임의의 내부 상태를 리셋하기 위해 리셋 메소드를 구현한다. 제스처 인식기가 이 메소드로부터 반환된 후에, 그것은 진행 중인 터치들에 대한 어떠한 추가 업데이트도 수신하지 않는다.
[목록 1-9] 제스처 인식기를 리셋
Figure 112018013962419-pct00078
이벤트 전달: 응답자 체인
SwiftObjective-C
당신이 당신의 앱을 설계할 때, 당신은 이벤트들에 동적으로 응답하기를 원할 가능성이 크다. 예를 들어, 화면 상의 많은 상이한 객체들에서 터치가 발생할 수 있고, 당신은 주어진 이벤트에 응답하기를 원하는 객체를 결정하고 그 객체가 이벤트를 수신하는 방식을 이해해야 한다.
사용자 생성 이벤트가 발생할 때, UIKit는 이벤트를 프로세싱하는 데 필요한 정보를 포함하는 이벤트 객체를 생성한다. 이어서, 그것은 활성 앱의 이벤트 큐에 이벤트 객체를 배치한다. 터치 이벤트들의 경우, 그 객체는 UIEvent 객체에서 패키징된 터치들의 세트이다. 모션 이벤트들의 경우, 이벤트 객체는 당신이 사용하는 프레임워크 및 당신이 관심있어 하는 모션 이벤트의 유형에 따라 다르다.
이벤트는 이벤트를 처리할 수 있는 객체로 전달될 때까지 특정 경로를 따라 이동한다. 먼저, 싱글톤(singleton) UIApplication 객체는 큐의 상부로부터 이벤트를 취하고, 처리를 위해 그것을 디스패칭한다. 전형적으로, 그것은 이벤트를 앱의 키(key) 윈도우 객체로 전송하는데, 이는 이벤트를 처리를 위해 초기 객체로 전달한다. 초기 객체는 이벤트의 유형에 좌우된다.
Figure 112018013962419-pct00079
터치 이벤트들. 터치 이벤트들의 경우, 윈도우 객체는 먼저 이벤트를, 터치가 발생한 뷰로 전달하려고 한다. 그 뷰는 히트 테스트 뷰로 알려져 있다. 히트 테스트 뷰를 찾아내는 프로세스는 히트 테스팅이라고 불리는데, 이는 '히트 테스팅은 터치가 발생한 뷰를 반환(페이지 32)'에 기술되어 있다.
Figure 112018013962419-pct00080
모션 및 원격 제어 이벤트들. 이러한 이벤트들에 의하면, 윈도우 객체는 쉐이킹 모션 또는 원격 제어 이벤트를 처리를 위해 제1 응답자로 전송한다. 제1 응답자는 '응답자 체인은 응답자 객체들로 구성됨(페이지 34)'에 기술되어 있다.
이러한 이벤트 경로들의 궁극적인 목표는 이벤트를 처리하고 그에 응답할 수 있는 객체를 찾아내는 것이다. 따라서, UIKit는 먼저 이벤트를, 이벤트를 처리하는 데 가장 적합한 객체로 전송한다. 터치 이벤트들의 경우, 그 객체는 히트 테스트 뷰이고, 다른 이벤트들의 경우, 그 객체는 제1 응답자이다. 하기 섹션들은 히트 테스트 뷰 및 제1 응답자 객체가 어떻게 결정되는지를 더욱 상세하게 설명한다.
히트 테스팅은 터치가 발생한 뷰를 반환
iOS는 터치 상태에 있는 뷰를 찾아내기 위해 히트 테스팅을 사용한다. 히트 테스팅은, 터치가 임의의 관련 뷰 객체들의 경계들 내에 있는지 여부를 확인하는 것을 수반한다. 만약 그렇다면, 그것은 그 뷰의 모든 서브뷰들을 재귀적으로 확인한다. 터치 포인트를 포함하는 뷰 계층구조에서의 최하위 뷰는 히트 테스트 가 된다. iOS가 히트 테스트 뷰를 결정한 후에, 그것은 터치 이벤트를 처리를 위해 그 뷰로 전달한다.
설명을 위해, 사용자가 도 2-1에서 뷰 E를 터치한다고 가정한다. iOS는 서브뷰들을 이 순서대로 확인함으로써 히트 테스트 뷰를 찾아낸다:
1. 터치가 뷰 A의 경계들 내에 있으므로, 그것은 서브뷰 B 및 서브뷰 C를 확인한다.
2. 터치가 뷰 B의 경계들 내에 있지 않지만, 그것이 뷰 C의 경계들 내에 있으므로, 그것은 서브뷰 D 및 서브뷰 E를 확인한다.
3. 터치가 뷰 D의 경계들 내에 있지 않지만, 그것은 뷰 E의 경계들 내에 있다.
뷰 E는 터치를 포함하는 뷰 계층구조에서의 가장 낮은 뷰이므로, 그것은 히트 테스트 뷰가 된다.
[도 2-1] 히트 테스팅은 터치된 서브뷰를 반환
Figure 112018013962419-pct00081
hitTest:withEvent: 메소드는 주어진 CGPoint 및 UIEvent에 대한 히트 테스트 뷰를 반환한다. hitTest:withEvent: 메소드는 pointlnsideiwithEvent: 메소드를 자체적으로 호출함으로써 시작한다. hitTest:withEvent:로 전달되는 포인트가 뷰의 경계들 내부에 있는 경우, pointlnsideiwithEvent:는 '예'를 반환한다. 이어서, 메소드는 '예'를 반환하는 모든 서브뷰 상에서 hitTest:withEvent:를 재귀적으로 호출한다.
hitTest:withEvent:로 전달되는 포인트가 뷰의 경계들 내부에 있지 않은 경우, pointInside:withEvent: 메소드에 대한 제1 호출은 '아니오'를 반환하고, 포인트는 무시되고, hitTest:withEvent:는 0(nil)을 반환한다. 서브뷰가 '아니오'를 반환하는 경우, 뷰 계층구조의 그 전체 분기는 무시되는데, 이는 터치가 그 서브뷰 내에서 발생하지 않았던 경우, 그것은 또한 그 서브뷰의 서브뷰들 중 임의의 것에서도 발생하지 않았기 때문이다. 이것은 그의 수퍼뷰의 외부에 있는 서브뷰 내의 임의의 포인트가 터치 이벤트들을 수신할 수 없다는 것을 의미하는데, 이는 터치 포인트가 수퍼뷰 및 서브뷰의 경계들 내에 있어야 하기 때문이다. 이것은 서브뷰의 clipsToBounds 속성이 '아니오'로 설정되는 경우 발생할 수 있다.
Figure 112018013962419-pct00082
히트 테스트 뷰에는 터치 이벤트를 처리하기 위한 첫 번째 기회가 주어진다. 히트 테스트 뷰가 이벤트를 처리할 수 없는 경우, 이벤트는, 시스템이 그것을 처리할 수 있는 객체를 찾아낼 때까지 '응답자 체인은 응답자 객체들로 구성됨(페이지 34)'에 기술된 바와 같이 응답자들의 그 뷰의 체인 위로 이동한다.
응답자 체인은 응답자 객체들로 구성됨
많은 유형의 이벤트들이 이벤트 전달을 위해 응답자 체인에 의존한다. 응답자 체인 은 일련의 링크된 응답자 객체들이다. 그것은 제1 응답자로 시작되고, 애플리케이션 객체로 종료된다. 제1 응답자가 이벤트를 처리할 수 없는 경우, 그것은 이벤트를 응답자 체인에서의 다음 응답자로 포워딩한다.
응답자 객체 는, 이벤트들에 응답하고 그들을 처리할 수 있는 객체이다. UIResponder 클래스는 모든 응답자 객체들에 대한 베이스 클래스이고, 그것은 이벤트 처리를 위해서뿐만 아니라 일반적인 응답자 거동을 위해서도 프로그래밍 방식 인터페이스를 정의한다. UIApplication, UlViewController, 및 UIView 클래스들의 인스턴스들은 응답자들인데, 이는 모든 뷰들 및 대부분의 중요한 제어기 객체들이 응답자들임을 의미한다. 코어 애니메이션 층들은 응답자들이 아니라는 것에 유의한다.
제1 응답자 는 이벤트들을 먼저 수신하도록 지정된다. 전형적으로, 제1 응답자는 뷰 객체이다. 객체는 하기 2가지를 행함으로써 제1 응답자가 된다:
1. canBecomeFirstResponder 메소드를 오버라이드하여 '예'를 반환한다.
2. becomeFirstResponder 메시지를 수신한다. 필요한 경우, 객체는 자체로 이 메시지를 전송할 수 있다.
Figure 112018013962419-pct00083
이벤트들은 응답자 체인에 의존하는 유일한 객체들은 아니다. 응답자 체인은 하기 모두에 사용된다:
Figure 112018013962419-pct00084
터치 이벤트들. 히트 테스트 뷰가 터치 이벤트를 처리할 수 없는 경우, 이벤트는 히트 테스트 뷰로 시작되는 응답자들의 체인 위로 전달된다.
Figure 112018013962419-pct00085
모션 이벤트들. 쉐이크 모션 이벤트들을 UIKit로 처리하기 위해, 제1 응답자는, 'UIEvent를 이용하여 쉐이크 모션 이벤트들을 검출(페이지 58)'에 기술된 바와 같이, UIResponder 클래스의 motionBegan:withEvent: 또는 motionEnded:withEvent: 메소드를 구현해야 한다.
Figure 112018013962419-pct00086
원격 제어 이벤트들. 원격 제어 이벤트들을 처리하기 위해, 제1 응답자는 UIResponder 클래스의 remoteControlReceivedWithEvent: 메소드를 구현해야 한다.
Figure 112018013962419-pct00087
액션 메시지들. 사용자가 버튼 또는 스위치와 같은 제어부를 조작하고 액션 메소드에 대한 타깃이 0일 때, 메시지는 제어부 뷰로 시작되는 응답자들의 체인을 통해 전송된다.
Figure 112018013962419-pct00088
편집-메뉴 메시지들. 사용자가 편집 메뉴의 커맨드들을 탭핑할 때, iOS는 필요한 메소드들을 구현하는 객체(예컨대, cut:, copy:, 및 paste:)를 찾아내기 위해 응답자 체인을 사용한다. 더 많은 정보에 대해서는, Displaying and Managing the Edit Menu 및 샘플 코드 프로젝트인 CopyPasteTiIe 을 참조하라.
Figure 112018013962419-pct00089
텍스트 편집. 사용자가 텍스트 필드 또는 텍스트 뷰를 탭핑할 때, 그 뷰는 자동으로 제1 응답자가 된다. 디폴트로, 가상 키보드가 나타나고, 텍스트 필드 또는 텍스트 뷰가 편집의 포커스가 된다. 당신은 당신의 앱에 적절한 경우 키보드 대신에 맞춤형 입력 뷰를 디스플레이할 수 있다. 당신은 또한 맞춤형 입력 뷰를 임의의 응답자 객체에 추가할 수 있다. 더 많은 정보에 대해서는, Custom Views for Data Input를 참조하라.
UIKit는, 사용자가 탭핑하는 텍스트 필드 또는 텍스트 뷰를 제1 응답자가 되도록 자동으로 설정하고; 앱들은 becomeFirstResponder 메소드로 모든 다른 제1 응답자 객체들을 명시적으로 설정해야 한다.
응답자 체인은 특정 전달 경로를 추종
초기 객체 - 히트 테스트 뷰 또는 제1 응답자 - 가 이벤트를 처리하지 않는 경우, UIKit는 이벤트를 체인에서의 다음 응답자로 전달한다. 각각의 응답자는 그것이 이벤트를 처리하거나, 또는 nextResponder 메소드를 호출함으로써 이벤트를 그 자신의 다음 응답자에게로 따라가기 원하는지 여부를 결정한다. 이러한 프로세스는 응답자 객체가 이벤트를 처리하거나 또는 응답자가 더 이상 없을 때까지 계속된다.
응답자 체인 시퀀스는 iOS가 이벤트를 검출할 때 시작되고, 이벤트를 초기 객체 - 이는 전형적으로 뷰임 - 로 전달한다. 초기 뷰는 이벤트를 처리하기 위한 첫 번째 기회를 갖는다. 도 2-2는 2개의 앱 구성들에 대한 2개의 상이한 이벤트 전달 경로들을 도시한다. 앱의 이벤트 전달 경로는 그의 특정 구조에 좌우되지만, 모든 이벤트 전달 경로들은 동일한 휴리스틱(heuristic)들을 고수한다.
[도 2-2] iOS에 대한 응답자 체인
Figure 112018013962419-pct00090
좌측에 있는 앱의 경우, 이벤트는 이 경로를 추종한다:
1. 초기 는 이벤트 또는 메시지를 처리하려고 시도한다. 그것이 이벤트를 처리할 수 없는 경우, 그것은 이벤트를 그의 수퍼뷰로 전달하는데, 이는 초기 뷰가 그의 뷰 제어기의 뷰 계층구조에서의 최상위 뷰가 아니기 때문이다.
2. 수퍼뷰 는 이벤트를 처리하려고 시도한다. 수퍼뷰가 이벤트를 처리할 수 없는 경우, 그것은 이벤트를 그의 수퍼뷰로 전달하는데, 이는 그것이 여전히 뷰 계층구조에서의 최상위 뷰가 아니기 때문이다.
3. 뷰 제어기의 뷰 계층구조에서의 최상위 는 이벤트를 처리하려고 시도한다. 최상위 뷰가 이벤트를 처리할 수 없는 경우, 그것은 이벤트를 그의 뷰 제어기로 전달한다.
4. 뷰 제어기 는 이벤트를 처리하려고 시도하고, 만약 그것이 처리할 수 없다면, 이벤트를 윈도우로 전달한다.
5. 윈도우 객체 가 이벤트를 처리할 수 없는 경우, 그것은 이벤트를 싱글톤 앱 객체로 전달한다.
6. 앱 객체 가 이벤트를 처리할 수 없는 경우, 그것은 이벤트를 폐기한다.
우측에 있는 앱은 약간 상이한 경로를 추종하지만, 모든 이벤트 전달 경로들은 이러한 휴리스틱들을 추종한다:
1. 뷰는 이벤트가 최상위 뷰에 도달할 때까지 이벤트를 그의 뷰 제어기의 뷰 계층구조 위로 전달한다.
2. 최상위 뷰는 이벤트를 그의 뷰 제어기로 전달한다.
3. 뷰 제어기는 이벤트를 그의 최상위 뷰의 수퍼뷰로 전달한다. 단계 1 내지 단계 3은 이벤트가 루트(root) 뷰 제어기에 도달할 때까지 반복된다.
4. 루트 뷰 제어기는 이벤트를 윈도우 객체로 전달한다.
5. 윈도우는 이벤트를 앱 객체로 전달한다.
Figure 112018013962419-pct00091
멀티터치 이벤트들
Objective-CSwift
일반적으로, 당신은 UIKit에서의 표준 제어부들 및 제스처 인식기들에 의해 당신의 거의 모든 터치 이벤트들을 처리할 수 있다. 제스처 인식기들은 당신이 터치의 인식을, 터치가 생성되는 액션으로부터 분리할 수 있게 한다. 일부 경우에, 당신은 당신의 앱에서 무언가 - 예컨대, 터치에 의한 드로잉 - 를 하고 싶어하는데, 여기서 터치 인식을 터치의 효과로부터 결합분리하는 것은 아무런 이익이 없다. 뷰의 콘텐츠들이 터치 자체에 긴밀하게 관련되는 경우, 당신은 터치 이벤트들을 직접 처리할 수 있다. 사용자가 당신의 뷰를 터치할 때 당신은 터치 이벤트들을 수신하고, 그들의 속성들에 기초하여 그러한 이벤트들을 해석하고, 이어서 적절히 응답한다.
UIResponder의 서브클래스를 생성
당신의 앱이 맞춤형 터치 이벤트 처리를 구현하기 위해서는, 먼저 응답자 클래스의 서브클래스를 생성한다. 이 서브클래스는 하기 중 임의의 하나일 수 있다:
Figure 112018013962419-pct00092
이어서, 당신의 서브클래스의 인스턴스들이 멀티터치 이벤트들을 수신하기 위해:
1. 당신의 서브클래스는, '당신의 서브클래스에서 터치 이벤트 처리 메소드들을 구현(페이지 39)'에 기술된, 터치 이벤트 처리를 위해 UIResponder 메소드들을 구현해야 한다.
2. 터치들을 수신하는 뷰는, 그의 userlnteractionEnabled 속성이 '예'로 설정되어야 한다. 당신이 뷰 제어기를 서브클래스화하고 있는 경우, 그것이 관리하는 뷰는 사용자 상호작용들을 지원해야 한다.
3. 터치들을 수신하는 뷰는 가시적이어야 하는데; 그것은 투명하거나 숨겨질 수 없다.
당신의 서브클래스에서 터치 이벤트 처리 메소드들을 구현
iOS는 터치들을 멀티터치 시퀀스의 일부로서 인식한다. 멀티터치 시퀀스 동안, 앱은 일련의 이벤트 메시지들을 타깃 응답자로 전송한다. 이러한 메시지들을 수신 및 처리하기 위해, 응답자 객체의 클래스는 하기 UIResponder 메소드들을 구현해야 한다:
Figure 112018013962419-pct00093
Figure 112018013962419-pct00094
이러한 터치 메소드들 각각은 터치 페이즈, 즉, 시작, 이동, 종료, 및 취소에 대응한다. 주어진 페이즈 동안 새로운 또는 변경된 터치들이 있을 때, 앱 객체는 이러한 메소드들 중 하나를 호출한다. 각각의 메소드는 2개의 파라미터들을 취한다: 터치들의 세트 및 이벤트.
터치들의 세트는, 그 페이즈 동안의 새로운 또는 변경된 터치들을 나타내는, UITouch 객체들의 세트(NSSet)이다. 예를 들어, 터치가 시작 페이즈로부터 이동 페이즈로 전이할 때, 앱은 touchesMoved:withEvent: 메소드를 호출한다. touchesMoved:withEvent: 메소드로 전달되는 터치들의 세트는 이제 이 터치 및 이동 페이즈에서의 모든 다른 터치들을 포함할 것이다. 다른 파라미터는 이벤트에 대한 모든 터치 객체들을 포함하는 이벤트(UIEvent 객체)이다. 이것은 터치들의 세트와 상이한데, 이는 이벤트에서의 터치 객체들 중 일부가 이전 이벤트 메시지 이후로 변경되지 않았을 수 있기 때문이다.
터치들을 프로세싱하는 모든 뷰들은 전체 터치 이벤트 스트림을 수신하리라고 예상하므로, 당신이 당신의 서브클래스를 생성할 때, 하기 규칙들을 명심해라:
Figure 112018013962419-pct00095
당신의 맞춤형 응답자가 UIView 또는 UIViewController의 서브클래스인 경우, 당신은 모든 이벤트 처리 메소드들을 구현해야 한다.
Figure 112018013962419-pct00096
당신이 임의의 다른 응답자 클래스를 서브클래스화할 경우, 당신은 이벤트 메소드들 중 일부에 대한 널 구현예를 가질 수 있다.
Figure 112018013962419-pct00097
모든 메소드들에서, 메소드의 수퍼클래스 구현예를 호출해야 한다.
당신이 응답자 객체가 이벤트의 소정 페이즈 동안 터치들을 수신하는 것을 방지하는 경우, 생성된 거동은 정의되지 않을 수 있고, 아마도 바람직하지 않을 수 있다.
응답자가 이벤트들을 처리하는 동안 지속성 객체들을 생성하는 경우, 그것은 시스템이 시퀀스를 취소하면 그러한 객체들을 없애기 위해 touchesCancelled:withEvent: 메소드를 구현해야 한다. 외부 이벤트 - 예를 들어, 착신 전화 통화 - 가 현재 앱의 이벤트 프로세싱을 방해할 때 취소가 발생한다. 응답자 객체가 또한 멀티터치 시퀀스에 대한 마지막 touchesEnded:withEvent: 메시지를 수신할 때 임의의 지속성 객체들을 없애야 함에 유의한다. 멀티터치 시퀀스에서의 마지막 UITouchPhaseEnded 터치 객체를 결정하는 방식을 찾아내기 위해 '터치 이벤트들을 포워딩(페이지 52)'을 참조하라.
터치 이벤트의 페이즈 및 위치를 추적
iOS는 멀티터치 시퀀스에서의 터치들을 추적한다. 그것은 터치의 페이즈, 뷰에서의 그의 위치, 그의 이전 위치, 및 그의 타임스탬프를 포함하는, 그들 각각에 대한 속성들을 기록한다. 이러한 속성들을 사용하여 터치에 응답하는 방식을 결정한다.
터치 객체는 페이즈 정보를 페이즈 속성에 저장하고, 각각의 페이즈는 터치 이벤트 메소드들 중 하나에 대응한다. 터치 객체는 3가지 방식으로 위치를 저장한다: 터치가 발생한 윈도우, 그 윈도우 내의 뷰, 및 그 뷰 내의 터치의 정확한 위치. 도 3-1(페이지 40)은 진행 중인 2개의 터치들을 갖는 예시적인 이벤트를 도시한다.
[도 3-1] UIEvent 객체와 그의 UITouch 객체들의 관계
Figure 112018013962419-pct00098
손가락이 화면을 터치할 때, 이벤트가 나중에 처리를 위해 다른 뷰로 전달되더라도, 그 터치는 이벤트의 수명 동안 기본 윈도우 및 뷰 둘 모두와 연관된다. 터치의 위치 정보를 사용하여 터치에 응답하는 방식을 결정한다. 예를 들어, 2개의 터치들이 연달아 발생하는 경우, 그들은 둘 모두가 동일한 뷰에서 발생한 경우에만 더블 탭으로서 취급된다. 터치 객체는, 하나의 터치 객체가 있는 경우, 그의 현재 위치 및 그의 이전 위치 둘 모두를 저장한다.
터치 객체들을 인출 및 질의
이벤트 처리 메소드 내에서, 당신은 하기로부터 터치 객체들을 인출함으로써 이벤트에 관한 정보를 얻는다:
Figure 112018013962419-pct00099
세트 객체. 전달된 NSSet는, 메소드에 의해 표현되는 페이즈, 예컨대 touchesBegan:withEvent: 메소드에 대한 UITouchPhaseBegan에서 새로운 또는 변경된 모든 터치들을 포함한다.
Figure 112018013962419-pct00100
이벤트 객체. 전달된 UIEvent 객체는 주어진 멀티터치 시퀀스에 대한 모든 터치들을 포함한다.
multipleTouchEnabled 속성은 디폴트로 '아니오'로 설정되는데, 이는 뷰가 멀티터치 시퀀스에서 첫 번째 터치만을 수신한다는 것을 의미한다. 이 속성이 디스에이블될 때, 당신은, 세트 내에 하나의 객체만이 있기 때문에 세트 객체 상에서 anyObject 메소드를 호출함으로써 터치 객체를 인출할 수 있다.
당신이 터치의 위치를 알기를 원하는 경우, IocationInView: 메소드를 사용하라. 파라미터 self를 이 메소드로 전달함으로써, 당신은 수신 뷰의 좌표계에서 터치의 위치를 얻는다. 유사하게, previousLocationlnView: 메소드는 당신에게 터치의 이전 위치를 알려준다. 당신은 또한, 터치가 얼마나 많은 탭들을 갖는지(tapCount), 터치가 언제 생성 또는 마지막으로 변이되었는지(타임스탬프), 및 터치가 무슨 페이즈에 있는지(페이즈)를 결정할 수 있다.
당신이, 마지막 페이즈 이후로 변경되지 않은 또는 전달된 세트에서의 터치들과는 상이한 페이즈에 있는 터치들에 관심이 있는 경우, 당신은 이벤트 객체에서 그들을 찾아낼 수 있다. 도 3-2는 터치 객체들을 포함하는 이벤트 객체를 도시한다. 모든 이러한 터치 객체들을 얻기 위해, 이벤트 객체 상에서 allTouches 메소드를 호출한다.
[도 3-2] 주어진 터치 이벤트에 대한 모든 터치들
Figure 112018013962419-pct00101
당신이 특정 윈도우와 연관된 터치들에만 관심이 있는 경우, UIEvent 객체의 touchesForWindow: 메소드를 호출하라. 도 3-3은 윈도우 A에 대한 모든 터치들을 도시한다.
[도 3-3] 특정 윈도우에 속하는 모든 터치들
Figure 112018013962419-pct00102
당신이 특정 뷰와 연관된 터치들을 얻기를 원하는 경우, 이벤트 객체의 touchesForView: 메소드를 호출하라. 도 3-4는 뷰 A에 대한 모든 터치들을 도시한다.
[도 3-4] 특정 뷰에 속하는 모든 터치들
Figure 112018013962419-pct00103
탭 제스처들을 처리
당신의 앱에서 탭 제스처를 인식할 수 있는 것 이외에, 당신은 아마도 단일 탭, 더블 탭, 또는 심지어 트리플 탭을 구별하기를 원할 것이다. 터치의 tapCount 속성을 사용하여 사용자가 뷰를 탭핑한 횟수를 결정한다.
이 값을 찾아내기 위한 최상의 장소는 touchesEnded:withEvent: 메소드인데, 이는 그것이 사용자가 언제 탭으로부터 손가락을 들어올리는지에 대응하기 때문이다. 터치 업 페이즈에서 - 시퀀스가 종료되었을 때 - 탭 카운트를 구함으로써, 당신은, 손가락이 실제로 탭핑하고 있고, 예를 들어, 터치 다운 및 드래그하고 있지 않음을 보장한다. 목록 3-1은 더블 탭이 당신의 뷰들 중 하나에서 발생되었는지 여부를 결정하는 방식의 일례를 도시한다.
[목록 3-1] 더블 탭 제스처를 검출
Figure 112018013962419-pct00104
스와이프 및 드래그 제스처들을 처리
수평 및 수직 스와이프들은 당신이 추적할 수 있는 간단한 유형의 제스처이다. 스와이프 제스처를 검출하기 위해, 모션의 원하는 축을 따라 사용자의 손가락의 이동을 추적한다. 이어서, 각각의 제스처에 대한 하기 질문들을 검토함으로써 그 이동이 스와이프인지 여부를 결정한다:
Figure 112018013962419-pct00105
사용자의 손가락이 충분히 멀리 이동하였는가?
Figure 112018013962419-pct00106
손가락이 비교적 직선으로 이동하였는가?
Figure 112018013962419-pct00107
스와이프라고 부르기에 충분할 정도로 손가락이 신속하게 이동하였는가?
이러한 질문들에 답변하기 위해, 터치의 초기 위치를 저장하고, 터치가 이동함에 따라 그의 위치를 비교한다.
목록 3-2는 당신이 뷰에서 수평 스와이프들을 검출하기 위해 사용할 수 있는 일부 기본적인 추적 메소드들을 도시한다. 이 예에서, 뷰는 터치의 초기 위치를 저장하기 위해 사용하는 startTouchPosition 속성을 갖는다. touchesEnded: 메소드에서, 그것은 그것이 스와이프인지를 결정하기 위해 종료 터치 위치를 시작 위치와 비교한다. 터치가 너무 멀리 수직으로 이동하거나 또는 충분히 멀리 이동하지 않는 경우, 그것은 스와이프로 간주되지 않는다. 이 예는 myProcessRightSwipe: 또는 myProcessLeftSwipe: 메소드들에 대한 구현예를 나타내지 않지만, 맞춤형 뷰는 거기서 스와이프 제스처를 처리할 것이다.
[목록 3-2] 뷰에서 스와이프 제스처를 추적
Figure 112018013962419-pct00108
이 코드가 제스처의 도중에 터치의 위치를 확인하지 않는데, 이는 제스처가 화면을 두루 돌아다닐 수 있지만 여전히 그의 시작 포인트와 종료 포인트가 일렬로 있는 경우 스와이프로 간주될 수 있음을 의미한다는 것에 주목한다. 보다 정교한 스와이프 제스처 인식기는 또한 touchesMoved:withEvent: 메소드에서 중간 위치들을 확인해야 한다. 수직 방향의 스와이프 제스처들을 검출하기 위해, 당신은 유사한 코드를 사용할 것이지만 x 및 y 성분들을 바꿀 것이다.
목록 3-3은 단일 터치를 추적하는 훨씬 더 간단한 구현예를 나타내는데, 이때 사용자는 화면 주위로 뷰를 드래그하고 있다. 여기서, 맞춤형 뷰 클래스는 touchesMoved:withEvent: 메소드만을 완전히 구현한다. 이 메소드는 뷰에서 터치의 현재 위치와 이전 위치 사이의 델타 값을 산출한다. 그것은 이어서 이 델타 값을 사용하여 뷰의 프레임의 원점을 리셋한다.
[목록 3-3] 단일 터치를 사용하여 뷰를 드래그
Figure 112018013962419-pct00109
복합 멀티터치 시퀀스를 처리
탭들, 드래그들, 및 스와이프들은 전형적으로 하나의 터치만을 수반하고, 추적하기 간단하다. 2개 이상의 터치들로 이루어진 터치 이벤트를 처리하는 것은 보다 어렵다. 당신은 모든 페이즈들을 통해 모든 터치들을 추적하여, 변경된 터치 속성들을 기록하고 내부 상태를 적절히 변경해야 할 수 있다. 다중 터치들을 추적 및 처리하기 위해, 당신은 하기를 행할 필요가 있다:
Figure 112018013962419-pct00110
뷰의 multipleTouchEnabled 속성을 '예'로 설정한다
Figure 112018013962419-pct00111
코어 기초 사전 객체(Core Foundation dictionary object, CFDictionaryRef)를 사용하여 이벤트 동안 그들의 페이즈들을 통해 터치들의 변이들을 추적한다
이벤트를 다중 터치들로 처리할 때, 당신은 종종 터치의 상태에 관한 정보를 저장하여 당신이 나중에 터치들을 비교할 수 있도록 한다. 일례로서, 가령 당신이 각각의 터치의 최종 위치를 그의 원래 위치와 비교하기를 원한다고 하자. touchesBegan:withEvent: 메소드에서, 당신은 locationInView: 메소드로부터 각각의 터치의 원래 위치를 얻고, 그들을 UITouch 객체들의 주소들을 사용하여 CFDictionaryRef 객체에 키들로서 저장한다. 이어서, touchesEnded:withEvent: 메소드에서, 당신은 각각의 전달된 터치 객체의 주소를 사용하여 객체의 원래 위치를 얻고 그것을 그의 현재 위치와 비교할 수 있다.
Figure 112018013962419-pct00112
목록 3-4는 UITouch 객체들의 시작 위치들을 코어 기초 사전에 저장하는 방식을 예시한다. cacheBeginPointForTouches: 메소드는 각각의 터치의 위치를 수퍼뷰의 좌표들에 저장하여, 그것이 모든 터치들의 위치를 비교하기 위한 공통 좌표계를 갖도록 한다.
[목록 3-4] 다중 터치들의 시작 위치들을 저장
Figure 112018013962419-pct00113
목록 3-5는 이전 예를 기반으로 한다. 그것은 사전으로부터 초기 위치들을 인출하는 방식을 예시한다. 이어서, 그것은 동일한 터치들의 현재 위치들을 얻어서, 당신이 이러한 값들을 사용하여 아핀 변환(affine transformation)(도시하지 않음)을 산출할 수 있도록 한다.
[목록 3-5] 터치 객체들의 초기 위치들을 인출
Figure 112018013962419-pct00114
다음 예인 목록 3-6은 터치 변이들을 추적하기 위해 사전을 사용하지 않지만, 그것은 이벤트 동안 다중 터치들을 처리한다. 그것은 손가락이 "Welcome" 플래카드를 화면 주위로 이동시킴에 따라 그것의 이동을 애니메이션화함으로써 터치들에 응답하는 맞춤형 UIView 객체를 나타낸다. 그것은 또한, 사용자가 더블 탭핑할 때 플래카드의 언어를 변경한다. 이 예는 당신이 이벤트 처리 컨텍스트의 보다 나은 이해를 얻기 위해 검토할 수 있는 MoveMe 샘플 코드 프로젝트로부터 나온다.
[목록 3-6] 복합 멀티터치 시퀀스를 처리
Figure 112018013962419-pct00115
[목록 3-7] 멀티터치 시퀀스에서의 마지막 터치가 종료되었을 때를 결정
Figure 112018013962419-pct00116
전달된 세트는 주어진 페이즈 동안 새로운 또는 변경된 뷰와 연관된 모든 터치 객체들을 포함하는 반면, touchesForView: 메소드로부터 반환되는 터치 객체들은 특정 뷰와 연관된 모든 객체들을 포함한다는 것을 기억하라.
맞춤형 터치 이벤트 거동을 특정
당신의 앱이 당신의 앱에서 특정 제스처, 특정 뷰, 또는 모든 터치 이벤트들의 거동을 변경함으로써 터치들을 처리하는 방식을 맞춤화한다. 당신은 터치 이벤트들의 스트림을 하기 방식으로 변경할 수 있다:
Figure 112018013962419-pct00117
다중 터치들의 전달을 켠다. 디폴트로, 뷰는 멀티터치 시퀀스 동안 첫 번째 터치 외에 모두를 무시한다. 당신이 뷰가 다중 터치들을 처리하기를 원하는 경우, 당신은, 인터페이스 빌더에서 관련된 속성을 설정함으로써 또는 당신의 뷰의 multipleTouchEnabled 속성을 '예'로 프로그래밍 방식으로 설정함으로써 뷰에 대한 이 능력을 인에이블해야 한다.
Figure 112018013962419-pct00118
이벤트 전달을 단일 뷰에 제한한다. 디폴트로, 뷰의 exclusiveTouch 속성은 '아니오'로 설정되는데, 이는 하나의 뷰가 윈도우 내의 다른 뷰들이 터치들을 수신하는 것을 차단하지 않는다는 것을 의미한다. 당신이 특정 뷰에 대해 속성을 '예'로 설정하는 경우, 그 뷰가 터치들을 추적하는 유일한 뷰인 경우 - 및 그러한 경우에만 - 그 뷰는 터치들을 수신한다.
당신의 뷰들이 비배타적인 경우, 사용자는 하나의 뷰에서 하나의 손가락을 그리고 다른 뷰에서 다른 손가락을 터치할 수 있고, 각각의 뷰는 그의 터치를 동시에 추적할 수 있다. 이제, 당신이 도 3-5에서와 같이 셋업된 뷰들을 갖고 뷰 A가 배타적인 터치 뷰라고 상정한다. 사용자가 A의 내부를 터치하는 경우, 그것은 터치를 인식한다. 그러나, 사용자가 뷰 B의 내부에서 하나의 손가락을 유지하고 또한 뷰 A의 내부를 터치하는 경우, 뷰 A가 터치들을 추적하는 유일한 뷰가 아니었기 때문에 뷰 A는 터치를 수신하지 않는다. 유사하게, 사용자가 뷰 A의 내부에서 하나의 손가락을 유지하고 또한 뷰 B의 내부를 터치하는 경우, 뷰 A가 터치들을 추적하는 유일한 뷰이기 때문에 뷰 B는 터치를 수신하지 않는다. 임의의 시간에, 사용자는 여전히 B 및 C 둘 모두를 터치할 수 있고, 그러한 뷰들은 그들의 터치들을 동시에 추적할 수 있다.
[도 3-5] 이벤트 전달을 배타적인 터치 뷰로 제한
Figure 112018013962419-pct00119
Figure 112018013962419-pct00120
이벤트 전달을 서브뷰들로 제한한다. 맞춤형 UIView 클래스는 hitTest:withEvent:를 오버라이드하여서, 멀티터치 이벤트들이 특정 서브뷰로 전달되지 않도록 할 수 있다. 이 기법의 논의에 대해 '히트 테스팅을 오버라이드함으로써 터치들을 인터셉트(페이지 52)'를 참조하라.
당신은 또한 터치 이벤트 전달을 완전히, 또는 단지 일정 기간 동안만 끌 수 있다:
Figure 112018013962419-pct00121
터치 이벤트들의 전달을 끈다. 뷰의 userlnteractionEnabled 속성을 '아니오'로 설정하여 터치 이벤트들의 전달을 끈다. 뷰가 또한 숨겨져 있거나 투명한 경우 터치 이벤트들을 수신하지 않음에 유의한다.
Figure 112018013962419-pct00122
일정 기간 동안 터치 이벤트들의 전달을 끈다 . 때때로 - 예를 들어, 당신의 코드가 애니메이션을 수행하고 있는 동안 - 당신은 이벤트 전달을 일시적으로 끄기를 원한다. 당신의 앱은 beginIgnoringInteractionEvents 메소드를 호출하여 터치 이벤트들을 수신하는 것을 중지하고, 이어서 나중에 endIgnoringInteractionEvents 메소드를 호출하여 터치 이벤트 전달을 재개할 수 있다.
히트 테스팅을 오버라이드함으로써 터치들을 인터셉트
당신이 서브뷰들을 갖는 맞춤형 뷰를 갖는 경우, 당신은 당신이 서브뷰 레벨에서 터치들을 처리하기를 원하는지 또는 수퍼뷰 레벨에서 터치들을 처리하기를 원하는지 여부를 결정할 필요가 있다. 당신이 수퍼뷰 레벨에서 터치들을 처리하도록 선택하는 경우 - 당신의 서브뷰들이 touchesBegan:withEvent:, touchesEnded:withEvent:, 또는 touchesMoved:withEvent: 메소드들을 구현하지 않음을 의미함 -, 수퍼뷰는 hitTest:withEvent:를 오버라이드하여 그의 서브뷰들 중 임의의 서브뷰보다는 오히려 그 자신을 반환해야 한다.
히트 테스팅을 오버라이드하는 것은, 수퍼뷰가 모든 터치들을 수신하는 것을 보장하는데, 이는 그 자신을 히트 테스트 뷰로서 설정함으로써, 수퍼뷰가 일반적으로 서브뷰로 먼저 전달되는 터치들을 인터셉트 및 수신하기 때문이다. 수퍼뷰가 hitTest:withEvent:를 오버라이드하지 않는 경우, 터치 이벤트들은 그들이 처음으로 발생한 서브뷰들과 연관되고, 결코 수퍼뷰로 전송되지 않는다.
'히트 테스팅은 터치가 발생한 뷰를 반환(페이지 32)'에 기술된 바와 같이, 2개의 히트 테스트 메소드들, 즉, 뷰들의 hitTest:withEvent: 메소드 및 층들의 hitTest: 메소드가 있음을 상기하라. 당신은 이러한 메소드들을 스스로 호출할 필요가 거의 없다. 당신이 그들을 오버라이드하여 서브뷰들로부터 터치 이벤트들을 인터셉트할 가능성이 더 크다. 그러나, 때때로 응답자들은 이벤트 포워딩 이전에 히트 테스팅을 수행한다('터치 이벤트들을 포워딩(페이지 52)'을 참조).
터치 이벤트들을 포워딩
터치 이벤트들을 다른 응답자 객체로 포워딩하기 위해, 적절한 터치 이벤트 처리 메시지들을 그 객체로 전송한다. UIKit 클래스들은 그들에게 속박되지 않은 터치들을 수신하도록 설계되지 않기 때문에 이 기법을 조심하여 사용하라. 응답자 객체가 터치를 처리하기 위해, 터치의 뷰 속성은 응답자에 대한 참조를 유지해야 한다. 당신이 터치들을 당신의 앱에서의 다른 응답자들로 조건부로 포워딩하기를 원하는 경우, 모든 응답자들은 당신 자신의 UIView 서브클래스의 인스턴스들이어야 한다.
예를 들어, 앱이 3개의 맞춤형 뷰들, 즉 A, B, 및 C를 갖는다고 하자. 사용자가 뷰 A를 터치할 때, 앱의 윈도우는 그것이 히트 테스트 뷰인 것으로 결정하고 그것으로 초기 터치 이벤트를 전송한다. 소정 조건들에 따라, 뷰 A는 이벤트를 뷰 B 또는 뷰 C로 포워딩한다. 이 경우에, 뷰 A, 뷰 B, 및 뷰 C는 이러한 포워딩을 알아야 하고, 뷰 B 및 뷰 C는 그들에게 속박되지 않은 터치들을 다룰 수 있어야 한다.
이벤트 포워딩은 종종, 터치 객체들을 분석하여 그들이 포워딩되어야 하는 곳을 결정할 것을 요구한다. 당신이 이 분석을 위해 취할 수 있는 몇 개의 접근법들이 있다:
Figure 112018013962419-pct00123
일반적인 수퍼뷰와 같은, "오버레이" 뷰에 의하면, 이벤트들을 서브뷰들로 포워딩하기 전에 히트 테스팅을 사용하여 분석을 위해 이벤트들을 인터셉트한다('히트 테스팅을 오버라이드함으로써 터치들을 인터셉트(페이지 52)'를 참조).
Figure 112018013962419-pct00124
UIWindow의 맞춤형 서브클래스에서 endEvent:를 오버라이드하고, 터치들을 분석하고, 그들을 적절한 응답자들로 포워딩한다.
sendEvent: 메소드를 오버라이드하는 것은, 당신의 앱이 수신하는 이벤트들을 당신이 모니터링할 수 있게 한다. UIApplication 객체 및 각각의 UIWindow 객체 양쪽 모두는 sendEvent: 메소드에서 이벤트들을 디스패칭하므로, 이 메소드는 앱으로 들어가는 이벤트들에 대한 퍼넬(funnel) 포인트로서의 역할을 한다. 이것은 극소수의 앱들이 해야 할 일이고, 당신이 sendEvent:를 오버라이드하는 경우, 수퍼클래스 구현예 - [super sendEvent:theEvent] - 를 호출해야 한다. 이벤트들의 분배를 결코 변경하지 않는다.
목록 3-8은 UIWindow의 서브클래스에서 이 기법을 예시한다. 이 예에서, 이벤트들은, 연관되는 뷰 상에서 아핀 변환들을 수행하는 맞춤형 헬퍼 응답자로 포워딩된다.
[목록 3-8] 터치 이벤트들을 헬퍼 응답자 객체들로 포워딩
Figure 112018013962419-pct00125
서브클래스를 오버라이드하는 것은 sendEvent: 메소드의 수퍼클래스 구현예를 호출함에 주목한다. 이것은 터치 이벤트 스트림의 무결성에 중요하다.
멀티터치 이벤트들을 처리하기 위한 최상의 관례들
터치 이벤트 및 모션 이벤트 양쪽 모두를 처리할 때, 당신이 따라야 하는 몇 가지 추천되는 기법들 및 패턴들이 있다.
Figure 112018013962419-pct00126
이벤트 취소 메소드들을 항상 구현한다.
당신의 구현예에서, 뷰의 상태를 그것이 현재 멀티터치 시퀀스 이전에 있었던 것으로 복원한다. 그렇게 하지 않으면, 당신의 뷰는 일관성이 없는 상태로 남아 있을 수 있거나, 또는 일부 경우에, 다른 뷰가 취소 메시지를 수신할 수 있다.
Figure 112018013962419-pct00127
당신이 UIView, UlViewController, 또는 UIResponder의 서브클래스에서 이벤트들을 처리하는 경우:
Figure 112018013962419-pct00128
이러한 메소드들의 당신의 구현예들이 아무것도 행하지 않더라도, 모든 이벤트 처리 메소드들을 구현한다.
Figure 112018013962419-pct00129
메소드들의 수퍼클래스 구현예를 호출하지 않는다.
Figure 112018013962419-pct00130
당신이 임의의 다른 UIKit 응답자 클래스의 서브클래스에서 이벤트들을 처리하는 경우:
Figure 112018013962419-pct00131
당신은 모든 이벤트 처리 메소드들을 구현할 필요가 없다.
Figure 112018013962419-pct00132
당신이 구현하는 메소드들에서, 수퍼클래스 구현예를 호출해야 한다. 예를 들어, [super touchesBegan:touches withEvent:event].
Figure 112018013962419-pct00133
이벤트들을 UIKit 프레임워크의 다른 응답자 객체들로 포워딩하지 않는다.
대신에, 이벤트들을 UIView의 당신 자신의 서브클래스들의 인스턴스들로 포워딩한다. 추가적으로, 이러한 응답자 객체들이, 이벤트 포워딩이 발생하고 있고 그들이 그들에게 속박되지 않은 터치들을 수신할 수 있다는 것을 알도록 하라.
Figure 112018013962419-pct00134
이벤트들을 nextResponder 메소드를 통해 응답자 체인 위로 명시적으로 전송하지 않고; 대신에, 수퍼클래스 구현예를 호출하고, UIKit가 응답자 체인 횡단을 처리하게 한다.
Figure 112018013962419-pct00135
정밀도를 잃기 때문에 당신의 터치 처리에서 정수로 반올림되는 코드(round-to-integer code)를 사용하지 마라.
iOS는 소스 호환성을 유지하기 위해 320x480 좌표 공간에서 터치들을 보고한다. 그러나, 고해상도 디바이스들에서, 해상도는 실제로 각각의 치수에서 2배(640x960)만큼 높은데, 이는 터치들이 고해상도 디바이스들 상에서의 절반 포인트 경계들에 랜딩할 수 있음을 의미한다. 구형 디바이스들에서, 터치들은 전체 포인트 경계들에만 랜딩한다.
모션 이벤트들
SwiftObjective-C
사용자들은, 그들이 디바이스를 이동시키거나, 쉐이킹하거나, 또는 기울일 때 모션 이벤트들을 생성한다. 이러한 모션 이벤트들은 디바이스 하드웨어, 구체적으로는 가속도계 및 자이로스코프에 의해 검출된다.
가속도계는 실제로, 각각의 축 - x, y 및 z - 에 대해 하나씩 3개의 가속도계들로 구성된다. 각각의 가속도계는 선형 경로를 따라 시간 경과에 따른 속도의 변화들을 측정한다. 모든 3개의 가속도계들을 조합하면, 당신이 임의의 방향에서의 디바이스 이동을 검출하고 디바이스의 현재 배향을 얻게 된다. 3개의 가속도계들이 있지만, 이 문서의 나머지는 그들을 단일 엔티티로 지칭한다. 자이로스코프 는 3개의 축들을 중심으로 회전 속도를 측정한다.
모든 모션 이벤트들은 동일한 하드웨어로부터 비롯된다. 당신의 앱의 필요성에 따라, 당신이 그 하드웨어 데이터에 액세스할 수 있는 여러 상이한 방식들이 있다:
Figure 112018013962419-pct00136
당신이 디바이스의 일반적인 배향을 검출할 필요가 있지만 당신이 배향 벡터를 알 필요는 없는 경우, UIDevice 클래스를 사용한다. 더 많은 정보에 대해서는 'UIDevice를 이용하여 현재 디바이스 배향을 얻음(페이지 56)'을 참조하라.
Figure 112018013962419-pct00137
사용자가 디바이스를 쉐이킹할 때 당신이 당신의 앱이 응답하기를 원하는 경우, 당신은 UIKit 모션 이벤트 처리 메소드들을 사용하여, 전달된 UIEvent 객체로부터 정보를 얻을 수 있다. 더 많은 정보에 대해서는 'UIEvent를 이용하여 쉐이크 모션 이벤트들을 검출(페이지 58)'을 참조하라.
Figure 112018013962419-pct00138
UIDevice 클래스도 UIEvent 클래스도 충분하지 않은 경우, 당신은 코어 모션 프레임워크를 사용하여 가속도계, 자이로스코프, 및 디바이스 모션 클래스들에 액세스하기를 원할 가능성이 있다. 더 많은 정보에 대해서는 '코어 모션을 이용하여 디바이스 이동을 캡처(페이지 60)'를 참조하라.
UIDevice를 이용하여 현재 디바이스 배향을 얻음
당신이 배향의 정확한 벡터가 아닌 디바이스의 일반적인 배향만을 알 필요가 있을 때 UIDevice 클래스의 메소드들을 사용한다. UIDevice를 사용하는 것은 간단하며, 당신이 배향 벡터를 직접 계산하길 요구하지 않는다.
당신이 현재 배향을 얻을 수 있기 전에, 당신은 UIDevice 클래스에게 beginGeneratingDeviceOrientationNotifications 메소드를 호출함으로써 디바이스 배향 통지들을 생성하기 시작하도록 명할 필요가 있다. 이것은 가속도계 하드웨어를 켜는데, 가속도계 하드웨어는 배터리 전력을 전약하기 위해 꺼져 있을 수 있다. 목록 4-1는 이것을 viewDidLoad 메소드에서 증명한다.
배향 통지들을 인에이블한 후에, UIDevice 객체의 배향 속성으로부터 현재 배향을 얻는다. 당신이 디바이스 배향이 변화될 때를 통지받기를 원하는 경우, UlDeviceOrientationDidChangeNotification 통지들을 수신하도록 등록한다. 디바이스 배향은, 디바이스가 가로 모드(landscape mode)에 있는지, 세로 모드(portrait mode)에 있는지, 화면 측이 위로 있는지, 화면 측이 아래로 있는지 등의 여부를 나타내는, UIDeviceOrientation 상수들을 사용하여 보고된다. 이러한 상수들은 디바이스의 물리적 배향을 나타내고, 당신의 앱의 사용자 인터페이스의 배향에 반드시 대응하지는 않는다.
당신이 더 이상 디바이스의 배향을 알 필요가 없을 때, UIDevice 메소드, endGeneratingDeviceOrientationNotifications을 호출함으로써 배향 통지들을 항상 디스에이블한다. 이것은 가속도계 하드웨어가 어딘가 다른 곳에서 사용되고 있지 않는 경우 가속도계 하드웨어를 디스에이블할 기회를 시스템에 제공하는데, 이는 배터리 전력을 절약한다.
[목록 4-1] 디바이스 배향의 변화들에 응답
Figure 112018013962419-pct00139
UIDevice 배향 변화들에 응답하는 다른 예에 대해, Alternate Views 샘플 코드 프로젝트를 참조하라.
UIEvent를 이용하여 쉐이크 모션 이벤트들을 검출
사용자들이 디바이스를 쉐이킹할 때, iOS는 가속도계 데이터를 평가한다. 데이터가 소정 기준들을 충족하는 경우, iOS는 쉐이킹 제스처를 해석하고 그것을 표현하는 UIEvent 객체를 생성한다. 이어서, 그것은 이벤트 객체를 프로세싱을 위해 현재 활성 앱으로 전송한다. 당신의 앱이 쉐이크 모션 이벤트들 및 디바이스 배향 변화들에 동시에 응답할 수 있다는 것에 유의한다.
모션 이벤트들은 터치 이벤트들보다 더 간단하다. 시스템은 모션이 시작 및 중지될 때를 앱에게 알려주지만, 각각의 개별 모션이 발생할 때를 알려주지는 않는다. 그리고, 모션 이벤트들은 이벤트 유형(UIEventTypeMotion), 이벤트 하위유형(UlEventSubtypeMotionShake), 및 타임스탬프만을 포함한다.
모션 이벤트들에 대한 제1 응답자를 지정
모션 이벤트들을 수신하기 위해, 응답자 객체를 제1 응답자로서 지정한다. 이것은 당신이 모션 이벤트들을 처리하기를 원하는 응답자 객체이다. 목록 4-2는 응답자가 자체로 어떻게 제1 응답자가 될 수 있는지를 나타낸다.
[목록 4-2] 제1 응답자가 됨
Figure 112018013962419-pct00140
모션 이벤트들은 응답자 체인을 사용하여, 이벤트를 처리할 수 있는 객체를 찾아낸다. 사용자가 디바이스를 쉐이킹하기 시작할 때, iOS는 제1 모션 이벤트를 제1 응답자로 전송한다. 제1 응답자가 이벤트를 처리하지 않는 경우, 그것은 응답자 체인 위로 진행한다. 더 많은 정보에 대해서는 '응답자 체인은 특정 전달 경로를 추종(페이지 35)'을 참조하라. 쉐이킹 모션 이벤트가 처리되지 않고서 응답자 체인 위로 윈도우로 이동하고 UIApplication의 applicationSupportsShakeToEdit 속성이 '예'(디폴트)로 설정되는 경우, 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] 모션 이벤트를 처리
Figure 112018013962419-pct00141
Figure 112018013962419-pct00142
모션 이벤트들에 대한 요구되는 하드웨어 능력들을 설정 및 확인
당신의 앱이 가속도계 데이터와 같은 디바이스-관련 특징부들에 액세스할 수 있기 전에, 당신은 요구되는 능력들의 목록을 당신의 앱에 추가해야 한다. 구체적으로, 당신은 키들을 당신의 앱의 Info.plist 파일에 추가한다. 런타임 시에, iOS는 디바이스가 요구되는 능력들을 갖는 경우에만 당신의 앱을 개시한다. 예를 들어, 당신의 앱이 자이로스코프 데이터에 의존하는 경우, 당신의 앱이 자이로스코프 없이 디바이스들 상에서 개시되지 않도록 필요에 따라 자이로스코프를 목록화한다. 앱 스토어(App Store)는 또한 이 목록을 사용하여, 사용자들이 구동할 수 없는 앱들을 그들이 다운로드하는 것을 피할 수 있도록 사용자들에게 알려준다.
당신의 앱의 속성 목록에 키들을 추가함으로써 당신의 앱의 요구되는 능력들을 선언한다. 하드웨어 소스에 기초하는, 모션 이벤트들에 대한 2개의 UlRequiredDeviceCapabilities 키들이 있다:
Figure 112018013962419-pct00143
가속도계
Figure 112018013962419-pct00144
자이로스코프
Figure 112018013962419-pct00145
당신은 키 값들을 특정하기 위해 어레이 또는 사전을 사용할 수 있다. 당신이 어레이를 사용하는 경우, 각각의 요구되는 특징부를 어레이에서의 키로서 열거한다. 당신이 사전을 사용하는 경우, 사전에서의 각각의 요구되는 키에 대한 부울 값(Boolean value)을 특정한다. 두 경우 모두에서, 특징부에 대한 키를 열거하지 않는 것은, 특징부가 요구되지 않음을 나타낸다. 더 많은 정보에 대해서는, UlRequiredDeviceCapabiIities를 참조하라.
자이로스코프 데이터를 사용하는 당신의 앱의 특징부들이 사용자 경험에 필수적이지 않은 경우, 당신은 자이로스코프가 없는 디바이스들을 갖는 사용자들이 당신의 앱을 다운로드할 수 있기를 원할 수 있다. 당신이 자이로스코프를 요구되는 하드웨어 능력으로 만들지 않지만, 여전히 자이로스코프 데이터를 요청하는 코드를 갖는 경우, 당신은 자이로스코프가 런타임 시에 이용가능한지 여부를 확인할 필요가 있다. 당신은 CMMotionManager 클래스의 gyroAvailable 속성을 이용하여 이것을 행한다.
코어 모션을 이용하여 디바이스 이동을 캡처
코어 모션 프레임워크는 주로, 원시 가속도계 및 자이로스코프 데이터에 액세스하고 그 데이터를 처리를 위해 앱으로 전달하는 것을 책임진다. 코어 모션은 고유 알고리즘들을 사용하여 그것이 수집하는 원시 데이터를 프로세싱하여, 그것이 더 정제된 정보를 제시할 수 있도록 한다. 이 프로세싱은 프레임워크의 자체 스레드에서 발생한다.
코어 모션은 UIKit와는 별개이다. 그것은 UIEvent 모델과 접속되지 않고, 응답자 체인을 사용하지 않는다. 대신에, 코어 모션은 간단히 모션 이벤트들을 직접 그들을 요청하는 앱들로 전달한다.
코어 모션 이벤트들은 3개의 데이터 객체들에 의해 표현되는데, 각각은 하나 이상의 측정치들을 캡슐화한다:
Figure 112018013962419-pct00146
CMAccelerometerData 객체는 공간 축들 각각을 따른 가속도를 캡처한다.
Figure 112018013962419-pct00147
CMGyroData 객체는 3개의 공간 축들 각각을 중심으로 회전 속도를 캡처한다.
Figure 112018013962419-pct00148
CMDeviceMotion 객체는 자세, 및 회전 속도 및 가속도의 더 유용한 측정치들을 포함하는, 여러 상이한 측정치들을 캡슐화한다.
CMMotionManager 클래스는 코어 모션에 대한 중심 액세스 포인트이다. 당신은 클래스의 인스턴스를 생성하고, 업데이트 간격을 특정하고, 업데이트들이 시작할 것을 요청하고, 모션 이벤트들이 전달됨에 따라 그들을 처리한다. 앱은 CMMotionManager 클래스의 단일 인스턴스만을 생성해야 한다. 이 클래스의 다수의 인스턴스들은, 앱이 가속도계 및 자이로스코프로부터 데이터를 수신하는 속도에 영향을 줄 수 있다.
코어 모션의 모든 데이터-캡슐화 클래스들은 CMLogltem의 서브클래스들인데, 이는 모션 데이터가 시간과 함께 태깅되고 파일에 로깅될 수 있도록 타임스탬프를 정의한다. 앱은 모션 이벤트들의 타임스탬프를 이전 모션 이벤트들과 비교하여, 이벤트들 사이의 진정한 업데이트 간격을 결정할 수 있다.
기술되는 데이터-모션 유형들 각각에 대해, CMMotionManager 클래스는 모션 데이터를 획득하기 위한 2개의 접근법들을 제공한다:
Figure 112018013962419-pct00149
풀(Pull). 앱은 업데이트들이 시작할 것을 요청하고, 이어서 모션 데이터의 가장 최근의 측정치를 주기적으로 샘플링한다.
Figure 112018013962419-pct00150
푸시(Push). 앱은 업데이트 간격을 특정하고, 데이터를 처리하기 위한 블록을 구현한다. 이어서, 그것은 업데이트들이 시작할 것을 요청하고, 코어 모션, 동작 큐 및 블록에 전달한다. 코어 모션은 각각의 업데이트를, 동작 큐에서 태스크로서 실행되는 블록으로 전달한다.
풀은 대부분의 앱들, 특히 게임들에 대한 추천되는 접근법이다. 그것은 일반적으로 보다 효율적이고, 더 적은 코드를 요구한다. 푸시는 데이터 수집 앱들, 및 단일 샘플 측정치를 놓칠 수 없는 유사한 앱들에 적절하다. 두 접근법들 모두는 양호한 스레드 안전 효과들을 갖고; 푸시에 의하면, 당신의 블록은 동작 큐의 스레드 상에서 실행되는 반면, 풀에 의하면, 코어 모션은 결코 당신의 스레드들을 인터럽트하지 않는다.
Figure 112018013962419-pct00151
항상, 당신의 앱이 필요한 데이터를 프로세싱하는 것을 끝내자마자 모션 업데이트들을 중지한다. 그 결과, 코어 모션은 모션 센서들을 끌 수 있는데, 이는 배터리 전력을 절약한다.
모션 이벤트 업데이트 간격을 선택
당신이 코어 모션을 갖는 모션 데이터를 요청할 때, 당신은 업데이트 간격을 특정한다. 당신은 당신의 앱의 필요성을 충족하는 최대 간격을 선택해야 한다. 간격이 클수록, 더 적은 이벤트들이 당신의 앱으로 전달되는데, 이는 배터리 수명을 개선한다. 표 4-1은 일부 일반적인 업데이트 빈도들을 나열하고, 당신이 그 빈도로 생성되는 데이터로 무엇을 행할 수 있는지를 설명한다. 초당 100번 전달되는 가속도 이벤트들을 필요로 하는 앱은 거의 없다.
[표 4-1]
Figure 112018013962419-pct00152
당신은 보고 간격을, 100 Hz 업데이트 속도에 대응하는 10 밀리초(ms)만큼 작게 설정할 수 있지만, 대부분의 앱은 보다 큰 간격에서 충분히 동작한다.
코어 모션을 사용하여 가속도계 이벤트들을 처리
가속도계는 도 4-1에 도시된 바와 같이, 3개의 축들을 따라 시간 경과에 따른 속도를 측정한다. 코어 모션에 의하면, 각각의 이동은, 유형 CMAcceleration의 구조를 캡슐화하는 CMAccelerometerData 객체에서 캡처된다.
[도 4-1] 가속도계는 x, y, 및 z 축들을 따라 속도를 측정
Figure 112018013962419-pct00153
가속도계 데이터의 수신 및 처리를 시작하기 위해, CMMotionManager 클래스의 인스턴스를 생성하고 하기 메소드들 중 하나를 호출한다:
Figure 112018013962419-pct00154
startAccelerometerllpdates - 풀 접근법
당신이 이 메소드를 호출한 후에, 코어 모션은 CMMotionManager의 accelerometerData 속성을 가속도계 활동의 최신 측정치로 계속해서 업데이트한다. 이어서, 당신은, 통상적으로 게임들에서 일반적인 렌더 루프(render loop)에서, 이 속성을 주기적으로 샘플링한다. 당신이 이 폴링(polling) 접근법을 채택하는 경우, 업데이트 간격 속성(accelerometerllpdatelnterval)을, 코어 모션이 업데이트들을 수행하는 최대 간격으로 설정한다.
Figure 112018013962419-pct00155
startAccelerometerllpdatesToQueue:withHandler: - 푸시 접근법
당신이 이 메소드를 호출하기 전에, 업데이트 간격을 accelerometerllpdatelnterval 속성에 할당하고, NSOperationQueue의 인스턴스를 생성하고, 가속도계 업데이트들을 처리하는 유형 CMAccelerometerHandler의 블록을 구현한다. 이어서, 모션 관리자 객체 상에서 startAccelerometerUpdatesToQueueiwithHandler: 메소드를 호출하여, 동작 큐 및 블록에 전달한다. 특정된 업데이트 간격에서, 코어 모션은 가속도계 활동의 최신 샘플을, 큐에서의 태스크로서 실행되는 블록으로 전달한다.
목록 4-4(페이지 63)는 이 접근법을 예시한다.
목록 4-4는, 당신이 더 많은 컨텍스트에 대해 검토할 수 있는 MotionGraphs 샘플 코드 프로젝트로부터 추출된다. 이 앱에서, 사용자는 슬라이더를 이동시켜서 업데이트 간격을 특정한다. startUpdatesWithSliderValue: 메소드는 슬라이더 값을 사용하여 새로운 업데이트 간격을 산출한다. 이어서, 그것은 CMMotionManager 클래스의 인스턴스를 생성하고, 디바이스가 가속도계를 갖는 것을 확실히 하기 위해 확인하고, 업데이트 간격을 모션 관리자에게 할당한다. 이 앱은 푸시 접근법을 사용하여 가속도계 데이터를 인출하고 그것을 그래프 상에 플롯한다. 그것이 stopUpdates 메소드에서 가속도계 업데이트들을 중지하는 것에 유의한다.
[목록 4-4] MotionGraphs에서의 가속도계 데이터에 액세스
Figure 112018013962419-pct00156
회전 속도 데이터를 처리
자이로스코프는 도 4-2에 도시된 바와 같이, 디바이스가 3개의 공간 축들 각각을 중심으로 회전하는 속도를 측정한다.
[도 4-2] 자이로스코프는 x, y, 및 z 축들을 중심으로 회전을 측정
Figure 112018013962419-pct00157
당신이 자이로스코프 업데이트를 요청할 때마다, 코어 모션은 회전 속도의 편향된 추정치를 취하고, CMGyroData 객체에서 이 정보를 반환한다. CMGyroData는 CMRotationRate 구조를 저장하는 rotationRate 속성을 갖는데, 이는 3개 축들 각각에 대한 회전 속도(초당 라디안 단위)를 캡처한다. CMGyroData 객체에 의해 측정되는 회전 속도가 편향되는 것에 유의한다. 당신은 CMDeviceMotion 클래스를 사용함으로써 훨씬 더 정확한, 비편향 측정치를 얻을 수 있다. 더 많은 정보에 대해서는 '프로세싱된 디바이스 모션 데이터를 처리(페이지 67)'를 참조하라.
회전 속도 데이터를 분석할 때 - 구체적으로, CMRotationMatrix 구조의 필드들을 분석할 때 - 도 4-2에 도시된 바와 같이, "오른손 법칙(right-hand rule)"에 따라 회전 방향을 결정한다. 예를 들어, 당신이, 엄지손가락의 끝이 양의 x를 가리키도록 x 축을 중심으로 당신의 오른손을 감싸는 경우, 양의 회전은 다른 4개의 손가락들의 끝들을 향하는 회전이다. 음의 회전은 그러한 손가락들의 끝들로부터 멀어지게 나아간다.
회전 속도 데이터의 수신 및 처리를 시작하기 위해, CMMotionManager 클래스의 인스턴스를 생성하고 하기 메소드들 중 하나를 호출한다:
Figure 112018013962419-pct00158
StartGyroUpdates - 풀 접근법
당신이 이 메소드를 호출한 후에, 코어 모션은 CMMotionManager의 gyroData 속성을 자이로스코프 활동의 최신 측정치로 계속해서 업데이트한다. 이어서, 당신은 이 속성을 주기적으로 샘플링한다. 당신이 이 폴링 접근법을 채택하는 경우, 업데이트 간격 속성(gyroUpdatelnterval)을, 코어 모션이 업데이트들을 수행하는 최대 간격으로 설정한다.
Figure 112018013962419-pct00159
startGyroUpdatesToQueue:withHandler: - 푸시 접근법
당신이 이 메소드를 호출하기 전에, 업데이트 간격을 gyroUpdatelnterval 속성에 할당하고, NSOperationQueue의 인스턴스를 생성하고, 자이로스코프 업데이트들을 처리하는 유형 CMGyroHandler의 블록을 구현한다. 이어서, 모션 관리자 객체 상에서 startGyroUpdatesToQueue:withHandler: 메소드를 호출하여, 동작 큐 및 블록에 전달한다. 특정된 업데이트 간격에서, 코어 모션은 자이로스코프 활동의 최신 샘플을, 큐에서의 태스크로서 실행되는 블록으로 전달한다.
목록 4-5는 이 접근법을 증명한다.
목록 4-5는 또한 MotionGraphs 샘플 코드 프로젝트로부터 추출되고, 목록 4-4와 거의 동일하다. 앱은 푸시 접근법을 사용하여 자이로스코프 데이터를 인출하여서, 그것이 데이터를 화면 상에 플롯할 수 있도록 한다.
[목록 4-5] MotionGraphs에서의 자이로스코프 데이터에 액세스
Figure 112018013962419-pct00160
프로세싱된 디바이스 모션 데이터를 처리
디바이스가 가속도계 및 자이로스코프 둘 모두를 갖는 경우, 코어 모션은, 센서들 둘 모두로부터의 원시 모션 데이터를 프로세싱하는 디바이스 모션 서비스를 제공한다. 디바이스 모션은 센서 융합 알고리즘들을 사용하여 원시 데이터를 정제하고, 디바이스의 자세, 그의 비편향 회전 속도, 디바이스 상의 중력의 방향, 및 사용자 생성 가속도에 대한 정보를 생성한다. CMDeviceMotion 클래스의 인스턴스는 이 데이터 전부를 캡슐화한다. 추가적으로, 당신은 가속도 데이터를 필터링할 필요가 없는데, 이는 디바이스 모션이 중력과 사용자 가속도를 분리시키기 때문이다.
당신은, CMAttitude 객체를 캡슐화하는, CMDeviceMotion 객체의 자세 속성을 통해 자세 데이터에 액세스할 수 있다. CMAttitude 클래스의 각각의 인스턴스는 자세의 3개의 수학적인 표현들을 캡슐화한다:
Figure 112018013962419-pct00161
4원수(quaternion)
Figure 112018013962419-pct00162
회전 행렬
Figure 112018013962419-pct00163
3개의 오일러 각들(롤(roll), 피치(pitch), 및 요(yaw))
디바이스 모션 업데이트들의 수신 및 처리를 시작하기 위해, CMMotionManager 클래스의 인스턴스를 생성하고 그것 상에서 하기 2개의 메소드들 중 하나를 호출한다:
Figure 112018013962419-pct00164
StartDeviceMotionUpdates - 풀 접근법
당신이 이 메소드를 호출한 후에, 코어 모션은, CMDeviceMotion 객체 내에 캡슐화되는 바와 같이, CMMotionManager의 deviceMotion 속성을 가속도계 및 자이로스코프 활동의 최신 정제된 측정치들로 계속해서 업데이트한다. 이어서, 당신은 이 속성을 주기적으로 샘플링한다. 당신이 이 폴링 접근법을 채택하는 경우, 업데이트 간격 속성(deviceMotionUpdatelnterval)을, 코어 모션이 업데이트들을 수행하는 최대 간격으로 설정한다.
목록 4-6은 이 접근법을 예시한다.
Figure 112018013962419-pct00165
startDeviceMotionUpdatesToQueue:withHandler: - 푸시 접근법
당신이 이 메소드를 호출하기 전에, 업데이트 간격을 deviceMotionUpdatelnterval 속성에 할당하고, NSOperationQueue의 인스턴스를 생성하고, 가속도계 업데이트들을 처리하는 CMDeviceMotionHandler 유형의 블록을 구현한다. 이어서, 모션 관리자 객체 상에서 StartDeviceMotionUpdatesToQueue:withHandler: 메소드를 호출하여, 동작 큐 및 블록에 전달한다. 특정된 업데이트 간격에서, 코어 모션은, CMDeviceMotion 객체에 의해 표현되는 바와 같은, 조합된 가속도계 및 자이로스코프 활동의 최신 샘플을, 큐에서의 태스크로서 실행되는 블록으로 전달한다.
목록 4-6은 pARk 샘플 코드 프로젝트로부터의 코드를 사용하여, 디바이스 모션 업데이트들을 시작 및 중지하는 방식을 증명한다. StartDeviceMotion 메소드는 풀 접근법을 사용하여, 기준 프레임과 함께 디바이스 업데이트들을 시작한다. 디바이스 모션 기준 프레임들에 관한 더 많은 것에 대해서는 '디바이스 자세 및 기준 프레임(페이지 68)'을 참조하라.
[목록 4-6] 디바이스 모션 업데이트들을 시작 및 중지
Figure 112018013962419-pct00166
디바이스 자세 및 기준 프레임
CMDeviceMotion 객체는 디바이스의 자세 또는 공간에서의 배향에 관한 정보를 포함한다. 디바이스 자세는 항상 기준 프레임에 관하여 측정된다. 코어 모션은 당신의 앱이 디바이스 모션 업데이트들을 시작할 때 기준 프레임을 확립한다. 이어서, CMAttitude는 그 초기 기준 프레임으로부터 디바이스의 현재 기준 프레임으로의 회전을 제공한다.
코어 모션 기준 프레임에서, z 축은 항상 수직이고, x 축 및 y 축은 항상 중력에 직교하는데, 이는 중력 벡터[0, 0, -1]를 만든다. 이것은 또한 중력 기준으로 알려져 있다. 당신이 CMAttitude 객체로부터 얻은 회전 행렬에 중력 기준을 곱하는 경우, 당신은 디바이스의 프레임에서의 중력을 얻는다. 또는, 수학적으로 하기와 같다:
Figure 112018013962419-pct00167
당신은 CMAttitude가 사용하는 기준 프레임을 변경할 수 있다. 그를 위해, 기준 프레임을 포함하는 자세 객체를 캐시에 저장하고 그것을 인수로서 multiplyBylnverseOfAttitude:로 전달한다. 메시지를 수신하는 자세 인수는, 그것이 전달된 기준 프레임으로부터의 자세의 변화를 표현하도록 변화된다.
대부분의 앱들은 디바이스 자세의 변화에 관심이 있다. 이것이 어떻게 유용할 수 있는지를 알기 위해, 사용자가 스윙하기 위해 디바이스를 회전시키는 야구 게임을 고려한다. 일반적으로, 투구(pitch)의 시작 시에, 배트는 약간 휴식을 취하는 배향에 있을 것이다. 그 후에, 배트는 디바이스의 자세가 투구의 시작으로부터 얼마나 변경되었는지에 기초하여 렌더링된다. 목록 4-7은 당신이 어떻게 이것을 행할 수 있는지를 예시한다.
[목록 4-7] 렌더링 이전에 자세의 변화를 얻음
Figure 112018013962419-pct00168
이 예에서, muItiplyByInverseOfAttitude: 메소드가 반환된 후에, currentAttitude는, referenceAttitude로부터 가장 최근에 샘플링된 CMAttitude 인스턴스로의 자세의 변화를 표현한다.
원격 제어 이벤트들
SwiftObjective-C
원격 제어 이벤트들은 사용자들이 당신의 앱의 멀티미디어를 제어하는 방식이다. 원격 제어 이벤트들은 외부 액세서리들로부터 또는 시스템에 의해 디스플레이되는 수송 제어부들로부터 비롯되고, 미디어 재생기 프레임워크의 클래스들을 통해 당신의 앱으로 전달된다. 오디오 또는 비디오 콘텐츠를 재생하는 앱들은 이러한 이벤트들을 사용하여 재생을 시작 및 중지하고, 트랙들을 변경하고, 심지어 항목을 레이팅한다. 모든 미디어 앱들은 이러한 이벤트들을 지원해야 한다.
원격 제어 이벤트들을 지원하는 것에 더하여, 앱들은 미디어 재생기 프레임워크를 사용하여 트랙들에 대한 재생 정보를 제공할 수 있다. 시스템은 재생 정보를 적절한 장소들, 예컨대 잠금 화면에 그리고 제어 센터에 디스플레이한다.
미디어 재생기 프레임워크의 클래스들에 관한 더 많은 정보에 대해서는, Media Player Framework Reference를 참조하라.
원격 제어 이벤트들에 대한 당신의 앱을 준비
원격 제어 이벤트들을 수신하기 위해, 하기를 행한다:
Figure 112018013962419-pct00169
당신이 지원하는 각각의 액션에 대한 핸들러들을 등록한다. '원격 제어 이벤트들을 처리(페이지 70)'에 기술된 바와 같이, 공유된 MPRemoteCommandCenter 객체를 사용하여 상이한 유형의 이벤트들에 대한 핸들러들을 등록한다.
Figure 112018013962419-pct00170
오디오를 재생하기 시작한다. 당신의 앱은 "Now Playing" 앱이어야 한다. 앱은 그것이 오디오를 재생하기 시작할 때까지 원격 제어 이벤트들을 수신하지 않는다.
당신의 앱이 또한 현재 트랙에 관한 정보를 포함하는 Now Playing 정보를 제공하는 경우, MPNowPlayinglnfoCenter 객체를 사용하여 적절한 시기에 그 정보를 업데이트한다. Now Playing 정보를 어떻게 제공하는지에 관한 더 많은 정보에 대해서는, 'Now Playing 정보를 제공(페이지 71)'을 참조하라.
원격 제어 이벤트들을 처리
특정 원격 제어 이벤트를 처리하기 위해, 적절한 MPRemoteCommand 객체를 이용하여 액션 핸들러를 등록한다. 미디어 재생기 프레임워크는 미디어-관련 이벤트들을 처리하기 위한 MPRemoteCommand 객체들의 표준 세트를 정의한다. 액세서리 또는 iOS 인터페이스가 원격 제어 이벤트를 생성할 때, 시스템은 대응하는 MPRemoteCommand 객체를 통지한다. 그 객체는 임의의 부착된 핸들러들을 실행함으로써 응답한다.
당신은 공유된 MPRemoteCommandCenter 객체로부터 원격 커맨드 객체들을 인출한다. 원격 커맨드 센터의 속성들은 재생을 관리하고, 트랙들을 스위칭하고, 트랙을 레이팅하기 위한 객체들을 포함한다. 블록 또는 액션 메소드를 사용하여 당신이 핸들러를 지원 및 부착하기를 원하는 객체를 페치(fetch)하라. 전형적으로, 당신은 각각의 유형의 커맨드에 대해 단일 핸들러를 등록하지만, 당신은 필요에 따라 다수의 핸들러들을 등록할 수 있다. 목록 5-1은 사용자가 트랙을 재생하기를 원할 때 실행될 블록을 등록하는 방식을 나타낸다. 예에서, 블록은 맞춤형 재생기 객체를 사용하여 현재 선택된 트랙을 재생한다. 당신의 코드에서, 당신이 트랙을 재생하길 요구하는 어떤 액션들도 수행한다.
[목록 5-1] 원격 제어 이벤트 핸들러를 등록
Figure 112018013962419-pct00171
당신이 명시적으로 주어진 커맨드를 지원하기를 원하지 않는 경우, 커맨드 객체를 페치하고 그의 인에이블형 속성을 '아니오'로 설정한다. 원격 커맨드를 디스에이블하면, 시스템이, 당신의 앱이 Now Playing 앱일 때 그 커맨드에 대한 임의의 관련된 UI를 디스플레이하지 않아야 한다는 것을 알게 한다.
일부 커맨드 객체들은, 당신이 커맨드에 관련된 다른 정보를 특정하게 한다. 예를 들어, 피드백 커맨드들은, 당신이 피드백의 의미를 기술하는 국부적 문자열을 특정하게 한다. 당신이 지원하고 있는 특정 커맨드에 관한 정보에 대한 참조 문서를 살펴보아야 한다.
원격 제어 이벤트들에 대한 핸들러들의 추가 및 제거에 관한 더 많은 정보에 대해서는, MPRemoteCommand Class Reference를 참조하라.
Now Playing 정보를 제공
오디오 또는 비디오 콘텐츠를 재생할 때, MPNowPlayinglnfoCenter 객체를 사용하여 재생 중인 콘텐츠에 관한 서술적 정보를 제공한다. MPNowPlayinglnfoCenter 객체는, 콘텐츠들이 재생 중인 항목을 기술하는 nowPlayinglnfo 사전을 포함한다. 시스템은 그 사전으로부터의 정보를 적절한 장소들에, 예컨대 iOS 디바이스의 잠금 화면 상에 디스플레이한다.
목록 5-2는 Now Playing 정보를 구성하기 위해 MPMediaItem 객체에서의 정보를 사용하는 방식의 일례를 나타낸다. 예는 고정된 세트의 속성들에 걸쳐 열거하고, 생성된 값들을 사용하여 새로운 사전을 구축하는데, 이는 이어서 MPNowPlayinglnfoCenter 객체에 할당된다.
[목록 5-2] 미디어 항목에 대한 Now Playing 정보를 수집
Figure 112018013962419-pct00172
Figure 112018013962419-pct00173
당신이 제공할 수 있는 정보의 유형들에 관한 더 많은 정보에 대해서는, MPNowPlayinglnfoCenter Class Reference를 참조하라.
디바이스 상에서 원격 제어 이벤트들을 테스트
당신의 화면의 하부 에지로부터 위로 스와이프함으로써 당신이 액세스하는 제어 센터를 이용하여 당신의 앱이 원격 제어 이벤트들을 적절히 수신 및 처리하고 있는지 테스트한다. 이러한 제어부들은 원격 제어 이벤트들을, 오디오를 현재 재생하고 있거나 또는 가장 최근에 재생한 앱으로 전송한다. 당신은 또한 디바이스의 잠금 화면으로부터 재생 제어부들에 액세스할 수 있다.
문서 개정 이력
이 표는 iOS를 위한 이벤트 처리 가이드에 대한 변화들을 기술한다.
Figure 112018013962419-pct00174
애플 인크.
저작권 ⓒ 2015 애플 인크.
판권 소유.
이 출판물의 어떠한 부분도 애플 인크.의 사전 서면 승인 없이, 복제되거나, 복구 시스템에 저장되거나, 또는 기계식, 전자식, 포토카핑, 레코딩 등 어떠한 형태로 또는 어떠한 수단에 의해 전송될 수 없다: 단 아래의 예외들이 있다: 어떤 개인이 단일 컴퓨터 또는 디바이스에 개인 용도로만 문서를 저장하고 문서에 애플의 저작권 고지가 포함되어 있는 경우 개인 용도로 문서의 사본을 인쇄할 권한이 있다.
이 문서에 기술된 기술 중 임의의 것과 관련하여 명시적 또는 묵시적인 어떠한 라이센스도 부여되지 않는다. 애플은 이 문서에 기술된 기술과 연관된 모든 지적 재산권을 보유한다. 이 문서는 애플리케이션 개발자들이 애플 브랜드 제품들에 대해서만 애플리케이션들을 개발하는 것을 돕기 위한 것이다.
애플 인크.
미국 95014 캘리포니아주 쿠퍼티노 인피니트 루프 1
408-996-1010
애플, 애플 로고, 아이폰, Mac, Shake, 및 Xcode는 미국 및 다른 국가들에 등록된 애플 인크.의 상표이다.
멀티-터치는 애플 인크.의 상표이다.
앱 스토어는 애플 인크.의 서비스 마크이다.
IOS는 미국 및 다른 국가들에서 Cisco의 상표 또는 등록 상표이고, 라이센스에 따라 사용된다.
애플은 이 문서, 그의 품질, 정확성, 상품성, 또는 특정 목적에 대한 적합성과 관련하여 명시적 또는 묵시적으로 어떠한 보증이나 진술도 하지 않는다. 결과적으로, 이 문서는 "있는 그대로" 제공되며, 당신, 즉 독자는 그의 품질과 정확성에 대한 전적인 위험을 감수하고 있다.
어떠한 경우에도, 애플은, 그러한 손해의 가능성에 대해 통보를 받았음에도 불구하고 , 이 문서의 모든 결함, 오류 또는 부정확성으로 인한 직접적, 간접적, 특수적, 우발적 또는 결과적 손해들에 대해 책임을 지지 않을 것이다.
일부 관할 구역들에서는 묵시적 보증이나 책임을 배제할 수 없으므로, 상기 예외가 당신에게 적용되지 않을 수 있다.

Claims (302)

  1. 방법으로서,
    디스플레이, 터치 감응형 표면, 및 상기 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들을 갖는 전자 디바이스에서:
    제1 사용자 인터페이스를 디스플레이하는 단계;
    상기 제1 사용자 인터페이스를 디스플레이하는 단계 동안, 상기 터치 감응형 표면 상의 접촉을 검출하는 단계를 포함하는, 상기 터치 감응형 표면 상의 입력의 제1 부분을 검출하는 단계; 및
    적어도 상기 입력의 상기 제1 부분을 검출하는 단계에 응답하여, 적어도 상기 입력의 상기 제1 부분에 대응하는 복수의 제스처 인식기들을 후보 제스처 인식기들로서 식별하는 단계 - 상기 복수의 제스처 인식기들은 제1 제스처 인식기 및 제2 제스처 인식기를 포함하고, 상기 제1 제스처 인식기는 세기 기반 제스처 인식기이고 상기 제2 제스처 인식기는 탭 제스처 인식기임 -;
    상기 제2 제스처 인식기가, 상기 제2 제스처 인식기가 상기 입력을 탭 제스처로서 인식할 수 있음을 나타내는 상태에 있고, 상기 제1 제스처 인식기가, 상기 제1 제스처 인식기가 상기 입력을 세기 기반 제스처로서 인식할 수 있음을 나타내는 상태에 있는 동안, 상기 입력의 상기 제1 부분에 후속하는 상기 입력의 제2 부분을 검출하는 단계 - 상기 입력의 상기 제2 부분은 상기 접촉의 세기의 변화를 포함함 -;
    상기 제1 사용자 인터페이스를 디스플레이하는 단계 동안 상기 입력의 상기 제2 부분을 검출하는 단계에 응답하여:
    상기 입력이 제1 세기 임계치를 만족하고 상기 입력이 제1 미리정의된 기간 동안 상기 터치 감응형 표면 상에 유지되는 것을 포함하는 세기 입력 기준들을 상기 입력이 만족한다는 결정에 따라:
    상기 제1 제스처 인식기를, 상기 입력이 세기 기반 제스처로서 인식되었음을 나타내는 상태로 전이시키는 단계, 및 상기 제1 제스처 인식기의, 상기 입력이 세기 기반 제스처로서 인식되었음을 나타내는 상태로의 상기 전이에 따라 제1 동작을 수행하는 단계; 및
    상기 제2 제스처 인식기를, 상기 입력이 상기 제2 제스처 인식기에 의해 인식되지 않을 것임을 나타내는 상태로 전이시키는 단계, 및
    상기 입력이 상기 제1 미리정의된 기간 동안 상기 터치 감응형 표면 상에 유지되는 것을 중지하는 것을 포함하는 탭 기준들을 상기 입력이 만족한다는 결정에 따라:
    상기 제2 제스처 인식기를, 상기 입력이 탭 제스처로서 인식되었음을 나타내는 상태로 전이시키는 단계, 및 상기 제2 제스처 인식기의, 상기 입력이 탭 제스처로서 인식되었음을 나타내는 상태로의 상기 전이에 따라 상기 제1 동작과는 별개인 제2 동작을 수행하는 단계를 포함하고,
    상기 복수의 제스처 인식기들 중 각각의 제스처 인식기는 상기 각각의 제스처 인식기에 의해 결정된 각각의 상태를 갖는, 방법.
  2. 제1항에 있어서,
    상기 터치 감응형 표면 상의 상기 입력의 상기 제2 부분을 검출하는 단계에 응답하여:
    상기 입력이 상기 세기 입력 기준들을 만족한다는 상기 결정에 따라, 상기 입력을 상기 제1 제스처 인식기로 프로세싱하는 것을 포함하는 상기 제1 동작을 수행하는 단계; 및
    상기 입력이 상기 탭 기준들을 만족한다는 상기 결정에 따라, 상기 입력을 상기 제2 제스처 인식기로 프로세싱하는 것을 포함하는 상기 제2 동작을 수행하는 단계를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 입력이 상기 제1 미리정의된 기간 동안 상기 터치 감응형 표면 상에 유지되는 것을 중지하는 것을 포함하는 탭 기준들을 상기 입력이 만족한다는 결정에 따라, 상기 제1 제스처 인식기를, 상기 입력이 상기 제1 제스처 인식기에 의해 인식되지 않을 것임을 나타내는 상태로 전이시키는 단계를 포함하는, 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 입력이 제2 세기 임계치를 만족한다고 결정하는 것에 응답하여, 상기 제1 사용자 인터페이스의 디스플레이를 제2 사용자 인터페이스로 대체하는 단계를 포함하는, 상기 입력을 상기 제1 제스처 인식기로 프로세싱하는 단계를 포함하는, 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 복수의 제스처 인식기들은 제3 제스처 인식기를 포함하고,
    상기 방법은, 상기 입력이 제2 세기 임계치를 만족한다고 결정하는 것에 응답하여, 상기 입력을 상기 제3 제스처 인식기로 프로세싱하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 제1 제스처 인식기가, 상기 제1 제스처 인식기가 상기 입력을 세기 기반 제스처로서 인식할 수 있음을 나타내는 상태에 있고, 상기 제2 제스처 인식기가, 상기 제2 제스처 인식기가 상기 입력을 탭 제스처로서 인식할 수 있음을 나타내는 상태에 있고, 상기 제3 제스처 인식기가, 상기 제3 제스처 인식기가 상기 입력을 인식할 수 있음을 나타내는 상태에 있는 동안, 상기 입력의 상기 제1 부분에 후속하고 상기 접촉의 세기의 변화를 포함하는 상기 입력의 상기 제2 부분을 검출하는 단계; 및
    상기 제1 사용자 인터페이스를 디스플레이하는 단계 동안 상기 입력의 상기 제2 부분을 검출하는 단계에 응답하여:
    상기 입력이 상기 제2 세기 임계치를 만족한다는 결정에 따라:
    상기 제3 제스처 인식기를 시작 상태(began state)로 전이시키는 단계;
    상기 제1 제스처 인식기를, 상기 제1 제스처 인식기가 상기 입력을 세기 기반 제스처로서 인식할 수 있음을 나타내는 상기 상태로 유지하는 단계; 및
    상기 제2 제스처 인식기를, 상기 제2 제스처 인식기가 상기 입력을 탭 제스처로서 인식할 수 있음을 나타내는 상기 상태로 유지하는 단계를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 제1 세기 임계치는 상기 제2 세기 임계치보다 더 큰, 방법.
  8. 제6항에 있어서,
    상기 제1 사용자 인터페이스를 디스플레이하는 단계 동안 상기 입력의 상기 제2 부분을 검출하는 단계에 응답하여:
    상기 입력이 상기 제2 세기 임계치를 만족한다는 상기 결정에 후속하여, 상기 입력의 세기가 변경되었다는 결정에 따라:
    상기 제3 제스처 인식기를, 상기 입력의 상기 세기가 변경되었음을 나타내는 변경 상태(changed state)로 전이시키는 단계 - 상기 변경 상태는 상기 시작 상태와는 별개임 -;
    상기 제1 제스처 인식기를, 상기 제1 제스처 인식기가 상기 입력을 세기 기반 제스처로서 인식할 수 있음을 나타내는 상기 상태로 유지하는 단계; 및
    상기 제2 제스처 인식기를, 상기 제2 제스처 인식기가 상기 입력을 탭 제스처로서 인식할 수 있음을 나타내는 상기 상태로 유지하는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 제1 사용자 인터페이스를 디스플레이하는 단계 동안 상기 입력의 상기 제2 부분을 검출하는 단계에 응답하여:
    상기 입력의 상기 세기가 변경되었다는 상기 결정에 후속하여, 상기 입력이 상기 제1 미리정의된 기간 이후에 상기 터치 감응형 표면 상에 유지되는 것을 중지한다는 결정에 따라:
    상기 제2 제스처 인식기를, 상기 입력이 상기 제2 제스처 인식기에 의해 인식되지 않을 것임을 나타내는 상기 상태로 전이시키는 단계; 및
    상기 제3 제스처 인식기를, 상기 입력이 인식되었음을 나타내는 인식 상태(recognized state) 또는 상기 입력이 취소되었음을 나타내는 취소 상태(canceled state)로 전이시키는 단계를 포함하는, 방법.
  10. 제1항 또는 제2항에 있어서,
    상기 입력의 상기 제1 부분을 검출하는 단계에 응답하여, 제3 동작을 수행하는 단계를 포함하는, 방법.
  11. 제10항에 있어서, 상기 제3 동작을 수행하는 단계는, 상기 제1 사용자 인터페이스의 적어도 일부분을 상기 제1 사용자 인터페이스의 다른 부분들과 시각적으로 구별하는 단계를 포함하는, 방법.
  12. 제10항에 있어서, 상기 제3 동작을 수행하는 단계에 후속하여:
    상기 입력이 상기 세기 입력 기준들을 만족한다는 상기 결정에 따라, 상기 제1 동작을 수행하는 단계; 및
    상기 입력이 상기 탭 기준들을 만족한다는 상기 결정에 따라, 상기 제2 동작을 수행하는 단계를 포함하는, 방법.
  13. 제10항에 있어서, 상기 제3 동작은 상기 제1 미리정의된 기간 동안 시작되는, 방법.
  14. 제1항 또는 제2항에 있어서,
    상기 제1 동작을 수행하는 단계는 프리뷰 영역을 디스플레이하는 단계를 포함하는, 방법.
  15. 제1항 또는 제2항에 있어서,
    상기 제2 동작을 수행하는 단계는, 상기 제1 사용자 인터페이스의 디스플레이를, 상기 터치 감응형 표면 상의 상기 입력의 위치에 대응하는 소프트웨어 애플리케이션의 제3 사용자 인터페이스로 대체하는 단계를 포함하는, 방법.
  16. 제1항 또는 제2항에 있어서, 상기 제2 동작은, 상기 입력이 상기 세기 입력 기준들을 만족하는지 여부에 관계없이, 상기 입력이 상기 탭 기준들을 만족한다는 상기 결정에 따라 수행되는, 방법.
  17. 제1항 또는 제2항에 있어서,
    상기 제1 사용자 인터페이스를 디스플레이하는 단계 동안 상기 입력을 검출하는 것에 응답하여:
    상기 입력이 상기 제1 미리정의된 기간 동안 상기 터치 감응형 표면 상에 유지된 후, 후속하여 상기 입력이 상기 터치 감응형 표면 상에서 검출되는 것을 중지하고 상기 입력이 상기 세기 입력 기준들을 만족하지 않는다는 결정에 따라, 상기 제2 동작을 수행하는 단계; 및
    상기 입력이 상기 제1 미리정의된 기간 동안 상기 터치 감응형 표면 상에 유지된 후, 후속하여 상기 입력이 상기 터치 감응형 표면 상에서 검출되는 것을 중지하고 상기 입력이 상기 세기 입력 기준들을 만족한다는 결정에 따라, 상기 제2 동작의 수행을 보류하는 단계를 포함하는, 방법.
  18. 전자 디바이스로서,
    디스플레이;
    터치 감응형 표면;
    상기 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들;
    하나 이상의 프로세서들; 및
    상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 포함하며, 상기 하나 이상의 프로그램들은,
    제1 사용자 인터페이스를 디스플레이하기 위한;
    상기 제1 사용자 인터페이스를 디스플레이하는 동안, 상기 터치 감응형 표면 상의 접촉을 검출하는 것을 포함하는, 상기 터치 감응형 표면 상의 입력의 제1 부분을 검출하기 위한; 그리고
    적어도 상기 입력의 상기 제1 부분을 검출하는 것에 응답하여, 적어도 상기 입력의 상기 제1 부분에 대응하는 복수의 제스처 인식기들을 후보 제스처 인식기들로서 식별하기 위한 - 상기 복수의 제스처 인식기들은 제1 제스처 인식기 및 제2 제스처 인식기를 포함하고, 상기 제1 제스처 인식기는 세기 기반 제스처 인식기이고 상기 제2 제스처 인식기는 탭 제스처 인식기임 -;
    상기 제2 제스처 인식기가, 상기 제2 제스처 인식기가 상기 입력을 탭 제스처로서 인식할 수 있음을 나타내는 상태에 있고, 상기 제1 제스처 인식기가, 상기 제1 제스처 인식기가 상기 입력을 세기 기반 제스처로서 인식할 수 있음을 나타내는 상태에 있는 동안, 상기 입력의 상기 제1 부분에 후속하는 상기 입력의 제2 부분을 검출하기 위한 - 상기 입력의 상기 제2 부분은 상기 접촉의 세기의 변화를 포함함 -;
    상기 제1 사용자 인터페이스를 디스플레이하는 동안 상기 입력의 상기 제2 부분을 검출하는 것에 응답하여:
    상기 입력이 제1 세기 임계치를 만족하고 상기 입력이 제1 미리정의된 기간 동안 상기 터치 감응형 표면 상에 유지되는 것을 포함하는 세기 입력 기준들을 상기 입력이 만족한다는 결정에 따라:
    상기 제1 제스처 인식기를, 상기 입력이 세기 기반 제스처로서 인식되었음을 나타내는 상태로 전이시키기 위한, 그리고 상기 제1 제스처 인식기의, 상기 입력이 세기 기반 제스처로서 인식되었음을 나타내는 상태로의 상기 전이에 따라 제1 동작을 수행하기 위한; 그리고
    상기 제2 제스처 인식기를, 상기 입력이 상기 제2 제스처 인식기에 의해 인식되지 않을 것임을 나타내는 상태로 전이시키기 위한, 그리고
    상기 입력이 상기 제1 미리정의된 기간 동안 상기 터치 감응형 표면 상에 유지되는 것을 중지하는 것을 포함하는 탭 기준들을 상기 입력이 만족한다는 결정에 따라:
    상기 제2 제스처 인식기를, 상기 입력이 탭 제스처로서 인식되었음을 나타내는 상태로 전이시키기 위한, 그리고 상기 제2 제스처 인식기의, 상기 입력이 탭 제스처로서 인식되었음을 나타내는 상태로의 상기 전이에 따라 상기 제1 동작과는 별개인 제2 동작을 수행하기 위한 명령어들을 포함하고,
    상기 복수의 제스처 인식기들 중 각각의 제스처 인식기는 상기 각각의 제스처 인식기에 의해 결정된 각각의 상태를 갖는, 전자 디바이스.
  19. 디스플레이, 터치 감응형 표면, 상기 터치 감응형 표면과의 접촉들의 세기를 검출하는 하나 이상의 센서들, 및 하나 이상의 프로세서들을 갖는 전자 디바이스에 의해 실행되는 하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 하나 이상의 프로그램들은,
    제1 사용자 인터페이스를 디스플레이하기 위한;
    상기 제1 사용자 인터페이스를 디스플레이하는 동안, 상기 터치 감응형 표면 상의 접촉을 검출하는 것을 포함하는, 상기 터치 감응형 표면 상의 입력의 제1 부분을 검출하기 위한; 그리고
    적어도 상기 입력의 상기 제1 부분을 검출하는 것에 응답하여, 적어도 상기 입력의 상기 제1 부분에 대응하는 복수의 제스처 인식기들을 후보 제스처 인식기들로서 식별하기 위한 - 상기 복수의 제스처 인식기들은 제1 제스처 인식기 및 제2 제스처 인식기를 포함하고, 상기 제1 제스처 인식기는 세기 기반 제스처 인식기이고 상기 제2 제스처 인식기는 탭 제스처 인식기임 -;
    상기 제2 제스처 인식기가, 상기 제2 제스처 인식기가 상기 입력을 탭 제스처로서 인식할 수 있음을 나타내는 상태에 있고, 상기 제1 제스처 인식기가, 상기 제1 제스처 인식기가 상기 입력을 세기 기반 제스처로서 인식할 수 있음을 나타내는 상태에 있는 동안, 상기 입력의 상기 제1 부분에 후속하는 상기 입력의 제2 부분을 검출하기 위한 - 상기 입력의 상기 제2 부분은 상기 접촉의 세기의 변화를 포함함 -;
    상기 제1 사용자 인터페이스를 디스플레이하는 동안 상기 입력의 상기 제2 부분을 검출하는 것에 응답하여:
    상기 입력이 제1 세기 임계치를 만족하고 상기 입력이 제1 미리정의된 기간 동안 상기 터치 감응형 표면 상에 유지되는 것을 포함하는 세기 입력 기준들을 상기 입력이 만족한다는 결정에 따라:
    상기 제1 제스처 인식기를, 상기 입력이 세기 기반 제스처로서 인식되었음을 나타내는 상태로 전이시키기 위한, 그리고 상기 제1 제스처 인식기의, 상기 입력이 세기 기반 제스처로서 인식되었음을 나타내는 상태로의 상기 전이에 따라 제1 동작을 수행하기 위한; 그리고
    상기 제2 제스처 인식기를, 상기 입력이 상기 제2 제스처 인식기에 의해 인식되지 않을 것임을 나타내는 상태로 전이시키기 위한, 그리고
    상기 입력이 상기 제1 미리정의된 기간 동안 상기 터치 감응형 표면 상에 유지되는 것을 중지하는 것을 포함하는 탭 기준들을 상기 입력이 만족한다는 결정에 따라:
    상기 제2 제스처 인식기를, 상기 입력이 탭 제스처로서 인식되었음을 나타내는 상태로 전이시키기 위한, 그리고 상기 제2 제스처 인식기의, 상기 입력이 탭 제스처로서 인식되었음을 나타내는 상태로의 상기 전이에 따라 상기 제1 동작과는 별개인 제2 동작을 수행하기 위한 명령어들을 포함하고,
    상기 복수의 제스처 인식기들 중 각각의 제스처 인식기는 상기 각각의 제스처 인식기에 의해 결정된 각각의 상태를 갖는, 컴퓨터 판독가능 저장 매체.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 삭제
  99. 삭제
  100. 삭제
  101. 삭제
  102. 삭제
  103. 삭제
  104. 삭제
  105. 삭제
  106. 삭제
  107. 삭제
  108. 삭제
  109. 삭제
  110. 삭제
  111. 삭제
  112. 삭제
  113. 삭제
  114. 삭제
  115. 삭제
  116. 삭제
  117. 삭제
  118. 삭제
  119. 삭제
  120. 삭제
  121. 삭제
  122. 삭제
  123. 삭제
  124. 삭제
  125. 삭제
  126. 삭제
  127. 삭제
  128. 삭제
  129. 삭제
  130. 삭제
  131. 삭제
  132. 삭제
  133. 삭제
  134. 삭제
  135. 삭제
  136. 삭제
  137. 삭제
  138. 삭제
  139. 삭제
  140. 삭제
  141. 삭제
  142. 삭제
  143. 삭제
  144. 삭제
  145. 삭제
  146. 삭제
  147. 삭제
  148. 삭제
  149. 삭제
  150. 삭제
  151. 삭제
  152. 삭제
  153. 삭제
  154. 삭제
  155. 삭제
  156. 삭제
  157. 삭제
  158. 삭제
  159. 삭제
  160. 삭제
  161. 삭제
  162. 삭제
  163. 삭제
  164. 삭제
  165. 삭제
  166. 삭제
  167. 삭제
  168. 삭제
  169. 삭제
  170. 삭제
  171. 삭제
  172. 삭제
  173. 삭제
  174. 삭제
  175. 삭제
  176. 삭제
  177. 삭제
  178. 삭제
  179. 삭제
  180. 삭제
  181. 삭제
  182. 삭제
  183. 삭제
  184. 삭제
  185. 삭제
  186. 삭제
  187. 삭제
  188. 삭제
  189. 삭제
  190. 삭제
  191. 삭제
  192. 삭제
  193. 삭제
  194. 삭제
  195. 삭제
  196. 삭제
  197. 삭제
  198. 삭제
  199. 삭제
  200. 삭제
  201. 삭제
  202. 삭제
  203. 삭제
  204. 삭제
  205. 삭제
  206. 삭제
  207. 삭제
  208. 삭제
  209. 삭제
  210. 삭제
  211. 삭제
  212. 삭제
  213. 삭제
  214. 삭제
  215. 삭제
  216. 삭제
  217. 삭제
  218. 삭제
  219. 삭제
  220. 삭제
  221. 삭제
  222. 삭제
  223. 삭제
  224. 삭제
  225. 삭제
  226. 삭제
  227. 삭제
  228. 삭제
  229. 삭제
  230. 삭제
  231. 삭제
  232. 삭제
  233. 삭제
  234. 삭제
  235. 삭제
  236. 삭제
  237. 삭제
  238. 삭제
  239. 삭제
  240. 삭제
  241. 삭제
  242. 삭제
  243. 삭제
  244. 삭제
  245. 삭제
  246. 삭제
  247. 삭제
  248. 삭제
  249. 삭제
  250. 삭제
  251. 삭제
  252. 삭제
  253. 삭제
  254. 삭제
  255. 삭제
  256. 삭제
  257. 삭제
  258. 삭제
  259. 삭제
  260. 삭제
  261. 삭제
  262. 삭제
  263. 삭제
  264. 삭제
  265. 삭제
  266. 삭제
  267. 삭제
  268. 삭제
  269. 삭제
  270. 삭제
  271. 삭제
  272. 삭제
  273. 삭제
  274. 삭제
  275. 삭제
  276. 삭제
  277. 삭제
  278. 삭제
  279. 삭제
  280. 삭제
  281. 삭제
  282. 삭제
  283. 삭제
  284. 삭제
  285. 삭제
  286. 삭제
  287. 삭제
  288. 삭제
  289. 삭제
  290. 삭제
  291. 삭제
  292. 삭제
  293. 삭제
  294. 삭제
  295. 삭제
  296. 삭제
  297. 삭제
  298. 삭제
  299. 삭제
  300. 삭제
  301. 삭제
  302. 삭제
KR1020187003890A 2015-08-10 2016-08-10 세기에 기초하여 터치 입력을 프로세싱하기 위한 디바이스 및 방법 KR102033863B1 (ko)

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
KR20180030603A KR20180030603A (ko) 2018-03-23
KR102033863B1 true KR102033863B1 (ko) 2019-10-17

Family

ID=56843015

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187003890A KR102033863B1 (ko) 2015-08-10 2016-08-10 세기에 기초하여 터치 입력을 프로세싱하기 위한 디바이스 및 방법

Country Status (8)

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

Families Citing this family (61)

* 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
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
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
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
CN109298789B (zh) 2012-05-09 2021-12-31 苹果公司 用于针对激活状态提供反馈的设备、方法和图形用户界面
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
EP2847659B1 (en) 2012-05-09 2019-09-04 Apple Inc. Device, method, and graphical user interface for transitioning between display states in response to a gesture
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
CN105260049B (zh) 2012-05-09 2018-10-23 苹果公司 用于响应于用户接触来显示附加信息的设备、方法和图形用户界面
JP6082458B2 (ja) 2012-05-09 2017-02-15 アップル インコーポレイテッド ユーザインタフェース内で実行される動作の触知フィードバックを提供するデバイス、方法、及びグラフィカルユーザインタフェース
AU2013368440B2 (en) 2012-12-29 2017-01-05 Apple Inc. Device, method, and graphical user interface for navigating user interface hierarchies
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 애플 인크. 콘텐츠를 스크롤할지 선택할지 결정하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
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
CN104903834B (zh) 2012-12-29 2019-07-05 苹果公司 用于在触摸输入到显示输出关系之间过渡的设备、方法和图形用户界面
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
CN105814539B (zh) 2013-06-18 2019-09-13 西安姆贝拉有限公司 用于代码虚拟化和远程进程调用生成的方法和装置
US9185062B1 (en) 2014-05-31 2015-11-10 Apple Inc. Message user interfaces for capture and transmittal of media and location content
US9990107B2 (en) 2015-03-08 2018-06-05 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US10048757B2 (en) 2015-03-08 2018-08-14 Apple Inc. Devices and methods for controlling media presentation
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
US9645732B2 (en) 2015-03-08 2017-05-09 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
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
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
US10200598B2 (en) 2015-06-07 2019-02-05 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
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
US9891811B2 (en) 2015-06-07 2018-02-13 Apple Inc. Devices and methods for navigating between user interfaces
US9830048B2 (en) 2015-06-07 2017-11-28 Apple Inc. Devices and methods for processing touch inputs with instructions in a web page
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
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
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
EP3394743B1 (en) 2015-12-21 2023-07-12 Ciambella Ltd. Method and apparatus for creating and managing controller based remote solutions
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
WO2019047226A1 (zh) 2017-09-11 2019-03-14 广东欧珀移动通信有限公司 触摸操作响应方法及装置
WO2019047234A1 (zh) * 2017-09-11 2019-03-14 广东欧珀移动通信有限公司 触摸操作响应方法及装置
EP3640783B1 (en) 2017-09-11 2023-12-13 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Touch operation response method and device
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
SG11202103328UA (en) * 2018-10-08 2021-04-29 Ciambella Ltd System, apparatus and method for providing 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
CN117827035A (zh) * 2024-03-05 2024-04-05 江苏锦花电子股份有限公司 一种基于人工智能的触摸设备监测系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176174A (ja) 2009-01-27 2010-08-12 Fujifilm Corp 電子機器および電子機器の操作入力制御方法、並びに電子機器の操作入力制御プログラム
US20110248948A1 (en) * 2010-04-08 2011-10-13 Research In Motion Limited Touch-sensitive device and method of control
US20110279381A1 (en) * 2010-05-14 2011-11-17 Research In Motion Limited Method of providing tactile feedback and electronic device
JP2015521315A (ja) 2012-05-09 2015-07-27 アップル インコーポレイテッド ユーザ接触に応答して追加情報を表示するための、デバイス、方法、及びグラフィカルユーザインタフェース

Family Cites Families (1475)

* 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
WO1989011694A1 (en) 1988-05-27 1989-11-30 Wang Laboratories, Inc. Document folder icon for display in a data processing system
EP0388162A3 (en) 1989-03-14 1993-03-03 Chicago Board Of Trade Apparatus for market trading
WO1990010910A1 (en) 1989-03-14 1990-09-20 Chicago Board Of Trade Simulated pit trading system
AU5418190A (en) 1989-03-28 1990-10-22 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 (ko) 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
US6208271B1 (en) 1998-09-04 2001-03-27 Brad A. Armstrong Remote controller with analog button(s)
US6347997B1 (en) 1997-10-01 2002-02-19 Brad A. Armstrong Analog controls housed with electronic displays
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
US5793360A (en) 1995-05-05 1998-08-11 Wacom Co., Ltd. Digitizer eraser system and method
US6072488A (en) 1995-05-05 2000-06-06 Apple Computer, Inc. Systems and methods for replacing open windows in a graphical user interface
US5717438A (en) 1995-08-25 1998-02-10 International Business Machines Corporation Multimedia document using time box diagrams
DK0847561T3 (da) 1995-08-28 2004-03-01 Ebs Dealing Resources Inc Anonymt handelssystem med forbedrede noteringsinputevner
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
EP0922275A4 (en) 1996-08-28 2002-08-21 Via Inc SYSTEMS AND METHODS RELATING TO A TOUCH SCREEN
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
CN1261450A (zh) 1997-04-30 2000-07-26 特拉斯特马格国际有限公司 网络计算机交易系统
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
US6456778B2 (en) 1997-10-01 2002-09-24 Brad A. Armstrong Analog controls housed with electronic displays for video recorders and cameras
US6532000B2 (en) 1997-10-01 2003-03-11 Brad A. Armstrong Analog controls housed with electronic displays for global positioning systems
US6421653B1 (en) 1997-10-14 2002-07-16 Blackbird Holdings, Inc. Systems, methods and computer program products for electronic trading of financial instruments
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
US6088019A (en) 1998-06-23 2000-07-11 Immersion Corporation Low cost force feedback device with actuator for non-primary axis
US6448977B1 (en) 1997-11-14 2002-09-10 Immersion Corporation Textures and other spatial sensations for a relative haptic interface device
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 情報処理システム
KR100595924B1 (ko) 1998-01-26 2006-07-05 웨인 웨스터만 수동 입력 통합 방법 및 장치
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US9292111B2 (en) 1998-01-26 2016-03-22 Apple Inc. Gesturing with a multipoint sensing device
US7760187B2 (en) 2004-07-30 2010-07-20 Apple Inc. Visual expander
US20060033724A1 (en) 2004-07-30 2006-02-16 Apple Computer, Inc. Virtual input device placement on a touch screen user interface
US7663607B2 (en) 2004-05-06 2010-02-16 Apple Inc. Multipoint touchscreen
US7844914B2 (en) 2004-07-30 2010-11-30 Apple Inc. Activating virtual keys of a touch-screen virtual keyboard
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 画像表示器付きカメラ
US6563487B2 (en) 1998-06-23 2003-05-13 Immersion Corporation Haptic feedback for directional control pads
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
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
AU5677599A (en) 1998-08-21 2000-03-14 Marketxt, Inc. 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
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
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
JP2000148348A (ja) 1998-11-13 2000-05-26 Internatl Business Mach Corp <Ibm> 起動中のアプリケーション・プログラムを容易に識別し、かつ終了させることができる方法およびシステム
DK1145541T3 (da) 1998-11-24 2013-03-11 Niksun Inc Apparat og fremgangsmåde til at indsamle og analysere kommunikationsdata
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
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
EP1208412A2 (en) 1999-02-26 2002-05-29 Reveo, Inc. Globally time-synchronized systems, devices and methods
WO2000052619A1 (en) 1999-03-01 2000-09-08 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
WO2000065510A1 (en) 1999-04-22 2000-11-02 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
WO2001016852A2 (en) 1999-08-30 2001-03-08 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
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
US7181424B1 (en) 1999-09-23 2007-02-20 The Nasdaq Stock Market, 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
JP2001202192A (ja) 2000-01-18 2001-07-27 Sony Corp 情報処理装置及びその方法並びにプログラム格納媒体
US6661438B1 (en) 2000-01-18 2003-12-09 Seiko Epson Corporation Display apparatus and portable information processing apparatus
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 カシオ計算機株式会社 オブジェクト移動装置及び記録媒体
US20020109680A1 (en) 2000-02-14 2002-08-15 Julian Orbanes Method for viewing information in virtual space
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
US6943778B1 (en) 2000-11-20 2005-09-13 Nokia Corporation Touch screen input technique
US6590568B1 (en) 2000-11-20 2003-07-08 Nokia Corporation Touch screen drag and drop 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 カーナビゲーション装置及び方法並びにカーナビゲーション用ソフトウェア
TW502180B (en) 2001-03-30 2002-09-11 Ulead Systems Inc Previewing method of editing multimedia effect
US7012595B2 (en) 2001-03-30 2006-03-14 Koninklijke Philips Electronics N.V. Handheld electronic device with touch pad
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
CA2457908C (en) 2001-08-31 2011-08-09 Ceramic Fuel Cells Limited Fuel cell system and method for recycling exhaust
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
KR101289110B1 (ko) 2001-11-01 2013-08-07 임머숀 코퍼레이션 촉각을 제공하기 위한 방법 및 장치
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
MXPA04008749A (es) 2002-03-08 2005-09-08 Revelations In Design Lp Aparato de control de dispositivo electrico.
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
US7493573B2 (en) 2003-02-07 2009-02-17 Sun Microsystems, Inc. Scrolling vertical column 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
US7051282B2 (en) 2003-06-13 2006-05-23 Microsoft Corporation Multi-layer graphical user interface
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
WO2004114113A1 (en) 2003-06-20 2004-12-29 Apple Computer, Inc. Computer interface having a virtual single-layer mode for viewing overlapping objects
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 文字入力装置
US8373660B2 (en) * 2003-07-14 2013-02-12 Matt Pallakoff System and method for a portable 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
JP4003742B2 (ja) 2003-08-21 2007-11-07 カシオ計算機株式会社 電子カメラ
KR100580174B1 (ko) 2003-08-21 2006-05-16 삼성전자주식회사 회전 가능한 디스플레이 장치 및 화면 조정 방법
US9024884B2 (en) 2003-09-02 2015-05-05 Apple Inc. Touch-sensitive electronic apparatus for media applications, and methods therefor
US7411575B2 (en) 2003-09-16 2008-08-12 Smart Technologies Ulc Gesture recognition method and touch system incorporating the same
JP2005092386A (ja) 2003-09-16 2005-04-07 Sony Corp 画像選択装置および画像選択方法
US7500127B2 (en) 2003-09-18 2009-03-03 Vulcan Portals Inc. Method and apparatus for operating an electronic device in a low power mode
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
US7426647B2 (en) 2003-09-18 2008-09-16 Vulcan Portals Inc. Low power media player for an 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
WO2005055034A1 (en) 2003-12-01 2005-06-16 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
DE602004013116T2 (de) 2004-01-20 2009-07-02 Sony Deutschland Gmbh Haptische tastengesteuerte Dateneingabe
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
US20050184973A1 (en) 2004-02-25 2005-08-25 Xplore Technologies Corporation Apparatus providing multi-mode digital input
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
US20050190280A1 (en) 2004-02-27 2005-09-01 Haas William R. Method and apparatus for a digital camera scrolling slideshow
KR100611182B1 (ko) 2004-02-27 2006-08-10 삼성전자주식회사 회전상태에 따라 메뉴표시상태를 변경하는 휴대형전자기기 및 그 방법
US7788595B2 (en) 2004-03-08 2010-08-31 Sap Ag Method and system for switching among management system applications
WO2005086854A2 (en) 2004-03-09 2005-09-22 Freedom Scientific, Inc. Low vision enhancement for graphic user interface
GB2412831A (en) 2004-03-30 2005-10-05 Univ Newcastle Highlighting important information by blurring less important information
WO2005098588A1 (ja) 2004-04-05 2005-10-20 Matsushita Electric Industrial Co., Ltd. 表示画面管理装置
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
CN100565433C (zh) 2004-05-05 2009-12-02 皇家飞利浦电子股份有限公司 浏览媒体项
JP4063246B2 (ja) 2004-05-11 2008-03-19 日本電気株式会社 ページ情報表示装置
EP1763756A4 (en) 2004-05-21 2009-05-06 Pressco Tech Inc USER CONFIGURATION INTERFACE OF A GRAPHICAL REINSPECTION
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
US20080094367A1 (en) 2004-08-02 2008-04-24 Koninklijke Philips Electronics, N.V. Pressure-Controlled Navigating in a Touch Screen
US8760408B2 (en) 2004-08-02 2014-06-24 Koninklijke Philips N.V. Touch screen with pressure-dependent visual feedback
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
JP2006091446A (ja) 2004-09-24 2006-04-06 Fuji Photo Film Co Ltd カメラ
US20060067654A1 (en) 2004-09-24 2006-03-30 Magix Ag Graphical user interface adaptable to multiple display devices
JP4860625B2 (ja) 2004-10-08 2012-01-25 イマージョン コーポレーション タッチ式入力装置におけるボタンおよびスクロール動作シミュレーション用の触覚フィードバック
JP4515458B2 (ja) 2004-10-12 2010-07-28 日本電信電話株式会社 3次元ポインティング方法、3次元ポインティング装置、及び3次元ポインティングプログラム
CA2584091A1 (en) 2004-10-19 2006-04-27 Koninklijke Philips Electronics N.V. Master substrate and method of manufacturing a high-density relief structure
US8677274B2 (en) 2004-11-10 2014-03-18 Apple Inc. Highlighting items for search results
US20060107226A1 (en) 2004-11-16 2006-05-18 Microsoft Corporation Sidebar autohide to desktop
EP1815424B1 (en) 2004-11-16 2019-01-09 Koninklijke Philips N.V. Touchless manipulation of images for regional enhancement
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
US7683889B2 (en) * 2004-12-21 2010-03-23 Microsoft Corporation Pressure based selection
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
US20090058882A1 (en) 2005-01-05 2009-03-05 Matsushita Electric Industrial Co., Ltd. Screen Display Device
US8341541B2 (en) 2005-01-18 2012-12-25 Microsoft Corporation System and method for visually browsing of open windows
US7552397B2 (en) 2005-01-18 2009-06-23 Microsoft Corporation Multiple window behavior system
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
JP5550211B2 (ja) 2005-03-04 2014-07-16 アップル インコーポレイテッド 多機能ハンドヘルド装置
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
US7471284B2 (en) 2005-04-15 2008-12-30 Microsoft Corporation Tactile scroll bar with illuminated document position indicator
US7355595B2 (en) 2005-04-15 2008-04-08 Microsoft Corporation Tactile device for scrolling
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
US7710397B2 (en) 2005-06-03 2010-05-04 Apple Inc. Mouse with improved input mechanisms using touch sensors
US9141718B2 (en) 2005-06-03 2015-09-22 Apple Inc. Clipview applications
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
US20070004461A1 (en) 2005-06-30 2007-01-04 Bathina Sridhar N Terminal with messaging application
US20070004451A1 (en) 2005-06-30 2007-01-04 C Anderson Eric Controlling functions of a handheld multifunction device
EP1908051A4 (en) 2005-07-22 2012-01-25 Matthew G Pallakoff SYSTEM AND METHOD FOR A THUMB-OPTIMIZED USER INTERFACE OF A TOUCH SCREEN
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 日本電気株式会社 適応送信タイミング制御方法、無線通信システムおよび無線通信装置
WO2007016704A2 (en) 2005-08-02 2007-02-08 Ipifini, Inc. Input device having multifunctional keys
US7680513B2 (en) 2005-08-08 2010-03-16 Palm, Inc. Contact-centric user-interface features for computing devices
WO2007024035A1 (en) 2005-08-26 2007-03-01 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
JP4777055B2 (ja) 2005-11-29 2011-09-21 京セラ株式会社 表示装置、制御方法
US7834850B2 (en) 2005-11-29 2010-11-16 Navisense Method and system for object control
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
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
US7812826B2 (en) 2005-12-30 2010-10-12 Apple Inc. Portable electronic device with multi-touch input
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
US7536654B2 (en) 2006-02-06 2009-05-19 Microsoft Corporation Photo browse and zoom
US8510669B2 (en) 2006-02-06 2013-08-13 Yahoo! Inc. Method and system for presenting photos on a website
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
US8780139B2 (en) 2006-03-27 2014-07-15 Adobe Systems Incorporated Resolution monitoring when using visual manipulation tools
JP2007264808A (ja) 2006-03-27 2007-10-11 Nikon Corp 表示入力装置及び撮像装置
US7925250B2 (en) 2006-03-27 2011-04-12 International Business Machines Corporation Reuse of a mobile device application in a desktop environment
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
EP2010999A4 (en) 2006-04-21 2012-11-21 Google Inc 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
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
US8842074B2 (en) 2006-09-06 2014-09-23 Apple Inc. Portable electronic device performing similar operations for different gestures
US8106856B2 (en) 2006-09-06 2012-01-31 Apple Inc. Portable electronic device for photo management
US7864163B2 (en) 2006-09-06 2011-01-04 Apple Inc. Portable electronic device, method, and graphical user interface for displaying structured electronic documents
US7956849B2 (en) 2006-09-06 2011-06-07 Apple Inc. Video manager for portable multifunction device
US7581186B2 (en) 2006-09-11 2009-08-25 Apple Inc. Media manager with integrated browsers
US7930650B2 (en) 2006-09-11 2011-04-19 Apple Inc. User interface with menu abstractions and content abstractions
US7743338B2 (en) 2006-09-11 2010-06-22 Apple Inc. Image rendering with image artifact along a multidimensional path
US8564543B2 (en) 2006-09-11 2013-10-22 Apple Inc. Media player with imaged based browsing
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")
JP5176300B2 (ja) 2006-09-22 2013-04-03 富士通株式会社 電子機器、その制御方法及びその制御プログラム
JP2008076818A (ja) 2006-09-22 2008-04-03 Fujitsu Ltd 携帯端末装置
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 삼성전자주식회사 촉각 피드백을 출력하는 장치 및 방법
JP2008146453A (ja) 2006-12-12 2008-06-26 Sony Corp 映像信号出力装置、操作入力処理方法
US8006002B2 (en) 2006-12-12 2011-08-23 Apple Inc. Methods and systems for automatic configuration of peripherals
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
US8214768B2 (en) 2007-01-05 2012-07-03 Apple Inc. Method, system, and graphical user interface for viewing multiple application windows
TWI466547B (zh) 2007-01-05 2014-12-21 Marvell World Trade Ltd 用於改善低解析度視訊之方法與系統
US7956847B2 (en) 2007-01-05 2011-06-07 Apple Inc. Gestures for controlling, manipulating, and editing of media files using touch sensitive devices
US8698727B2 (en) 2007-01-05 2014-04-15 Apple Inc. Backlight and ambient light sensor system
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
US20080222545A1 (en) 2007-01-07 2008-09-11 Lemay Stephen O Portable Electronic Device with a Global Setting User Interface
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
US20080168395A1 (en) 2007-01-07 2008-07-10 Bas Ording Positioning a Slider Icon on a Portable Multifunction Device
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
US7957762B2 (en) 2007-01-07 2011-06-07 Apple Inc. Using ambient light sensor to augment proximity sensor output
EP2104890B1 (en) 2007-01-11 2019-04-03 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
CN101241397B (zh) 2007-02-07 2012-03-07 罗伯特·博世有限公司 具有鼠标功能的键盘及其输入方法
JP2008191086A (ja) 2007-02-07 2008-08-21 Matsushita Electric Ind Co Ltd ナビゲーション装置
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
EP2129111B1 (en) 2007-03-06 2013-01-09 Panasonic Corporation Imaging device, edition device, image processing method, and program
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
US20100127983A1 (en) 2007-04-26 2010-05-27 Pourang Irani 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 情報処理装置、情報処理方法、プログラム
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
US20080303795A1 (en) 2007-06-08 2008-12-11 Lowles Robert J Haptic display for a handheld electronic device
US8667418B2 (en) 2007-06-08 2014-03-04 Apple Inc. Object stack
US8381122B2 (en) 2007-06-08 2013-02-19 Apple Inc. Multi-dimensional application environment
US8745535B2 (en) 2007-06-08 2014-06-03 Apple Inc. Multi-dimensional desktop
US9933937B2 (en) 2007-06-20 2018-04-03 Apple Inc. Portable multifunction device, method, and graphical user interface for playing online videos
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
US8059101B2 (en) 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
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 삼성전자주식회사 휴대단말에서 입력 피드백 제공 방법 및 장치
US8826132B2 (en) 2007-09-04 2014-09-02 Apple Inc. Methods and systems for navigating content on a portable device
US9619143B2 (en) 2008-01-06 2017-04-11 Apple Inc. Device, method, and graphical user interface for viewing application launch icons
US8619038B2 (en) 2007-09-04 2013-12-31 Apple Inc. Editing interface
US9477395B2 (en) 2007-09-04 2016-10-25 Apple Inc. Audio file interface
US20110145068A1 (en) 2007-09-17 2011-06-16 King Martin T Associating rendered advertisements with digital content
US8638363B2 (en) 2009-02-18 2014-01-28 Google Inc. Automatically capturing information, such as capturing information using a document-aware device
US8125458B2 (en) 2007-09-28 2012-02-28 Microsoft Corporation Detecting finger orientation on a touch-sensitive device
US20090089293A1 (en) 2007-09-28 2009-04-02 Bccg Ventures, Llc Selfish data browsing
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 엘지전자 주식회사 이동 단말기 및 그 메뉴 표시 방법
EP2045700A1 (en) 2007-10-04 2009-04-08 LG Electronics Inc. Menu display method for a mobile communication terminal
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 アズビル株式会社 情報連携ウィンドウシステムおよびプログラム
WO2009059062A2 (en) 2007-10-31 2009-05-07 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
US9274612B2 (en) 2008-01-04 2016-03-01 Tactus Technology, Inc. User interface system
US9063627B2 (en) 2008-01-04 2015-06-23 Tactus Technology, Inc. User interface and methods
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
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
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
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 ソニー株式会社 撮像装置、撮像方法及びプログラム
US20090247112A1 (en) 2008-03-28 2009-10-01 Sprint Communications Company L.P. Event disposition control for 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 ソニー株式会社 リスト表示装置及びリスト表示方法
US8209628B1 (en) 2008-04-11 2012-06-26 Perceptive Pixel, Inc. Pressure-sensitive manipulation 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
CN102027450B (zh) 2008-05-20 2015-05-13 思杰系统有限公司 由移动计算装置使用外部显示装置的方法和系统
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
ATE504155T1 (de) 2008-05-29 2011-04-15 Lg Electronics Inc Transparente anzeige und betriebsverfahren dafür
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 엘지전자 주식회사 휴대 단말기 및 그 제어방법
JP4896932B2 (ja) 2008-06-26 2012-03-14 京セラ株式会社 入力装置
WO2009155981A1 (en) 2008-06-26 2009-12-30 Uiq Technology Ab Gesture on touch sensitive arrangement
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
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 株式会社ソニー・コンピュータエンタテインメント メニュー画面表示方法およびメニュー画面表示装置
KR101540779B1 (ko) 2008-07-01 2015-07-29 엘지전자 주식회사 휴대 단말기 및 그 제어방법
EP2141574B1 (en) 2008-07-01 2017-09-27 LG Electronics Inc. Mobile terminal using proximity sensor and method of controlling the mobile terminal
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 任天堂株式会社 画像通信システム、画像通信装置、および画像通信プログラム
KR102056518B1 (ko) 2008-07-15 2019-12-16 임머숀 코퍼레이션 물리 기반 촉각 메시징을 위한 시스템 및 방법
KR20110063430A (ko) 2008-07-15 2011-06-10 구에누스 롤랜드 지휘자 중심 전자 음악 스탠드 시스템
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 삼성전자주식회사 사용자 명령 입력 방법 및 그 장치
KR20100010302A (ko) 2008-07-22 2010-02-01 엘지전자 주식회사 이동단말기 및 그 메뉴 표시방법
US9176620B2 (en) 2008-07-22 2015-11-03 Lg Electronics Inc. Mobile terminal and method for displaying information list thereof
KR20100010860A (ko) 2008-07-23 2010-02-02 엘지전자 주식회사 이동 단말기 및 그의 이벤트 제어방법
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
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
KR101505681B1 (ko) 2008-09-05 2015-03-30 엘지전자 주식회사 터치 스크린을 구비한 이동 단말기 및 이를 이용한 이미지 촬상 방법
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 ソニー株式会社 画像処理方法、画像処理装置、プログラム及び画像処理システム
KR101482125B1 (ko) 2008-09-09 2015-01-13 엘지전자 주식회사 휴대 단말기 및 그 동작방법
JP5346941B2 (ja) 2008-09-16 2013-11-20 パナソニック株式会社 データ表示装置、集積回路、データ表示方法、データ表示プログラム及び記録媒体
WO2010032598A1 (ja) 2008-09-17 2010-03-25 日本電気株式会社 入力装置及びその制御方法並びに入力装置を備えた電子機器
US9041650B2 (en) 2008-09-18 2015-05-26 Apple Inc. Using measurement of lateral force for a tracking input device
US20100070908A1 (en) 2008-09-18 2010-03-18 Sun Microsystems, Inc. System and method for accepting or rejecting suggested text corrections
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
EP2175344B1 (en) 2008-10-06 2020-02-12 Samsung Electronics Co., Ltd. Method and apparatus for displaying graphical user interface depending on a user's contact pattern
US9442648B2 (en) 2008-10-07 2016-09-13 Blackberry Limited Portable electronic device and method of controlling same
US20100088628A1 (en) 2008-10-07 2010-04-08 Sony Ericsson Mobile Communications Ab Live preview of open windows
EP2175357B1 (en) 2008-10-08 2012-11-21 Research In Motion Limited Portable electronic device and method of controlling same
CA2680666A1 (en) 2008-10-08 2010-04-08 Research In Motion Limited An 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
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
US9395867B2 (en) 2008-10-08 2016-07-19 Blackberry Limited Method and system for displaying an image on an electronic device
JP2010097353A (ja) 2008-10-15 2010-04-30 Access Co Ltd 情報端末
KR100961473B1 (ko) 2008-10-15 2010-06-08 주식회사 케이티 무선 인터넷 브라우저의 웹 페이지 내용을 메시징하는 이동단말 및 그 방법
KR100941512B1 (ko) 2008-10-15 2010-02-10 (주)엠쓰리모바일 스타일러스 펜
KR101510738B1 (ko) 2008-10-20 2015-04-10 삼성전자주식회사 휴대단말의 대기화면 구성 방법 및 장치
KR101569176B1 (ko) 2008-10-30 2015-11-20 삼성전자주식회사 오브젝트 실행 방법 및 장치
JP5540344B2 (ja) 2008-10-30 2014-07-02 シャープ株式会社 電子機器、メニューの選択方法、メニューの選択プログラム
WO2010051493A2 (en) 2008-10-31 2010-05-06 Nettoons, Inc. 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
US20100123686A1 (en) 2008-11-19 2010-05-20 Sony Ericsson Mobile Communications Ab Piezoresistive force sensor integrated in a display
JP4752900B2 (ja) 2008-11-19 2011-08-17 ソニー株式会社 画像処理装置、画像表示方法および画像表示プログラム
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
US8677287B2 (en) 2008-12-04 2014-03-18 Mitsubishi Electric Corporation Display input device and navigation device
DE112009003521T5 (de) 2008-12-04 2013-10-10 Mitsubishi Electric Corp. Anzeigeeingabevorrichtung
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
JP2010165337A (ja) 2008-12-15 2010-07-29 Sony Corp 情報処理装置、情報処理方法およびプログラム
CN102246126B (zh) 2008-12-15 2015-11-25 惠普开发有限公司 基于手势的编辑模式
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
KR101476088B1 (ko) 2008-12-18 2014-12-23 닛본 덴끼 가부시끼가이샤 슬라이드바 디스플레이 제어 장치 및 슬라이드바 디스플레이 제어 방법
KR101352264B1 (ko) 2008-12-18 2014-01-17 엘지디스플레이 주식회사 멀티 터치 감지방법 및 장치
US8289286B2 (en) 2008-12-19 2012-10-16 Verizon Patent And Licensing Inc. Zooming keyboard/keypad
US8331992B2 (en) 2008-12-19 2012-12-11 Verizon Patent And Licensing Inc. Interactive locked state mobile communication device
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
US8451236B2 (en) 2008-12-22 2013-05-28 Hewlett-Packard Development Company L.P. Touch-sensitive display screen with absolute and relative input modes
JP4975722B2 (ja) 2008-12-22 2012-07-11 京セラ株式会社 入力装置および入力装置の制御方法
US8686952B2 (en) 2008-12-23 2014-04-01 Apple Inc. Multi touch with multi haptics
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
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
JP4885938B2 (ja) 2008-12-25 2012-02-29 京セラ株式会社 入力装置
JP4746085B2 (ja) 2008-12-25 2011-08-10 京セラ株式会社 入力装置
JP4683126B2 (ja) 2008-12-26 2011-05-11 ブラザー工業株式会社 入力装置
US9131188B2 (en) 2008-12-30 2015-09-08 Lg Electronics Inc. Image display device and controlling method thereof
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
JP5173870B2 (ja) 2009-01-28 2013-04-03 京セラ株式会社 入力装置
US20100194693A1 (en) 2009-01-30 2010-08-05 Sony Ericsson Mobile Communications Ab Electronic apparatus, method and computer program with adaptable user interface environment
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
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 ソニー株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2010105246A2 (en) 2009-03-12 2010-09-16 Exbiblio B.V. Accessing resources based on capturing information from a rendered document
KR20190015624A (ko) 2009-03-12 2019-02-13 임머숀 코퍼레이션 표면-기반 햅틱 효과를 특징으로 하는 인터페이스에 대한 시스템 및 방법, 및 유형의 컴퓨터 판독가능 매체
WO2010105012A1 (en) 2009-03-12 2010-09-16 Immersion Corporation Systems and methods for a texture engine
US8255830B2 (en) 2009-03-16 2012-08-28 Apple Inc. 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
US10705701B2 (en) 2009-03-16 2020-07-07 Apple Inc. Device, method, and graphical user interface for moving a current position in content at a variable scrubbing rate
US20100241955A1 (en) 2009-03-23 2010-09-23 Microsoft Corporation Organization and manipulation of content items on a touch-sensitive display
US8499243B2 (en) 2009-03-23 2013-07-30 Panasonic Corporation Information processing device, information processing method, recording medium, and integrated circuit
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
US8878793B2 (en) * 2009-04-24 2014-11-04 Kyocera Corporation Input apparatus
US8884895B2 (en) 2009-04-24 2014-11-11 Kyocera Corporation Input apparatus
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
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
KR101560718B1 (ko) 2009-05-29 2015-10-15 엘지전자 주식회사 이동 단말기 및 이동 단말기에서의 정보 표시 방법
US8549432B2 (en) 2009-05-29 2013-10-01 Apple Inc. Radial menus
KR20100129424A (ko) 2009-06-01 2010-12-09 한국표준과학연구원 터치스크린의 접촉위치 및 접촉힘의 세기를 이용한 사용자 인터페이스 제공 방법 및 장치
US9372536B2 (en) 2009-06-05 2016-06-21 Empire Technology Development Llc Touch screen with tactile feedback
US9086875B2 (en) 2009-06-05 2015-07-21 Qualcomm Incorporated Controlling power consumption of a mobile device based on gesture recognition
US9009612B2 (en) 2009-06-07 2015-04-14 Apple Inc. Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface
US20100313158A1 (en) 2009-06-08 2010-12-09 Lg Electronics Inc. Method for editing data in mobile terminal and mobile terminal using the same
US9405456B2 (en) 2009-06-08 2016-08-02 Xerox Corporation Manipulation of displayed objects by virtual magnetism
US8621387B2 (en) 2009-06-08 2013-12-31 Apple Inc. User interface for 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 苏州瀚瑞微电子有限公司 一种在触摸屏上文件操作的方法
WO2010150893A1 (ja) 2009-06-26 2010-12-29 京セラ株式会社 通信機器及び電子機器
US20100328229A1 (en) 2009-06-30 2010-12-30 Research In Motion Limited Method and apparatus for providing tactile feedback
JP5370754B2 (ja) 2009-06-30 2013-12-18 ソニー株式会社 入力装置および入力方法
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 엘지전자 주식회사 이동 단말기 및 이것의 디스플레이 제어 방법
US8378798B2 (en) 2009-07-24 2013-02-19 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 京セラ株式会社 入力装置
US9740340B1 (en) 2009-07-31 2017-08-22 Amazon Technologies, Inc. Visually consistent arrays including conductive mesh
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
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
US8243983B2 (en) 2009-08-14 2012-08-14 Microsoft Corporation Graphically encoded data copy and paste
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
JP5310389B2 (ja) 2009-08-27 2013-10-09 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US8363020B2 (en) 2009-08-27 2013-01-29 Symbol Technologies, Inc. Methods and apparatus for pressure-based manipulation of content on a touch screen
JP2011048669A (ja) 2009-08-27 2011-03-10 Kyocera Corp 入力装置
JP2011048686A (ja) 2009-08-27 2011-03-10 Kyocera Corp 入力装置
JP5304544B2 (ja) 2009-08-28 2013-10-02 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US8390583B2 (en) 2009-08-31 2013-03-05 Qualcomm Incorporated Pressure sensitive user interface for mobile devices
JP5593655B2 (ja) 2009-08-31 2014-09-24 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
JP5267388B2 (ja) 2009-08-31 2013-08-21 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
KR20110023977A (ko) 2009-09-01 2011-03-09 삼성전자주식회사 휴대단말기의 위젯 관리 방법 및 장치
JP5508792B2 (ja) 2009-09-01 2014-06-04 オリンパス株式会社 画像処理方法、画像処理装置および画像処理プログラム
US9262063B2 (en) 2009-09-02 2016-02-16 Amazon Technologies, Inc. Touch-screen user interface
JP2011053974A (ja) 2009-09-02 2011-03-17 Sony Corp 操作制御装置、操作制御方法およびコンピュータプログラム
JP2011053971A (ja) 2009-09-02 2011-03-17 Sony Corp 情報処理装置、情報処理方法およびプログラム
JP5182260B2 (ja) 2009-09-02 2013-04-17 ソニー株式会社 操作制御装置、操作制御方法およびコンピュータプログラム
WO2011028944A1 (en) 2009-09-02 2011-03-10 Amazon Technologies, Inc. Touch-screen user interface
JP5310403B2 (ja) 2009-09-02 2013-10-09 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US8451238B2 (en) 2009-09-02 2013-05-28 Amazon Technologies, Inc. Touch-screen user interface
TW201109990A (en) 2009-09-04 2011-03-16 Higgstec Inc Touch gesture detecting method of a touch panel
KR101150545B1 (ko) 2009-09-07 2012-06-11 주식회사 팬택앤큐리텔 이동통신단말기 및 그것의 화면 전환 방법
JP5278259B2 (ja) 2009-09-07 2013-09-04 ソニー株式会社 入力装置、入力方法及びプログラム
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
EP3855297A3 (en) 2009-09-22 2021-10-27 Apple Inc. Device method and graphical user interface for manipulating user interface objects
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
JP5393377B2 (ja) 2009-09-25 2014-01-22 京セラ株式会社 入力装置
US8970507B2 (en) 2009-10-02 2015-03-03 Blackberry Limited Method of waking up and a portable electronic device configured to perform the same
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
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
KR101725888B1 (ko) 2009-11-13 2017-04-13 삼성전자주식회사 카메라 또는 원격 제어 장치에서의 이미지 제공 방법 및 그 장치
WO2011060382A1 (en) 2009-11-13 2011-05-19 Google Inc. Live wallpaper
JP2011107823A (ja) 2009-11-13 2011-06-02 Canon Inc 表示制御装置及び表示制御方法
KR101611440B1 (ko) 2009-11-16 2016-04-11 삼성전자주식회사 이미지 처리 방법 및 장치
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
US8432367B2 (en) 2009-11-19 2013-04-30 Google Inc. Translating user interaction with a touch screen into input commands
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
US8769428B2 (en) 2009-12-09 2014-07-01 Citrix Systems, Inc. Methods and systems for generating a combined display of taskbar button group entries generated on a local machine and on a remote machine
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
US9489073B2 (en) 2009-12-21 2016-11-08 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
US8525839B2 (en) 2010-01-06 2013-09-03 Apple Inc. Device, method, and graphical user interface for providing digital content products
US8698762B2 (en) 2010-01-06 2014-04-15 Apple Inc. Device, method, and graphical user interface for navigating and displaying content in context
US8793611B2 (en) 2010-01-06 2014-07-29 Apple Inc. Device, method, and graphical user interface for manipulating selectable user interface objects
US20110167339A1 (en) 2010-01-06 2011-07-07 Lemay Stephen O Device, Method, and Graphical User Interface for Attachment Viewing and Editing
US8698845B2 (en) 2010-01-06 2014-04-15 Apple Inc. Device, method, and graphical user interface with interactive popup views
US8510677B2 (en) 2010-01-06 2013-08-13 Apple Inc. Device, method, and graphical user interface for navigating through a range of values
US8438504B2 (en) 2010-01-06 2013-05-07 Apple Inc. Device, method, and graphical user interface for navigating through multiple viewing areas
US8862576B2 (en) 2010-01-06 2014-10-14 Apple Inc. Device, method, and graphical user interface for mapping directions between search results
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
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 情報処理装置、操作予測方法及び操作予測プログラム
JP5636678B2 (ja) 2010-01-19 2014-12-10 ソニー株式会社 表示制御装置、表示制御方法及び表示制御プログラム
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
KR101304321B1 (ko) 2010-01-22 2013-09-11 전자부품연구원 싱글 터치 압력에 기반한 ui 제공방법 및 이를 적용한 전자기기
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
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
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 삼성전자주식회사 휴대단말에서 복수의 정보들을 제공하는 방법 및 장치
KR101690786B1 (ko) 2010-02-12 2016-12-28 삼성전자주식회사 멀티태스킹 수행 장치 및 방법
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
CA2731772C (en) 2010-02-15 2014-08-12 Research In Motion Limited Graphical context short menu
CA2731745A1 (en) 2010-02-15 2011-08-15 Research In Motion Limited Contact objects
JP2011170538A (ja) 2010-02-17 2011-09-01 Sony Corp 情報処理装置、情報処理方法およびプログラム
JP2011197848A (ja) 2010-03-18 2011-10-06 Rohm Co Ltd タッチパネル入力装置
US9274682B2 (en) 2010-02-19 2016-03-01 Microsoft Technology Licensing, Llc Off-screen gestures to create on-screen input
US9965165B2 (en) 2010-02-19 2018-05-08 Microsoft Technology Licensing, Llc Multi-finger gestures
US9367205B2 (en) 2010-02-19 2016-06-14 Microsoft Technolgoy Licensing, Llc Radial menus with bezel 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
EP2360507B1 (en) 2010-02-22 2014-11-05 DST Innovations Limited Display elements
JP4891463B2 (ja) 2010-02-23 2012-03-07 京セラ株式会社 電子機器
US20130328770A1 (en) 2010-02-23 2013-12-12 Muv Interactive Ltd. System for projecting content to a display surface having user-controlled size, shape and location/direction and apparatus and methods useful in conjunction therewith
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 文字入力装置、文字入力方法及び文字入力プログラム
CN101840299A (zh) * 2010-03-18 2010-09-22 华为终端有限公司 一种触摸操作方法、装置和移动终端
US9436376B2 (en) 2010-03-18 2016-09-06 Kyocera Corporation Load required to cancel an input on a touch sensor is adjusted when the slide of a touch object is detected
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
US8756522B2 (en) 2010-03-19 2014-06-17 Blackberry Limited Portable electronic device and method of controlling same
US9069416B2 (en) 2010-03-25 2015-06-30 Google Inc. Method and system for selecting content using a touchscreen
US8725706B2 (en) 2010-03-26 2014-05-13 Nokia Corporation Method and apparatus for multi-item searching
US9383887B1 (en) 2010-03-26 2016-07-05 Open Invention Network Llc Method and apparatus of providing a customized user interface
US20130021288A1 (en) 2010-03-31 2013-01-24 Nokia Corporation Apparatuses, Methods and Computer Programs for a Virtual Stylus
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
US20110252376A1 (en) 2010-04-07 2011-10-13 Imran Chaudhri Device, Method, and Graphical User Interface for Managing Concurrently Open Software Applications
US8881060B2 (en) 2010-04-07 2014-11-04 Apple Inc. Device, method, and graphical user interface for managing folders
US10788976B2 (en) 2010-04-07 2020-09-29 Apple Inc. Device, method, and graphical user interface for managing folders with multiple pages
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
EP2375314A1 (en) 2010-04-08 2011-10-12 Research in Motion Limited Touch-sensitive device and method of control
JP5459031B2 (ja) 2010-04-13 2014-04-02 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
EP2378406B1 (en) 2010-04-13 2018-08-22 LG Electronics Inc. Mobile terminal and method of controlling operation of the mobile terminal
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 画像処理装置および方法、並びにプログラム
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 株式会社ニコン 撮像装置
US20110296351A1 (en) 2010-05-26 2011-12-01 T-Mobile Usa, Inc. User Interface with Z-axis Interaction and Multiple Stacks
US8860672B2 (en) 2010-05-26 2014-10-14 T-Mobile Usa, Inc. User interface with z-axis interaction
JP5190560B2 (ja) 2010-05-28 2013-04-24 楽天株式会社 コンテンツ出力装置、コンテンツ出力方法、コンテンツ出力プログラム、及びコンテンツ出力プログラムが記録された記録媒体
US8669946B2 (en) 2010-05-28 2014-03-11 Blackberry Limited Electronic device including touch-sensitive display and method of controlling same
US20130120280A1 (en) 2010-05-28 2013-05-16 Tim Kukulski System and Method for Evaluating Interoperability of Gesture Recognizers
KR101626301B1 (ko) 2010-05-28 2016-06-01 엘지전자 주식회사 휴대 단말기 및 그 동작 제어방법
EP2390772A1 (en) 2010-05-31 2011-11-30 Sony Ericsson Mobile Communications AB User interface with three dimensional user input
AP2012006600A0 (en) 2010-06-01 2012-12-31 Nokia Corp A method, a device and a system for receiving userinput
US9329767B1 (en) 2010-06-08 2016-05-03 Google Inc. User-specific customization based on characteristics of user-interaction
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
US20110304577A1 (en) 2010-06-11 2011-12-15 Sp Controls, Inc. Capacitive touch screen stylus
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
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
US8542205B1 (en) 2010-06-24 2013-09-24 Amazon Technologies, Inc. Refining search results based on touch gestures
US8477109B1 (en) 2010-06-24 2013-07-02 Amazon Technologies, Inc. Surfacing reference work entries on touch-sensitive displays
KR20120002727A (ko) 2010-07-01 2012-01-09 주식회사 팬택 3d ui 표시 장치
US20120001856A1 (en) 2010-07-02 2012-01-05 Nokia Corporation Responding to tactile inputs
GB201011146D0 (en) 2010-07-02 2010-08-18 Vodafone Ip Licensing Ltd Mobile computing device
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
US8854316B2 (en) 2010-07-16 2014-10-07 Blackberry Limited Portable electronic device with a touch-sensitive display and navigation device and method
US20120013542A1 (en) 2010-07-16 2012-01-19 Research In Motion Limited Portable electronic device and method of determining a location of a touch
KR20120009564A (ko) 2010-07-19 2012-02-02 삼성전자주식회사 3차원 마우스 포인터 생성방법 및 생성장치
EP2410413B1 (en) 2010-07-19 2018-12-12 Telefonaktiebolaget LM Ericsson (publ) Method for text input, apparatus, and computer program
US20120019448A1 (en) 2010-07-22 2012-01-26 Nokia Corporation User Interface with Touch Pressure Level Sensing
JP2012027875A (ja) 2010-07-28 2012-02-09 Sony Corp 電子機器、処理方法及びプログラム
JP5529663B2 (ja) 2010-07-28 2014-06-25 京セラ株式会社 入力装置
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
US9756163B2 (en) 2010-08-09 2017-09-05 Intelligent Mechatronic Systems, Inc. Interface between mobile device and computing device
US8698765B1 (en) 2010-08-17 2014-04-15 Amazon Technologies, Inc. Associating concepts within content items
JP5625612B2 (ja) 2010-08-19 2014-11-19 株式会社リコー 操作表示装置および操作表示方法
US8576184B2 (en) 2010-08-19 2013-11-05 Nokia Corporation Method and apparatus for browsing content files
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 삼성전자주식회사 디바이스상의 움직임 제어 방법 및 장치
US20120062470A1 (en) 2010-09-10 2012-03-15 Chang Ray L Power Management
US10645344B2 (en) 2010-09-10 2020-05-05 Avigilion Analytics Corporation Video system with intelligent visual display
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 京セラ株式会社 携帯電子機器、画面制御方法および画面制御プログラム
US9164670B2 (en) 2010-09-15 2015-10-20 Microsoft Technology Licensing, Llc Flexible touch-based scrolling
KR101657122B1 (ko) 2010-09-15 2016-09-30 엘지전자 주식회사 이동 단말기 및 그 제어 방법
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
CA2750352C (en) 2010-09-24 2019-03-05 Research In Motion Limited Method for conserving power on a portable electronic device and a portable electronic device configured for the same
WO2012037664A1 (en) 2010-09-24 2012-03-29 Research In Motion Limited Portable electronic device and method of controlling same
JP5959797B2 (ja) 2010-09-28 2016-08-02 京セラ株式会社 入力装置及び入力装置の制御方法
US9030419B1 (en) 2010-09-28 2015-05-12 Amazon Technologies, Inc. Touch and force user interface navigation
JP5725533B2 (ja) 2010-09-29 2015-05-27 Necカシオモバイルコミュニケーションズ株式会社 情報処理装置および入力方法
US20120084644A1 (en) 2010-09-30 2012-04-05 Julien Robert Content preview
US8817053B2 (en) 2010-09-30 2014-08-26 Apple Inc. Methods and systems for opening a file
KR101685991B1 (ko) 2010-09-30 2016-12-13 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법
US9323442B2 (en) 2010-09-30 2016-04-26 Apple Inc. Managing items in a user interface
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 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
KR20130052743A (ko) 2010-10-15 2013-05-23 삼성전자주식회사 항목 선택 방법
JP5751934B2 (ja) 2010-10-15 2015-07-22 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
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
US8754860B2 (en) 2010-11-05 2014-06-17 Apple Inc. Device, method, and graphical user interface for manipulating soft keyboards
JP6203637B2 (ja) 2010-11-09 2017-09-27 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 触覚型フィードバックを備えたユーザインタフェース
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
US9244606B2 (en) 2010-12-20 2016-01-26 Apple Inc. Device, method, and graphical user interface for navigation of concurrently open software applications
KR101645685B1 (ko) 2010-12-20 2016-08-04 애플 인크. 이벤트 인식
JP5698529B2 (ja) 2010-12-29 2015-04-08 任天堂株式会社 表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法
US9354804B2 (en) 2010-12-29 2016-05-31 Microsoft Technology Licensing, Llc Touch event anticipation in a computing device
KR101701852B1 (ko) 2010-12-29 2017-02-13 엘지전자 주식회사 이동단말기 및 그 제어방법
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
US9471145B2 (en) 2011-01-06 2016-10-18 Blackberry Limited Electronic device and method of displaying information in response to a gesture
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
JP5537458B2 (ja) 2011-02-10 2014-07-02 シャープ株式会社 タッチ入力可能な画像表示装置、表示装置の制御装置、及びコンピュータプログラム
CN106293580B (zh) 2011-02-10 2020-06-09 三星电子株式会社 便携式设备及其控制方法
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
WO2012108214A1 (ja) 2011-02-10 2012-08-16 京セラ株式会社 入力装置
US10133388B2 (en) 2011-02-10 2018-11-20 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
US9727177B2 (en) 2011-02-23 2017-08-08 Kyocera Corporation Electronic device with a touch sensor
US8593420B1 (en) 2011-03-04 2013-11-26 Amazon Technologies, Inc. Providing tactile output and interaction
WO2012125990A2 (en) 2011-03-17 2012-09-20 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
US20120249853A1 (en) 2011-03-28 2012-10-04 Marc Krolczyk Digital camera for reviewing related images
US11580155B2 (en) 2011-03-28 2023-02-14 Kodak Alaris Inc. Display device for displaying related digital images
US9220062B2 (en) 2011-03-30 2015-12-22 Nokia Technologies Oy Method and apparatus for low-power browsing
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
US20120256846A1 (en) 2011-04-05 2012-10-11 Research In Motion Limited Electronic device and method of controlling same
US20120256857A1 (en) 2011-04-05 2012-10-11 Mak Genevieve Elizabeth 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
US8736716B2 (en) 2011-04-06 2014-05-27 Apple Inc. Digital camera having variable duration burst mode
WO2012137946A1 (ja) 2011-04-06 2012-10-11 京セラ株式会社 電子機器、操作制御方法および操作制御プログラム
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
WO2012153555A1 (ja) 2011-05-12 2012-11-15 アルプス電気株式会社 入力装置及び前記入力装置を用いた複数点の荷重検出方法
US8952987B2 (en) 2011-05-19 2015-02-10 Qualcomm Incorporated User interface elements augmented with force detection
US9152288B2 (en) 2011-05-19 2015-10-06 Microsoft Technology Licensing, Llc Remote multi-touch
EP2710486B1 (en) 2011-05-20 2021-06-30 Citrix Systems, Inc. Shell integration on a mobile device for an application executing remotely on a server
CN103999028B (zh) 2011-05-23 2018-05-15 微软技术许可有限责任公司 不可见控件
WO2012162399A2 (en) 2011-05-23 2012-11-29 Visible Market Inc. Dynamic visual statistical data display and navigation system and method for limited display device
KR101240406B1 (ko) 2011-05-24 2013-03-11 주식회사 미성포리테크 힘센서를 이용한 휴대형 정보통신 단말기의 프로그램 동작 제어 방법
WO2012164895A1 (ja) 2011-05-27 2012-12-06 京セラ株式会社 電子機器
US9104307B2 (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
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US20120304132A1 (en) 2011-05-27 2012-11-29 Chaitanya Dev Sareen Switching back to a previously-interacted-with application
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
KR101802759B1 (ko) 2011-05-30 2017-11-29 엘지전자 주식회사 이동 단말기 및 이것의 디스플레이 제어 방법
US9092130B2 (en) 2011-05-31 2015-07-28 Apple Inc. Devices, methods, and graphical user interfaces for document manipulation
KR101290145B1 (ko) 2011-05-31 2013-07-26 삼성전자주식회사 터치 스크린 제어 방법 및 장치, 컴퓨터에 의해 독출될 수 있는 기록 매체, 그리고 단말장치
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
WO2012162895A1 (en) 2011-06-03 2012-12-06 Google Inc. Gestures for selecting text
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
CN102819331B (zh) 2011-06-07 2016-03-02 联想(北京)有限公司 移动终端及其触摸输入方法
WO2012169176A1 (ja) 2011-06-07 2012-12-13 パナソニック株式会社 電子機器
WO2012167735A1 (zh) 2011-06-07 2012-12-13 联想(北京)有限公司 电子设备、触摸输入方法和控制方法
KR20120135723A (ko) 2011-06-07 2012-12-17 김연수 터치패널 타입의 신호입력장치
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
WO2011137862A2 (zh) 2011-07-04 2011-11-10 华为终端有限公司 一种实现虚拟手写输入的方法及电子装置
US20130014057A1 (en) 2011-07-07 2013-01-10 Thermal Matrix USA, Inc. Composite control for a graphical user interface
WO2013008649A1 (ja) 2011-07-11 2013-01-17 Kddi株式会社 指の接触による入力を複数のモードで実行可能なユーザインタフェース装置、入力操作判定方法及びプログラム
US9158455B2 (en) 2011-07-12 2015-10-13 Apple Inc. Multifunctional environment for image cropping
US20130016042A1 (en) 2011-07-12 2013-01-17 Ville Makinen Haptic device with touch gesture interface
JP5325943B2 (ja) 2011-07-12 2013-10-23 富士フイルム株式会社 情報処理装置、情報処理方法及びプログラム
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 엘지전자 주식회사 이동 단말기 및 이동 단말기의 제어 방법
KR20140044881A (ko) 2011-08-05 2014-04-15 톰슨 라이센싱 비디오 피킹
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
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株式会社 押圧による画像のズームが可能なユーザインタフェース装置、画像ズーム方法及びプログラム
US9071854B2 (en) 2011-09-12 2015-06-30 Disney Enterprises, Inc. System and method for transmitting a services list to a playback device
US8976128B2 (en) 2011-09-12 2015-03-10 Google Technology Holdings LLC Using pressure differences with a touch-sensitive display screen
US9069460B2 (en) 2011-09-12 2015-06-30 Google Technology Holdings LLC Using pressure differences with a touch-sensitive display screen
US9612670B2 (en) 2011-09-12 2017-04-04 Microsoft Technology Licensing, Llc Explicit touch selection and cursor placement
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
US8959430B1 (en) 2011-09-21 2015-02-17 Amazon Technologies, Inc. Facilitating selection of keys related to a selected key
US20130074003A1 (en) 2011-09-21 2013-03-21 Nokia Corporation Method and apparatus for integrating user interfaces
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 联想(北京)有限公司 控制方法及电子设备
US20130086056A1 (en) 2011-09-30 2013-04-04 Matthew G. Dyor Gesture based context menus
US9395800B2 (en) 2011-09-30 2016-07-19 Qualcomm Incorporated Enabling instant handwritten input on mobile computing devices
US20130082824A1 (en) 2011-09-30 2013-04-04 Nokia Corporation Feedback response
US9342235B2 (en) 2011-10-03 2016-05-17 Kyocera Corporation Device, method, and storage medium storing program
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
JP5527304B2 (ja) 2011-10-17 2014-06-18 株式会社デンソー 入力装置
US8634807B2 (en) 2011-10-17 2014-01-21 Blackberry Limited System and method for managing electronic groups
US9170607B2 (en) 2011-10-17 2015-10-27 Nokia Technologies Oy Method and apparatus for determining the presence of a device for executing operations
EP2584463B1 (en) 2011-10-18 2017-09-13 BlackBerry Limited Method of rendering a user interface
EP2584445A1 (en) 2011-10-18 2013-04-24 Research In Motion Limited Method of animating a rearrangement of ui elements on a display screen of an eletronic device
EP2584450A3 (en) 2011-10-18 2014-05-21 BlackBerry Limited Method of modifying rendered attributes of list elements in a user interface
US8810535B2 (en) 2011-10-18 2014-08-19 Blackberry Limited Electronic device and method of controlling same
EP2584464B1 (en) 2011-10-18 2020-02-19 BlackBerry Limited Method of rendering a user interface
CA2792662C (en) 2011-10-18 2017-11-14 Research In Motion Limited Method of rendering a user interface
US9389707B2 (en) 2011-10-28 2016-07-12 Atmel Corporation Active stylus with configurable touch sensor
US20130111579A1 (en) 2011-10-31 2013-05-02 Nokia Corporation Electronic device mode, associated apparatus and methods
US20130111345A1 (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
US20130111378A1 (en) 2011-10-31 2013-05-02 Nokia Corporation Portable electronic device, 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
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
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
JP2013101465A (ja) 2011-11-08 2013-05-23 Sony Corp 情報処理装置、情報処理方法およびコンピュータプログラム
US9141280B2 (en) 2011-11-09 2015-09-22 Blackberry Limited Touch-sensitive display method and apparatus
JP5884421B2 (ja) 2011-11-14 2016-03-15 ソニー株式会社 画像処理装置、画像処理装置の制御方法およびプログラム
KR101888457B1 (ko) 2011-11-16 2018-08-16 삼성전자주식회사 복수 개의 어플리케이션을 실행하는 터치스크린을 가지는 장치 및 그 제어 방법
JP5520918B2 (ja) 2011-11-16 2014-06-11 富士ソフト株式会社 タッチパネル操作方法及びプログラム
EP2780783B1 (en) 2011-11-18 2022-12-28 Sentons Inc. Detecting touch input force
US9449476B2 (en) 2011-11-18 2016-09-20 Sentons Inc. Localized haptic feedback
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
CN102722312B (zh) 2011-12-16 2015-12-16 江南大学 一种基于压力传感器的动作趋势预测交互体验方法及系统
US9195362B2 (en) 2011-12-16 2015-11-24 Blackberry Limited Method of rendering a user interface
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 装置、方法、及びプログラム
WO2013094371A1 (ja) 2011-12-22 2013-06-27 ソニー株式会社 表示制御装置、表示制御方法およびコンピュータプログラム
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
CN104011637A (zh) 2012-01-09 2014-08-27 爱尔比奎特公司 用于移动设备的用户界面
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 画像処理装置、画像処理方法および記録媒体
KR101973631B1 (ko) 2012-02-01 2019-04-29 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
US20130198690A1 (en) 2012-02-01 2013-08-01 Microsoft Corporation Visual indication of graphical user interface relationship
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
US9778706B2 (en) 2012-02-24 2017-10-03 Blackberry Limited Peekable user interface on a portable electronic device
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 삼성전자 주식회사 락스크린 운용 방법 및 이를 지원하는 단말기
TWI519155B (zh) 2012-02-24 2016-01-21 宏達國際電子股份有限公司 影像連續拍攝方法與相關影像擷取系統
KR101356368B1 (ko) 2012-02-24 2014-01-29 주식회사 팬택 어플리케이션 전환 장치 및 방법
US9898174B2 (en) 2012-02-28 2018-02-20 Google Llc Previewing expandable content items
KR20130099647A (ko) 2012-02-29 2013-09-06 한국과학기술원 사이드 인터페이스를 이용한 사용자 단말 컨텐츠 제어방법 및 제어장치
US9817568B2 (en) 2012-02-29 2017-11-14 Blackberry Limited System and method for controlling an electronic device
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
US9134807B2 (en) 2012-03-02 2015-09-15 Microsoft Technology Licensing, Llc Pressure sensitive key normalization
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
US20150029149A1 (en) 2012-03-13 2015-01-29 Telefonaktiebolaget L M Ericsson (Publ) 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
US10673691B2 (en) 2012-03-24 2020-06-02 Fred Khosropour User interaction platform
CN102662573B (zh) 2012-03-24 2016-04-27 上海量明科技发展有限公司 通过触压获得选择项的方法及终端
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 华为技术有限公司 解锁屏幕保护的方法及用户设备
US11474645B2 (en) 2012-03-27 2022-10-18 Nokia Technologies Oy Method and apparatus for force sensing
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
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
EP2839366A4 (en) 2012-04-18 2016-05-11 Nokia Technologies Oy DISPLAY DEVICE WITH HAPTIC RETURN
TWI459287B (zh) 2012-04-20 2014-11-01 Hon Hai Prec Ind Co Ltd 觸控操作方法及使用其的電子系統
EP2842089A4 (en) 2012-04-26 2015-04-29 Blackberry Ltd METHOD AND DEVICE FOR ADMINISTERING AND CONSIDERING CALENDAR EVENT INFORMATION
WO2013161163A1 (ja) 2012-04-27 2013-10-31 パナソニック株式会社 触感呈示装置、触感呈示方法、駆動信号生成装置および駆動信号生成方法
EP2660702B1 (en) 2012-05-02 2020-12-30 Sony Corporation Technique for displaying on the basis of duration of operation of an input device
JP6082458B2 (ja) 2012-05-09 2017-02-15 アップル インコーポレイテッド ユーザインタフェース内で実行される動作の触知フィードバックを提供するデバイス、方法、及びグラフィカルユーザインタフェース
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
CN107728906B (zh) 2012-05-09 2020-07-31 苹果公司 用于移动和放置用户界面对象的设备、方法和图形用户界面
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
EP3410287B1 (en) 2012-05-09 2022-08-17 Apple Inc. Device, method, and graphical user interface for selecting user interface 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
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
CN109298789B (zh) 2012-05-09 2021-12-31 苹果公司 用于针对激活状态提供反馈的设备、方法和图形用户界面
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
WO2013169845A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for scrolling nested regions
WO2013169299A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Haptic feedback based on input progression
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
EP2847659B1 (en) 2012-05-09 2019-09-04 Apple Inc. Device, method, and graphical user interface for transitioning between display states in response to a gesture
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
JP6023879B2 (ja) 2012-05-18 2016-11-09 アップル インコーポレイテッド 指紋センサ入力に基づくユーザインタフェースを操作するための機器、方法、及びグラフィカルユーザインタ−フェース
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
EP2669786A3 (en) 2012-05-29 2017-09-13 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 北京小米科技有限责任公司 应用于触屏设备的用户界面交互方法、装置及触屏设备
US9063595B2 (en) 2012-06-08 2015-06-23 Apple Inc. Devices and methods for reducing power usage of a touch-sensitive display
KR101909030B1 (ko) 2012-06-08 2018-10-17 엘지전자 주식회사 비디오 편집 방법 및 이를 위한 디지털 디바이스
CN102819401A (zh) 2012-06-08 2012-12-12 中标软件有限公司 一种Android操作系统及其桌面图标布置方法
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
US20130339001A1 (en) 2012-06-19 2013-12-19 Microsoft Corporation Spelling candidate generation
KR20130142301A (ko) 2012-06-19 2013-12-30 삼성전자주식회사 단말기의 메뉴환경 설정 장치 및 방법
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 情報処理装置、選択操作検出方法およびプログラム
JP6267961B2 (ja) 2012-08-10 2018-01-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 映像提供方法および送信装置
KR101946365B1 (ko) 2012-08-20 2019-02-11 엘지전자 주식회사 디스플레이 디바이스 및 그 제어 방법
US9280206B2 (en) 2012-08-20 2016-03-08 Samsung Electronics Co., Ltd. System and method for perceiving images with multimodal feedback
US9250783B2 (en) 2012-08-21 2016-02-02 Apple Inc. Toggle gesture during drag gesture
US9720586B2 (en) 2012-08-21 2017-08-01 Nokia Technologies Oy Apparatus and method for providing for interaction with content within a digital bezel
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
JP6077794B2 (ja) 2012-08-29 2017-02-08 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
KR20140029720A (ko) 2012-08-29 2014-03-11 엘지전자 주식회사 이동단말 제어방법
KR101956170B1 (ko) 2012-08-29 2019-03-08 삼성전자 주식회사 카메라의 이미지 저장 장치 및 방법
US20140067293A1 (en) 2012-09-05 2014-03-06 Apple Inc. Power sub-state monitoring
JP5977627B2 (ja) 2012-09-07 2016-08-24 シャープ株式会社 情報処理装置、情報処理方法およびプログラム
US9696879B2 (en) 2012-09-07 2017-07-04 Google Inc. Tab scrubbing using navigation gestures
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
US9785217B2 (en) 2012-09-28 2017-10-10 Synaptics Incorporated System and method for low power input object detection and interaction
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
WO2014055942A1 (en) 2012-10-05 2014-04-10 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
WO2014092038A1 (ja) 2012-12-12 2014-06-19 株式会社村田製作所 タッチ式入力装置
US20140168093A1 (en) 2012-12-13 2014-06-19 Nvidia Corporation Method and system of emulating pressure sensitivity on a surface
US20140168153A1 (en) 2012-12-17 2014-06-19 Corning Incorporated Touch screen systems and methods based on touch location and touch force
CN103870190B (zh) 2012-12-17 2018-03-27 联想(北京)有限公司 一种控制电子设备的方法及电子设备
KR20140079110A (ko) 2012-12-18 2014-06-26 엘지전자 주식회사 이동 단말기 및 그 동작 방법
KR101457632B1 (ko) 2012-12-20 2014-11-10 주식회사 팬택 프로그램 알림 기능을 갖는 휴대용 전자 기기 및 이를 위한 프로그램 알림 방법
CN104380231B (zh) 2012-12-20 2017-10-24 英特尔公司 包括压力传感器的触摸屏
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
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
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
AU2013368440B2 (en) 2012-12-29 2017-01-05 Apple Inc. Device, method, and graphical user interface for navigating user interface hierarchies
CN104903834B (zh) 2012-12-29 2019-07-05 苹果公司 用于在触摸输入到显示输出关系之间过渡的设备、方法和图形用户界面
KR102001332B1 (ko) 2012-12-29 2019-07-17 애플 인크. 콘텐츠를 스크롤할지 선택할지 결정하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
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
JP6075854B2 (ja) 2013-01-21 2017-02-08 キヤノン株式会社 表示制御装置、その制御方法、およびプログラム、並びに撮像装置および記憶媒体
US9141259B2 (en) 2013-01-21 2015-09-22 International Business Machines Corporation Pressure navigation on a touch sensitive user interface
KR20140097902A (ko) 2013-01-30 2014-08-07 삼성전자주식회사 햅틱 패턴을 생성하는 휴대 단말 및 방법
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
KR102133410B1 (ko) 2013-01-31 2020-07-14 삼성전자 주식회사 멀티태스킹 운용 방법 및 이를 지원하는 단말기
US9652136B2 (en) 2013-02-05 2017-05-16 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 삼성전자 주식회사 휴대 단말기의 사용자 인터페이스 제공 방법 및 장치
JP2014165663A (ja) 2013-02-25 2014-09-08 Kyocera Corp 携帯端末装置、プログラムおよび携帯端末装置の制御方法
CN103186345B (zh) 2013-02-25 2016-09-14 北京极兴莱博信息科技有限公司 一种文段选择方法及装置
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
EP2973406B1 (en) 2013-03-14 2019-11-27 NIKE Innovate C.V. Athletic attribute determinations from image data
US10203815B2 (en) 2013-03-14 2019-02-12 Apple Inc. Application-based touch sensitivity
US9690476B2 (en) 2013-03-14 2017-06-27 Blackberry Limited Electronic device and method of displaying information in response to a gesture
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
US20140267114A1 (en) 2013-03-15 2014-09-18 Tk Holdings, Inc. Adaptive human machine interfaces for pressure sensitive control in a distracted operating environment and method of using the same
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
CN110851034B (zh) 2013-03-15 2024-03-15 苹果公司 用于管理用户界面的方法和电子设备
US9355472B2 (en) 2013-03-15 2016-05-31 Apple Inc. Device, method, and graphical user interface for adjusting the appearance of a control
US9451230B1 (en) 2013-03-15 2016-09-20 Google Inc. Playback adjustments for digital media items
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 옥윤선 모바일 메신저 기반의 드래그를 이용한 정보전달 방법, 그리고 모바일 메신저 기반의 드래그를 이용한 정보전달을 위한 모바일단말
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
US9146672B2 (en) 2013-04-10 2015-09-29 Barnes & Noble College Booksellers, Llc Multidirectional swipe key for virtual keyboard
WO2014178842A1 (en) 2013-04-30 2014-11-06 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 삼성전자주식회사 휴대 장치 및 휴대 장치의 오브젝트 표시 방법
US20160085385A1 (en) 2013-05-08 2016-03-24 Nokia Technologies Oy 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 삼성전자주식회사 알림 기능 운용 방법 및 이를 지원하는 전자 장치
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
US9307112B2 (en) 2013-05-31 2016-04-05 Apple Inc. Identifying dominant and non-dominant images in a burst mode capture
US10282067B2 (en) 2013-06-04 2019-05-07 Sony Corporation Method and apparatus of controlling an interface based on touch operations
US9477393B2 (en) 2013-06-09 2016-10-25 Apple Inc. Device, method, and graphical user interface for displaying application status information
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
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
CN103309618A (zh) 2013-07-02 2013-09-18 姜洪明 移动操作系统
US20150012861A1 (en) 2013-07-02 2015-01-08 Dropbox, Inc. Syncing content clipboard
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 엘지전자 주식회사 이동 단말기 및 이의 제어방법
KR102101741B1 (ko) 2013-08-16 2020-05-29 엘지전자 주식회사 이동 단말기 및 이의 제어방법
US10108310B2 (en) 2013-08-16 2018-10-23 Marvell World Trade Ltd Method and apparatus for icon based application control
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
US9898087B2 (en) 2013-10-08 2018-02-20 Tk Holdings Inc. Force-based touch interface with integrated multi-sensory feedback
WO2015060280A1 (ja) * 2013-10-25 2015-04-30 株式会社村田製作所 電子機器、および、操作入力プログラム
US9407964B2 (en) 2013-10-25 2016-08-02 Verizon Patent And Licensing Inc. Method and system for navigating video to an instant time
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 三星电子(中国)研发中心 一种虚拟键盘调整方法和移动终端
US9111076B2 (en) 2013-11-20 2015-08-18 Lg Electronics Inc. Mobile terminal and control method thereof
JP6177669B2 (ja) 2013-11-20 2017-08-09 株式会社Nttドコモ 画像表示装置およびプログラム
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 キヤノン株式会社 画像処理装置、触感制御方法及びプログラム
CN114237485A (zh) 2013-12-11 2022-03-25 北京三星通信技术研究有限公司 触控操作的方法及装置
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
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
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
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 深圳富泰宏精密工业有限公司 触控界面多任务切换方法、系统及电子装置
US10126807B2 (en) 2014-02-18 2018-11-13 Cambridge Touch Technologies Ltd. Dynamic switching of power modes for touch screens using force touch
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
US20150268802A1 (en) 2014-03-24 2015-09-24 Hideep Inc. Menu control method and menu control device including touch input device performing the same
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
KR102096146B1 (ko) 2014-09-02 2020-04-28 애플 인크. 가변 햅틱 출력을 위한 시맨틱 프레임워크
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
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
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
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
US9639184B2 (en) 2015-03-19 2017-05-02 Apple Inc. Touch input cursor manipulation
US9785305B2 (en) 2015-03-19 2017-10-10 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
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US10200598B2 (en) 2015-06-07 2019-02-05 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
US9891811B2 (en) 2015-06-07 2018-02-13 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
US10346030B2 (en) 2015-06-07 2019-07-09 Apple Inc. Devices and methods for navigating between user interfaces
US10319177B2 (en) 2015-07-31 2019-06-11 Novomatic Ag User interface with slider and popup window feature
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
US20170046058A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices, Methods, and Graphical User Interfaces for Adjusting User Interface Objects
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
US10613673B2 (en) 2016-08-25 2020-04-07 Parade Technologies, Ltd. Signal conditioning on touch-enabled devices using 3D touch
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176174A (ja) 2009-01-27 2010-08-12 Fujifilm Corp 電子機器および電子機器の操作入力制御方法、並びに電子機器の操作入力制御プログラム
US20110248948A1 (en) * 2010-04-08 2011-10-13 Research In Motion Limited Touch-sensitive device and method of control
US20110279381A1 (en) * 2010-05-14 2011-11-17 Research In Motion Limited Method of providing tactile feedback and electronic device
JP2015521315A (ja) 2012-05-09 2015-07-27 アップル インコーポレイテッド ユーザ接触に応答して追加情報を表示するための、デバイス、方法、及びグラフィカルユーザインタフェース

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102033863B1 (ko) 세기에 기초하여 터치 입력을 프로세싱하기 위한 디바이스 및 방법
AU2022224714B2 (en) Devices and methods for interacting with an application switching user interface
KR101981908B1 (ko) 사용자 인터페이스들 사이에 내비게이팅하고 제어 객체들과 상호작용하기 위한 디바이스, 방법, 및 그래픽 사용자 인터페이스
US20190346986A1 (en) Devices, Methods, and Graphical User Interfaces for Touch Input Processing
US11120097B2 (en) Device, method, and graphical user interface for managing website presentation settings
US10067653B2 (en) Devices and methods for processing touch inputs based on their intensities
CN111026306B (zh) 用于触摸输入处理的设备、方法和图形用户界面
JP2023539880A (ja) ハンドジェスチャを使用したユーザインタフェースのナビゲーション
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
US20230393719A1 (en) Sticker creation for messaging

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right