2014-04-04 2 views
0

iOS 앱에서 UIViewContainment를 사용하고 있습니다. 에서 내 containerView에 contentView가 있고 그것에 다른보기를로드하려고합니다. 자식 뷰는 스크린 샷과 같이 올바르게 크기가 조정되지 않아 제대로로드됩니다.UIViewContainment 하위 컨트롤러의 크기가 올바르게 맞지 않음

NavigationBar는 컨테이너의 일부입니다. 여기

enter image description here

내가 용기 내부의 childViewController를로드하는 데 사용하고있는 코드입니다.

// load the new controller 
    self.contentViewController = [self.storyboard instantiateViewControllerWithIdentifier:menuItem.viewControllerStoryboardId]; 

    [self.containerView addSubview:self.contentViewController.view]; 
    [self.contentViewController didMoveToParentViewController:self]; 
    [self addChildViewController:self.contentViewController]; 

    self.title = menuItem.title; 

다음은 작동하는 것 같다 :

self.contentViewController.view.frame = CGRectMake(0, 64, self.containerView.bounds.size.width, self.containerView.bounds.size.height); 

답변

1

그냥 contentViewController 뷰의 크기를 조정하려고 :

self.contentViewController.view.frame = self.containerView.bounds; 
self.contentViewController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth 
    | UIViewAutoresizingFlexibleHeight; 
+0

고마워요! 나는 단지 그것을했고 그것은 아무것도 바뀌지 않았다. 내 childViewController에는 탐색 모음이 없습니다. –

+0

나는 저를 위해 작동하는 가능한 응답을 가진 나의 질문을 편집했다! –

1

시작을 컨테이너 뷰를 사용합니다 코드를 주석으로. 이제는 다른 어떤 것과 마찬가지로 UIView 일뿐입니다. 배경색이나 이미지를 지정하여 원하는대로 위치를 지정하고 크기를 조정하십시오.

만약 내가 그렇지 않다면 나는 당신이 어떻게하는지에 대해 알지 못하기 때문에 이것을 많이 도와 줄 수 없습니다. Struts and Springs, AutoLayout, 등등. 너 자신을 고치려고 노력하고 그렇지 않으면 레이아웃 세부 사항으로 돌아 가라.

모양과 크기가 예상대로 작동한다고 가정 해 보겠습니다. 포함 된 UIViewController을 다시 추가하십시오.이 포함 된보기 컨트롤러의 UIView이 수퍼 뷰 (self.containerView)의 올바른 크기/위치가 아닙니다.

다시 동일한 프로세스. viewDidAppear에서 중단 점을 찍거나 로깅하고 프레임을 검사합니다. 모든 조회수가 레이아웃을 완료 할 때까지 기다리고 싶습니다. 그러면 viewDidAppear에 도달했을 때까지 발생했을 것입니다.

보기가 예상 한 곳이 아닌 경우 알아 내려고 시도 할 수 없으면 레이아웃을 수행하는 방법에 대한 자세한 내용을 참조하십시오.

+0

문제점을 발견했습니다! 어떤 미친 이유로 나는 내 컨텐츠 뷰를 네비게이션 바 뒤에있는 맨 위로 가져갔습니다. 나는 그것을 올바르게 조정했고 이제는 작동합니다! –

관련 문제