2011-01-12 3 views
0

프로그래밍 방식으로 항상 크기와 루트 UIView의 요소의 위치를 ​​설정 한 컨트롤러를 설정 (예)UIViewController 루트 UIView가 자동 크기 조정합니까? 이전

// UIViewController -loadView 
CGRect viewFrame = CGRectMake(0, 20, 320, 460); 
UIView *view = [[UIView alloc] initWithFrame:viewFrame]; 
[self setView:view]; 
[view release]; 

난 그냥 발견했습니다 (그리고 누구나 확인할 수 있습니다 궁금) 당신이 루트를 추가하는 경우 있음 UIView를 사용하여 사용 가능한 공간에 자동 크기 조정할 때 크기 나 위치를 설정할 필요가 없습니다. (즉)

// UIViewController -loadView 
UIView *view = [[UIView alloc] init]; 
[self setView:view]; 
[view release]; 

난 이후 UIViews (즉있는 UIButton, UILabel의 등), 난 그냥 내가 현재보고하고있는 행동을 이해하고 있는지 확인하려면 위치와 크기가 될 필요가 있음을 이해합니다.

답변

1

보기의 프레임 크기를 조정하지 않습니다.

UIView *view1 = [[UIView alloc] init]; 
NSLog(@"ViewFrame before set:%@",NSStringFromCGRect(view1.frame)); 
[self setView:view1]; 
NSLog(@"ViewFrame after set:%@",NSStringFromCGRect(view1.frame)); 
[view1 release]; 

하지만이 점을 정당화하는 문서에서 아무 것도 찾을 수 없습니다.

+0

많은 감사, 그게 전부 알고 좋았지. – fuzzygoat

0

UIViewController의 루트보기 크기는 해당 컨트롤러의 부모 인스턴스 (다른 컨트롤러 또는 창일 수 있음)에 의해 관리됩니다. 자동으로 크기를 결정합니다. 예를 들어 UITabBarController를 만들면 모든 하위 컨트롤러의 루트보기 크기가 결정됩니다. 또는 자체 컨테이너보기 컨트롤러를 작성하는 경우 하위 컨트롤러의 루트보기 크기를 결정해야합니다.

이 항목의 "보기 관리"섹션을 참조하십시오 UIViewController Class Reference

관련 문제