2011-04-27 7 views
1

후 리사이즈 난의 ViewController에서보기를 포함 AppDelegate에 함께 IPAD위한 간단한 구조를 갖는다 :UIViewAutoresizingNone : 회전

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    ClockVC *clockVC = [[ClockVC alloc]init]; 
    clockVC.view.frame = CGRectMake(100, 100, clockVC.view.bounds.size.width, clockVC.view.bounds.size.height); 

    [self.window addSubview:clockVC.view]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

clockVC이 코드에 의해 정의되는있는 viewDidLoad 가지고

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.view.autoresizingMask = UIViewAutoresizingNone; 
    self.view.autoresizesSubviews = UIViewAutoresizingNone; 
} 

경계 clockVC는 IB에 의해 정의되고 적용에서 무시됩니다. didFinishLaunching ... 너비와 높이가 각각 200과 150입니다.

Cl 페이지가 올바르게 볼 제 부하 /

/ Override to allow orientations other than the default portrait orientation. 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return YES; 
} 

-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{ 
    [UIView animateWithDuration:0.5 
        animations:^{self.view.alpha = 0;} 
    ]; 
} 

-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{ 
    [UIView animateWithDuration:1 
        animations:^{self.view.alpha = 1;} 
    ]; 
} 

및 clockVC 뷰 위치이다 ockVC 한 단계 자동 회전 방법을 구현한다. clockVC 뷰 (autoResizeMask가 UIViewAutoresizingNon으로 설정 됨)를 회전 할 때 전체 화면을 차지하도록 크기를 조정하십시오.

왜 ?? 초기 크기를 원합니다.

내 문제의 스크린 샷입니다. 회전하기 전에 : enter image description here

회전 후 : enter image description here

+0

방금 ​​append delegate에'clockVC.view.autoresizingMask = UIViewAutoresizingNone;'을 추가했는데 아무것도 변경되지 않았습니다. – MatterGoal

답변

2

이의 루트 뷰를 사용하지 마십시오 대신 뷰 컨트롤러의 뷰에 하위 뷰를 추가 할 수 있습니다. UIViewControllers은 일반적으로 컨테이너의 전체 공간 (이 경우에는 윈도우)을 채우도록 설계됩니다.

예를 들어, 당신이 UIViewControllerUINavigationController A를 추가 할 경우, 탐색 컨트롤러 (탐색 막대가 표시 등 여부) 네비게이션 컨트롤러의 레이아웃에 따라 크기로 책임을보기 컨트롤러의보기를합니다. 정확히 UIWindow가 어떻게 동작하는지 잘 모르겠지만 SDK의 많은 곳에서 뷰 컨트롤러의 부모가 자식의 위치와 크기를 담당합니다 (UIPopoverController, UITabBarController 등). al.).

+0

각 위치마다 2 개의 nib 파일을 만드는 것이 더 쉽지 않습니까? – Radu

+0

Omz, 고맙습니다. 문서에 관한 내용을 찾을 수는 없지만 다음 내용 만 읽습니다. 'iOS 응용 프로그램에서 창 개체는 현재 방향 변경과 관련된 많은 작업을 수행합니다. 그러나 응용 프로그램의보기 컨트롤러와 함께 작동하여 방향 변경이 발생해야하는지 여부를 결정하고, 그렇다면 변경에 응답하기 위해 추가 메서드를 호출해야합니다. 특히 최근에 루트보기가 창에 추가되거나 창에 표시되는보기 컨트롤러와 함께 작동합니다. – MatterGoal