如何在iOS中以编程方式设置设备方向

时间:2011-11-01 10:58:05

标签: iphone ios ipad

我有一个电子书阅读器应用程序,其中,我需要根据页面的布局以编程方式调整设备方向...即,设备应支持某些页面的所有方向,并且仅支持其他页面的横向。无论如何,我可以以编程方式强制进行方向更改

6 个答案:

答案 0 :(得分:1)

您可以使用jbat100的答案以及在UIApplication中调用setStatusBarOrientation:animated来实现此效果。

答案 1 :(得分:1)

请注意,从iOS 6.0开始,此行为已更改。有关详细信息,请参阅:Autorotate in iOS 6 has strange behaviour

要点是应该/将要/ / / /等已被弃用,并且已被更清晰,更动态的实现所取代。我们都应该感恩。

答案 2 :(得分:0)

您无法将设备方向强制为某个值,系统会告诉您设备的方向,而不是相反的方向。您可以使用CGAffineTransform等(相关帖子here)旋转您的观看次数。

答案 3 :(得分:0)

实际上你可以强迫任何轮换。至少我能够做到。我使用的解决方案:https://stackoverflow.com/a/10146270/894671

答案 4 :(得分:0)

这适用于Xcode 6& 5。

- (BOOL)shouldAutorotate {return YES;}
- (NSUInteger)supportedInterfaceOrientations {return (UIInterfaceOrientationMaskPortrait);}

答案 5 :(得分:0)

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];

这可以通过编程方式将设备方向设置为LandscapeRight。