以下是我希望在应用程序中使用的两种布局。如果应用程序从纵向切换到横向时,它会保持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