2010-02-21 70 views
0

我正在嘗試從縱向屏幕調用橫向屏幕的代碼。 當前屏幕方向爲橫向時,將不允許任何自動旋轉。如何禁用任何自動旋轉?

我試過下面的代碼:

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

- (void)viewDidLoad { 

    [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight; 
    CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(90)); 
    landscapeTransform = CGAffineTransformTranslate(landscapeTransform, +90.0, +90.0); 
    [self.view setTransform:landscapeTransform]; 
} 

但上面的代碼允許UIInterfaceOrientationLandscapeRight。

如何禁用任何自動旋轉?

在此先感謝。

回答

0

你想在橫向模式下啓動你的應用嗎? 在所有情況下,您必須重寫shouldAutorotateToInterfaceOrientation方法。

但是,如果你想在縱向模式下啓動你的應用程序,然後進入橫向模式,你可以添加一個靜態布爾值來知道你是否必須停留在空間模式下。 您的代碼必須如下所示:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if(isInPortraitMode) { 
     // Return YES for supported orientations 
     return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
    } else { 
     if(interfaceOrientation == UIInterfaceOrientationLandscapeRight) { 
      isInPortraitMode = YES; 
     } 
     return YES; 
    } 
} 

- (void)viewDidLoad { 
    isInPortraitMode = NO; 
    //... 
} 
+0

感謝您的回覆。舊版本更好。 但是,這允許縱向模式的肖像模式。我試圖讓它不會有任何方向。 週期是:開始 - >肖像 - >風景 - >結束。 – Ferdinand 2010-02-22 03:33:59