1

간단히 말해, 내 UINavigationBar의 alpha이 0으로 설정된 경우 모든 터치가 기본보기로 이동하기를 원합니다 (탐색 막대가있는보기 컨트롤러의 관점에서 보면 self.view). 1.0 인 경우 계속 유지해야합니다.hitTest : withEvent : 특정 상황에서 내비게이션 막대에서 기본보기로 접촉을 보내려면 어떻게해야합니까?

서브 클래 싱 된 UINavigationBar와 나는 hitTest:withEvent:을 오버라이드하려고하는데, 실제로 내가하고있는 일이 혼란스럽고 검색이 거의 도움이되지 않습니다.

"알파가 0이면 터치를 self.view에게 보내십시오. 그렇지 않으면 탐색 모음을 계속 사용 하시겠습니까?"

답변

1

내비게이션 막대에보기 참조를 보내고 behindView 또는 뭔가라는 속성으로 설정해야합니다.

if(self.alpha == 0.0f) 
{ 
    return behindView; 
} 
return [super hitTest:point withEvent:event]; 

또 다른 방법은 같은 pointInside:withEvent:을 무시하는 것입니다 :

알파가 실제로 의미가 0
+0

. 보이지 않는 탐색 바가있는 곳에서보기의 프레임이 펼쳐져 있는지 확인 하시겠습니까? 내비게이션 컨트롤러는 내비게이션 막대 아래에 뷰 컨트롤러의 뷰 상단을 설정하므로'-navBarHeight'의'frame.origin.y'가있는 내부보기에 모든 내용을 넣어야하고 그보기는 당신의 감동. –

+0

로 설정되어있을 때 내가 탐색 모음을 누릅니다 경우가 호출되지 않습니다

if(self.alpha == 0.0f) { return NO; } return [super pointInside:point withEvent:event]; 
jhabbott

+0

그 시점에서'setNavigationBarHidden :'...을 사용할 수도 있습니다. –

관련 문제