2012-03-04 2 views
1

UIButton이 있습니다. 사용자가 상기 버튼을 가볍게 두드리면 손가락의 x 좌표를 어떻게 얻을 수 있습니까? 나는 그것이 touchesBegan을 포함 할 것이라고 생각하고있다. 그러나 "touchesBegan"이 버튼에서 발생했다면 어떻게 값을 얻을 수 있을까? 그리고 버튼의 x, y, 너비 및 높이를 모니터링하고 내 터치가 해당 영역에 있는지 확인하는 것 외에는 코드가 처리 할 수 ​​있도록 버튼의 사용자 상호 작용을 비활성화해야합니다. xib 재료로 지어진다. 감사!iOS UIButton을 두드리는 손가락 x 좌표

답변

9

"탭"은 일반적으로 버튼 내부의 터치 다운이며 버튼 내부의 터치 업으로 간주됩니다. 터치 다운 인사이드 이벤트 또는 터치 업 인사이드 이벤트 (또는 둘 다)를 원하는지 알아야합니다.

터치 다운 내부 이벤트가 필요하다고 가정 해 보겠습니다. (

당신이 펜촉의 버튼을 만드는 경우
- (IBAction)buttonWasTouched:(UIButton *)button forEvent:(UIEvent *)event { 
    NSSet *touches = [event touchesForView:button]; 
    NSLog(@"button:%@ touches:%@", button, touches); 
} 

, 뷰 컨트롤러의 buttonWasTouched:forEvent: 행동의 "터치 다운"출구 버튼을 컨트롤 버튼으로 클릭하고 연결 :보기 컨트롤러에서이 같은 방법을 쓰기 아마도 File 's Owner입니다).

코드에서 단추를 만드는 경우 을 단추에 보내 UIControlEventTouchDown 이벤트를보기 컨트롤러의 buttonWasTouched:forEvent: 동작에 연결하십시오.

터치 업 이벤트를 잡으려면 펜촉의 "Touch Up Inside"콘센트에 연결하거나 UIControlEventTouchUpInside 코드를 사용하십시오.

내 .h 파일에
+0

nib 파일의 내부에서 터치 업에 연결된 IBAction이 있습니다. 또한 IBAutlet이 nib 파일의 버튼에 연결되어 있습니다. .m 파일에 복사하여 코드를 복사하면 앱이 있습니다. SigAbrt와 결빙. –

+0

[예외 중단 점 설정] (http://stackoverflow.com/questions/4961770/run-stop-on-objective-c-exception-in-xcode-4)이 필요합니다. 그런 다음 질문을 편집하여 예외의 스택 추적에 붙여 넣어야합니다. 또한 예외 및 관련 코드를 트리거하는 코드를 붙여 넣으십시오. –

+0

이전 메모에 나열된 내용을 제외하고는 완전히 비어있는 프로젝트 파일이지만 위의 코드를 호출해도 중단 점이 발생합니다. 스택 추적이 무엇인지 모르겠습니다. 터치를 시작하고 터치를 시작하는 방법은 UIButton을 만지기 시작했는지 확인하십시오. 그렇게 쉬운 것 같습니다. –

관련 문제