2009-09-09 1 views
1

저는 아이폰이 없으므로 핸드폰으로 월 130 달러를 지불하고 싶지 않습니다. (나는 대부분 내 시간에 자동차를 떠난다. 때로는 주말 전체를 떠난다.) 그러나 나는이 기술을 모바일 컴퓨팅 플랫폼으로 삼고있다. (잔인한 운명.) 내가 가장 좋아하는 것 중 하나는 멀티 터치 기능이다.멀티 터치 기능이 API를 어떻게 보입니까? (IPhone/OS X)

API 관점에서는 어떻게 보입니까? OS에는 사용자가 수행 한 작업을 기반으로 이벤트를 인식하고 전달하는 "제스처"가 있습니까, 아니면 "터치 및 릴리스"이벤트 목록을 해석하는 데 필요한 응용 프로그램입니까? 얼마나 많은 점수를 읽을 수 있습니까? 2, 3 ... 무제한? "멀티 터치"기능이있는 모니터가있는 경우 Mac OS X에이 기능이 있습니까?

+3

제쳐두고 iPod touch를 구입하면 훨씬 저렴한 가격 (계속 요금 없음)으로 개발할 수 있습니다. – Ray

+0

OSX/Cocoa에는 SDK 및 에뮬레이터가 제공되지 않습니까? 나는 Palm OS가 항상 가지고 있다는 것을 알고 있으므로, 하드웨어 없이도 앱을 테스트해볼 수 있습니다. 순수한 질문에 대해 미안 해요, 저는 iPerson이 아닙니다 :) – DVK

+0

Mac에서 실행되는 무료 XCode에는 iPhone 시뮬레이터가 있지만 실제로 손가락을 사용하여 mutli-touch를 시뮬레이션 할 수는 없습니다. 유사 멀티 터치 입력 메커니즘은 매우 어렵습니다. 하나의 손가락 터치는 마우스 클릭 일뿐입니다. 클릭과 함께 옵션 키와 Shift 키를 사용하여 두 손가락으로 터치 할 수 있습니다. 트랙 패드가 Cocoa Touch 터치 메커니즘을 모방하는 데 유용했다면 좋았을 것입니다. – mahboudz

답변

3

당신은 항상 지원 무엇의 더 나은 아이디어를 얻을 the documentation 좀 걸릴 수 있지만, 일반적인 방법이 구현은 다음과 같습니다

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; 
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; 

당신이 아래로 살짝 누르면, touchesBegan는 세트라고합니다 단지 시작된 접촉의. 현재 화면에 표시된 모든 터치를 검색하려면 event.allTouches을 검색하십시오.

마찬가지로 손가락이 움직이거나 화면에서 제거되면 명백한 동작이 발생합니다. touchesCancelled 메서드는 주로 스크롤 뷰 내부에서 무언가를 탭할 수있는 UIScrollView을 지원하는 데 사용됩니다. 특정 조건이 충족되면 스크롤 뷰 자체를 드래그하여 하위 뷰와 상호 작용합니다 (스크롤 뷰는 스크롤을 시작할 때의 서브 뷰).

볼 수있는 내장 제스처는 없지만 시스템에서 처리하는 내장 제스처가 있습니다 (예 : 테이블의 행을 스 와이프하여 삭제하고 UIScrollView으로 핀치 확대하는 등). .