2012-04-05 2 views
2

사용자 상호 작용을 사용 중지하도록 설정하십시오. 최상위 뷰 계층 구조에 몇 초 동안 나타나는 사용자 정의보기가 있습니다. 보기 아래에 여러 단추가 있습니다. 문제는 사용자가보기를 클릭 할 때 버튼이 터치 이벤트를 감지한다는 것입니다. myCustomView.userInteractionEnabled = NO로 설정했습니다. 그리고 아무 일도 일어나지 않습니다. 버튼은보기를 통해 이벤트를 모두 잡습니다. 그것을 통해 감동을 가로 채지 못하게하는 뷰를 만드는 방법은 무엇입니까?보기 문제를 통한 사용자 상호 작용

답변

0

myCustomView이 뷰 계층 구조의 최상위 레벨에있는 경우 다른 뷰를 반투명하게 덮는 오버레이보기와 같은 것을 구현하려고하는 것으로 상상합니다. 이 경우이보기에 userInteractionEnabled = NO을 설정하면 터치 이벤트가 아래보기로 전달됩니다.

올바른 방법은 사용자 정의보기에 userInteractionEnabled = YES을 설정 한 다음 투명 버튼을 만들어 터치를 해제 IBAction으로 재 지정하거나 무시하는 것입니다.

0

당신이 할 수있는 버튼의 공통 수퍼에 불과하지 않도록 사용자 상호 작용 :

someButton.superview.userInteractionEnabled = NO; 

UI가 상단에 약간의 오버레이 위에 대신 별도의 창에 오버레이를 넣어 동안 UI를 해제하는 또 다른 방법 기존보기

0

사용 : 사용자 이벤트를 무시에 대한

[[UIApplication sharedApplication] beginIgnoringInteractionEvents]

. 그리고 몇 초와보기 사라져 후에는 사용할 수 있습니다

[[UIApplication sharedApplication] endIgnoringInteractionEvents]

이 방법 당신은 당신의 문제를 해결할 수 있습니다.

관련 문제