【问题标题】:How do I rotate the iOS simulator using code?如何使用代码旋转 iOS 模拟器?
【发布时间】:2013-03-26 16:19:27
【问题描述】:

有谁知道如何旋转 iOS 模拟器(6.0 及以上)?我已经搜索过,但没有找到任何关于此的内容。

我正在尝试通过代码(而不是手动)执行此操作,但如果可以通过脚本完成,则必须从代码运行。这甚至可以做到吗?需要一些建议。

【问题讨论】:

  • 既然有ShortChut(Cmd+箭头),就不能用这个吗?
  • 目的是为了运行超过 2k 的测试,所以我更喜欢代码解决方案。但我似乎在这方面找不到任何东西。

标签: objective-c xcode applescript


【解决方案1】:

向 Tests 目标(或任何合适的目标)添加支持的界面方向条目,如下所示:

只要唯一的条目是横向条目,它将以横向模式运行。

编辑:
如果我误解了您对测试的评论并且您没有运行单元测试,那么您可能不想继续更改主要目标的方向。在这种情况下,您可以复制您的主要目标并在那里更改方向。

编辑:
有一种未记录的方法可以在代码中强制旋转。虽然这适用于测试,但如果您在提交的应用中使用它可能会导致您的应用被拒绝。

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight animated:YES];

只需在需要使用此方法的任何地方添加此类别即可。

@interface UIDevice (MethodsThatAppleWillHitMeWithTheBanStickForUsing)
    -(void)setOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated;
    -(void)setOrientation:(UIInterfaceOrientation)orientation;
@end

【讨论】:

  • 那么如何通过代码改变模拟器的方向呢?我正在寻找类似-> setSimulatorOrientationRight 之类的东西(然后模拟器会向右或向左转等)。我只需要一些东西以与按命令+箭头按钮相同的方式行事。这些测试不是 XCode 单元测试;它们是自定义的。
  • 查看我的编辑。就像我说的那样,如果您在生产代码中使用它,这很可能会导致您的应用被拒绝,但对于您的测试来说,它应该已经足够好了。
  • 正是我需要的人。谢谢。请记住,并非每个构建的应用程序都旨在进入应用程序商店。随着数以千计的应用程序的出现,我们构建了一些测试环境,以适应那些最终会进入应用程序商店的应用程序。这个应用程序就是为这样的环境而设计的。它永远不会在商店里。感谢您的预防:)
【解决方案2】:

您必须检查几个步骤才能使所有方向都在 iOS6 中正常工作。即使其中一个丢失,它也不会起作用。

  1. 正如 Lance 所说,是的,您必须为 iphone 或 ipad 设置支持的方向。

  2. 将此代码写入您要为其设置旋转的控制器中。

    -(NSUInteger)supportedInterfaceOrientations { 返回 UIInterfaceOrientationMaskAll; }

    -(BOOL)应该自动旋转 { 返回是; }

根据您想要的方向更改 UIInterfaceOrientationMaskAll

  1. 如果您在项目中使用导航控制器,请确保正确设置!

您不应该收到此错误...(应用程序在应用程序启动结束时应该有一个根视图控制器)

正确执行这些步骤,轮换对您有用。

【讨论】:

  • 对不起,我明白你在说什么。但是我的测试完全不同。我什至无法访问我将要测试的代码:)。兰斯明白了,我只需要通过代码旋转模拟器。他的解决方案有效。
猜你喜欢
  • 2011-12-20
  • 2017-02-03
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
  • 2014-02-21
  • 2015-04-15
  • 2012-09-10
相关资源
最近更新 更多