메인 화면에 하위보기 컨트롤러로 UINavigationController
을 추가 한 iOS 앱이 있습니다. 수직으로 배치되어 탐색 컨트롤러가 주 뷰의 높이의 하단 부분을 차지하고 전체 너비입니다. 숨기기 및 표시하는 데 사용되는 nav 바로 위에있는 버튼 (실제로는 탭 인식기가있는 사용자 정의보기)이 있습니다. 탐색이 숨겨져있을 때 버튼은 기본 화면의 맨 아래에 있으며 탐색이 표시되면 버튼이 탐색 막대의 상단 바로 위에 있습니다.VC 포함의 UINavigationController 탭 영역 문제
문제는 네비게이션 바가 버튼의 아래쪽 10 점을 터치하는 것을 가로 채는 것처럼 보입니다. 왜 이런거야? 아이를 추가 할 수
코드는 다음과 같습니다
UIViewController *root = [[[UIViewController alloc]init]autorelease]; //some VC
UINavigationController *nav = [[[UINavigationController alloc]initWithRootViewController:root]autorelease];
[self addChildViewController:nav];
CGRect rect = self.view.frame;
CGFloat height = 500;
nav.view.frame = CGRectMake(0, rect.size.height - height, rect.size.width, height);
[self.view addSubview:nav.view];
[nav didMoveToParentViewController:self];
//Now the button
UIView *view = [[[UIView alloc]initWithFrame:CGRectZero]autorelease];
view.backgroundColor = [UIColor greenColor];
[self.view addSubview:view];
view.frame = CGRectMake(0, rect.size.height - 500 - 40, rect.size.width, 40);
UITapGestureRecognizer *recog = [[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(onToggleSplit)]autorelease];
[view addGestureRecognizer:recog];
onToggleSplit
는 위아래로 탐색을 애니메이션. 그것이 끝나면, "버튼"의 바닥 10 점 정도의 도청은 아무 것도하지 않습니다. 내 사용자 정의 "버튼"보기에서 touchesBegan
을 무시하려고 시도했지만 호출되지 않았습니다.
자식 VC에 일반 UIViewController
(또는 하위 클래스)을 사용하는 경우 단추가 예상대로 응답합니다.
'nav.view'의 색상을 지정할 때 버튼과 겹치지 않습니까? –
@IanMacDonald no. –