我正在为我的应用添加一个额外的UIWindow.我的主窗口正确旋转,但我添加的这个附加窗口不会旋转.
根据当前设备方向旋转UIWindow的最佳方法是什么?
如果您在Apple Developer Page向下滚动一下,您将找到"创建备用横向界面"部分.这里描述的基本方法是在方向改变时将不同的NIB文件呈现为模态视图.我正在使用Storyboard功能,所以我没有NIB.在这种情况下如何加载不同的"场景"?
除此之外,我使用的是Tab Bar控制器,我不想显示模态视图.我只想用一个用界面构建器设计的横向视图替换当前的纵向视图,并保留我的标签栏.什么是Storyboard实现"创建备用横向界面"任务的方法?谢谢.
iphone xcode interface-builder storyboard screen-orientation
我正在使用ActivityInstrumentationTestCase2类为应用程序编写一些验收测试.我想在测试中引起方向更改,以确保发生许多事情.其中包括确保保留Activity状态,同时我还要确保使用适当的方向布局.
我知道我可以简单地测试onSaveInstanceState/onRestoreInstanceState/onPause/onResume/etc. 确保保留实例状态的方法.但是,我想知道是否存在导致方向改变事件的机制?
这是否会涉及注入某种运动事件来诱骗设备/仿真器认为它已被旋转,或者是否存在由仪器提供的实际方法?
谢谢和干杯!
testing instrumentation android screen-orientation uiinterfaceorientation
我们如何改变iPad模拟器的方向?
对于Android平板电脑模拟器,Ctrl+ F12组合用于将方向从纵向更改为横向,类似地,用于将模拟器的方向从"纵向"更改为"横向"并返回到"纵向"?
Android游戏My Paper Plane是如何实现倾斜控制的一个很好的例子,但我一直在努力理解如何做类似的事情.
我有以下示例,它使用SensorManager中的getOrientation().整个事情都在这里的pastebin上.它只是将方向值打印到文本字段.这是最相关的片段:
private void computeOrientation() {
if (SensorManager.getRotationMatrix(m_rotationMatrix, null,
m_lastMagFields, m_lastAccels)) {
SensorManager.getOrientation(m_rotationMatrix, m_orientation);
/* 1 radian = 57.2957795 degrees */
/* [0] : yaw, rotation around z axis
* [1] : pitch, rotation around x axis
* [2] : roll, rotation around y axis */
float yaw = m_orientation[0] * 57.2957795f;
float pitch = m_orientation[1] * 57.2957795f;
float roll = m_orientation[2] * 57.2957795f;
/* append returns an average of the last …Run Code Online (Sandbox Code Playgroud) 该[[UIDevice currentDevice] orientation]方法返回超出纵向和横向方向的多个方向.我很清楚检查返回的方向是否"有效",不幸的是,当我的应用程序需要特定的方向来确定运行哪些方法时返回的方向不是"有效",我无法知道哪种方法是适当.
我已经尝试了很多解决方案,但是现在我唯一能够解决的问题是检查方向是否正确LandscapeLeft或者LandscapeRight如果不是我认为屏幕是纵向的.不幸的是,当设备面朝上并且屏幕处于横向时,情况并非如此.
我试图使用父视图控制器的方向:
parentController.interfaceOrientation;
Run Code Online (Sandbox Code Playgroud)
不幸的是它返回UIDeviceOrientationUnknown.我搜索SO和谷歌搜索遇到此问题的其他人.看来愚蠢,我认为苹果将有什么,但LandscapeLeft/Right和PortraitUp/Down他们的方位.
我真正需要的是APPS方向而不是设备,因为这些有时是不一致的.有什么建议?
我正在使用robolectric使我的android单元测试足够快,有用.我想测试我编写的代码,同时屏幕方向正在改变以模拟一个常见的现实世界用例.
具体来说,我正在测试的是对服务器的异步http调用,在获取结果后解析了一些xml.我对所有工作得很好的单元测试,但无法弄清楚如何模拟屏幕旋转.导致活动重新创建的任何状态更改都很好,它不一定必须是屏幕旋转.
使用模拟器的解决方案不是一个选项,因为我每分钟运行几次测试,它们必须在2秒内运行.如果可能的话,我也希望这能与roboguice合作.
谢谢.
我需要检测应用程序中的方向更改,但我不希望我的布局从纵向更改为横向.目前我正在使用OrientationEventListener但检测方向角度不够.我想检测用户是从纵向更改为横向还是反之,这不仅仅是检测方向角是90还是270.
我想进行与Android相同的检测来改变活动的方向.我尝试覆盖onConfigurationChanged并检查orientantion是否是横向/纵向,但是这仍然会将我的活动布局更改为横向.
有没有办法使用onConfigurationChanged但强制布局保持纵向?
还有另一种方法可以在不使用的情况下检测方向变化OrientationEventListener.最终我可以实现我自己的方向改变算法,对此有何想法?它必须比一些更复杂的东西if(90-THRESHOLD <= orientation <= 90+THRESHOLD),我想检测用户是否完成了纵向 - >横向或横向 - >纵向移动.
感谢你的帮助,
菲利普
我开发了iOS应用程序并在iOS6设备上进行了测试.在测试时,我意识到我的应用程序没有按预期响应方向更改.
这是我的代码:
// Autorotation (iOS >= 6.0)
- (BOOL) shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationMaskPortrait;
}
Run Code Online (Sandbox Code Playgroud)
确切地说,我想知道iOS中的方向更改调用了哪些方法.
我从另一个提出一个视图控制器:
- (void)showModalView
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
MySecViewController *mySecViewController = [storyboard instantiateViewControllerWithIdentifier:@"secController"];
mySecViewController.delegate = self;
[self presentViewController:mySecViewController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
然后在呈现中UIViewController,该方法viewWillTransitionToSize:withTransitionCoordinator:被调用iOS 8但不在iOS 9...
谢谢
uiviewcontroller screen-orientation autorotate ios presentviewcontroller
android ×4
iphone ×3
ios ×2
autorotate ×1
ios6 ×1
ipad ×1
ipad-3 ×1
objective-c ×1
robolectric ×1
storyboard ×1
testing ×1
tilt ×1
uiwindow ×1
unit-testing ×1
xcode ×1