如何使用代码旋转 iOS 模拟器?
Posted
技术标签:
【中文标题】如何使用代码旋转 iOS 模拟器?【英文标题】:How do I rotate the iOS simulator using code? 【发布时间】:2013-03-26 16:19:27 【问题描述】:有谁知道如何旋转 ios 模拟器(6.0 及以上)?我已经搜索过,但没有找到任何关于此的内容。
我正在尝试通过代码(而不是手动)执行此操作,但如果可以通过脚本完成,则必须从代码运行。这甚至可以做到吗?需要一些建议。
【问题讨论】:
既然有ShortChut(Cmd+箭头),就不能用这个吗? 目的是为了运行超过 2k 的测试,所以我更喜欢代码解决方案。但我似乎在这方面找不到任何东西。 【参考方案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 中正常工作。即使其中一个丢失,它也不会起作用。
正如 Lance 所说,是的,您必须为 iphone 或 ipad 设置支持的方向。
将此代码写入您要为其设置旋转的控制器中。
-(NSUInteger)supportedInterfaceOrientations 返回 UIInterfaceOrientationMaskAll;
-(BOOL)应该自动旋转 返回是;
根据您想要的方向更改 UIInterfaceOrientationMaskAll。
-
如果您在项目中使用导航控制器,请确保正确设置!
您不应该收到此错误...(应用程序在应用程序启动结束时应该有一个根视图控制器)
正确执行这些步骤,轮换对您有用。
【讨论】:
对不起,我明白你在说什么。但是我的测试完全不同。我什至无法访问我将要测试的代码:)。兰斯明白了,我只需要通过代码旋转模拟器。他的解决方案有效。以上是关于如何使用代码旋转 iOS 模拟器?的主要内容,如果未能解决你的问题,请参考以下文章