2011-10-04 3 views
3

이 질문에 대한 stackOverflow 답변을 몇 시간 동안 읽었습니다. 도와주세요.iphone/ipad - Autoresize 및 addSubview를 사용하는 데 문제가 있습니다.

addSubview를 사용하여보기를 표시합니다. 모든 내 UIView 개체는 xib 파일을 통해로드됩니다. 계층 구조는 MainWindow.xib -> View1.xib -> View2.xib입니다. 각 컨트롤러에는 initWithNibName : bundle :을 통해 xibs를로드하는 컨트롤러가 있습니다. 계층 구조의 각 뷰에는 IB에서 하위 뷰 Autoresize 속성이 선택되어 있습니다. 각각의 자동 크기 조정 옵션도 선택되어 있습니다. (작은 적색 화살표)

View1의 버튼을 클릭하면 View2가 ViewSubview를 사용하여 하위보기로 추가됩니다. 이것은 아이폰에서 잘 작동합니다.

저는 이제 iPad로 응용 프로그램을 만들고 있습니다. 내 모든 다른보기가 제대로 작동하고 올바르게 크기를 조정합니다. 그러나 View2는 그렇지 않습니다. 이것은 resize 함수를 호출 할 때까지 View1에 추가되지 않기 때문입니까? 그렇다면 자동 크기 조정 기능을 어떻게 트리거합니까? 내가 뭘 놓치고 있니?

설명이 충분하지 않다면 죄송합니다. 디버깅 질문에 대해서도 기꺼이 답해 드리겠습니다. 2 일간의 검색을 한 후에도 여전히 조금은 잃어버린 느낌이 들었습니다.

답변

7

View2를 View1에 추가하는 코드는 어디에 있습니까? 아마도

-(void)actionButtonPressed:(id)sender withEvent:(UIEvent*)e { 
    self.vc2 = [[[ViewController2 alloc] initWithNibName:...] autorelease]; 
    vc2.view.frame = self.view.bounds; 
    [self.view addSubview:vc2.view]; 
} 
+0

와우와 같은 것을하고 싶을 것입니다. 나는 그것이 필요했던 것보다 훨씬 더 힘들게 만들고 있었다. 어떤 이유로 나는 autoResize가 addSubview 함수 중에 일어날 것이라고 생각했다. 이전에 아무런 성공없이 시도했지만 View1에 추가 될 때까지 크기가 조정되지 않았습니다. 이 문제를 재고하고 재정렬하도록 도와 주셔서 감사합니다. – decoy

+2

자동 크기 조정은보기가 * 크기가 조정 된 경우에만 발생하며,보기에 창/수퍼 뷰/무언가가없는 경우 신비하게 발생하지 않는 것으로 보입니다. 조심해! –

관련 문제