以下是我希望在應用程序中使用的兩種佈局。如果應用程序從縱向切換到橫向時,它會保持UILabels,BOOL和其他對象,那將會很好。由於按鈕的位置不同,我不能只在自動旋轉時使肖像視圖自動調整大小。我也想使用BOOL和右上角的按鈕來實現自己的旋轉鎖定。不同佈局的旋轉 - iOS 4
我想過使用一個- (空)orientationChanged:(NSNotification)通知有presentModalViewController然而這些並沒有在對象複製並似乎導致more harm then good and didn't appear to work properly。
感謝您的幫助!
嘗試的解決方案:
我加橫向視圖到ViewController,具有在視圖控制器兩個視圖。我把它連接到我在ViewController的@interface部分添加的UIView * landscapeView下的File's Owner。我在viewDidLoad方法中添加了[self.view addSubview:landscapeView]。然後,我添加了這段代碼:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if (orientationLock)
return NO;
else {
if (interfaceOrientation == UIInterfaceOrientationPortrait) {
[landscapeView setHidden:YES];
//[self.view setHidden:NO]; removed
} else {
//[self.view setHidden:YES]; removed
[landscapeView setHidden:NO];
}
return YES;
}
}
但是,這不是正確的解決方案。當我運行模擬器並旋轉它時,屏幕沒有正確放置。當設備改變方向
我可能需要一些更多的幫助,我很初學者。所以我應該把這兩個視圖合併成一個xib文件。應用程序如何知道何時使用哪個視圖? – michaellindahl 2011-04-29 04:20:58
是當設備改變其方向時,你會得到稱爲shouldRotateToInterfaceOrientation的方法,你可以檢查interfaceOrientation == UIInterfaceOrientationPortrait,然後你可以顯示縱向視圖並隱藏橫向視圖。希望你能理解 – 2011-04-29 16:24:19
你也可以檢查你的國旗的價值,這樣如果國旗的價值是肯定的,那麼只有顯示或隱藏,否則不要做任何事情,一旦國旗變了 – 2011-04-29 16:25:37