2010-01-23 6 views
2

언론/출시 이벤트를 추적하고자하는 UIButton이있는 문제가 있습니다. 그래서 Touch Down/Touch Up 이벤트에 집중하고 있습니다. 유감스럽게도 특정 상황에서는 터치 업 이벤트를 추적하지 않습니다 (예 : 경고 팝업 창이 표시되는 경우).UIButton이 해제 된 시점을 어떻게 알 수 있습니까?

- (IBAction)buttonDown:(id)sender; 
- (IBAction)buttonUp:(id)sender; 

어떻게 버튼 상관없이 이유, 밀어/정상 상태에서 이동하지 않을 때 뷰 컨트롤러가 통지되어 있는지 확인합니까?

+0

지금까지 해결할 수 있었던 유일한 방법은'button.state' 속성을 폴링하고 정상으로 돌아 왔을 때 응답하는 것입니다. 이것은 분명히 차선책입니다. – sehugg

답변

0

당신은 터치뿐만 아니라 이벤트를 취소 추적해야합니다. 그렇게해야합니다.

편집 : 음, 무엇 약 UIControlEventAllTouchEvents? 프로그래밍 방식으로 추가해야합니다. 나는 정말로 그것을 취소하지 않았다 놀란다. UIViewController에서 -(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event을 처리 할 수도 있습니다.

            
 
             
  [myButton addTarget:self action:@selector(allTouches) forControlEvents:UIControlEventAllTouchEvents]; 
            
 

우수한

.

+0

아니, 그건 그걸하지 않았어. 일반적으로 버튼을 누르고있는 동안 UIAlert를 팝하면 발생합니다. – sehugg

+0

실제로 IB 배선을 꽉 쥐었다는 것을 깨달았을 때 P – sehugg

3

이 방법을 시도해보십시오

[myButton addTarget: target action: @selector(buttonUp:) forControlEvents: UIControlEventTouchUpInside]; 
+0

언급을 잊어 버렸습니다. 저는 IB에서 내부 및 외부 모두 위로 감추었습니다. – sehugg

0

UIAlert보기가 현재 상단에 있거나 버튼이 닫혀 있고 버튼이 더 이상 반응하지 않는 동안 단추를 눌렀거나 놓았는지 감지하려고합니까?

+0

버튼이 눌리는 동안 UIAlert가 표시되는지 감지하려고합니다 (이 경우 버튼이 정상 상태로 돌아가지만 터치 업) – sehugg

관련 문제