我正在使用此代码锁定iOS应用程序的横向模式。
#pragma mark Orientation handling
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationMaskAllButUpsideDown);
}
-(BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown);
}
它在iPhone上运行良好但在iPad上无法正常工作。它不会锁定横向模式。
需要一些指导。
答案 0 :(得分:1)
此代码不正确:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationMaskAllButUpsideDown);
}
UIInterfaceOrientation
不是UIInterfaceOrientationMask
。尝试这样的事情:
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
话虽如此,如果您尝试将应用程序锁定为横向模式,此处还有其他多个问题 - 例如,您的supportedInterfaceOrientations
仅列出纵向模式,而不是横向模式!
答案 1 :(得分:0)
理想情况下,只需在评论中将其设置在摘要标签中即可。如果您真的想在代码中执行此操作,则只能在AppDelegate类中设置为rootViewController的任何内容中使用。
答案 2 :(得分:0)
在iOS 6中我使用:
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
如果您有NavigationController,则可以将该方法添加到类别。
答案 3 :(得分:0)
我用:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation == UIInterfaceOrientationLandscapeRight;
}