【问题标题】:How to set device orientation programmatically in iOS如何在 iOS 中以编程方式设置设备方向
【发布时间】:2011-12-19 09:50:13
【问题描述】:

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

【问题讨论】:

  • UIApplication 中的setStatusBarOrientation:animated 怎么样?

标签: iphone ios ipad


【解决方案1】:

你可以使用jbat100的答案加上在UIApplication中调用setStatusBarOrientation:animated来达到效果。

【讨论】:

    【解决方案2】:

    请注意,自 iOS 6.0 起,此行为已更改。如需更多信息,请参阅:Autorotate in iOS 6 has strange behaviour

    要点是 should/will/did/etc 已被弃用,取而代之的是更简洁、更动态的实现。我们都应该感谢这一点。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          这适用于我在 Xcode 6 和 5 上。

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

          【讨论】:

            【解决方案6】:
            NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];
            [[UIDevice currentDevice] setValue:value forKey:@"orientation"];
            

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

            【讨论】:

              猜你喜欢
              • 2014-01-26
              • 2013-06-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-09-20
              • 1970-01-01
              • 2013-07-30
              相关资源
              最近更新 更多