当前方向为面朝上或正面朝下时,如何将设备方向更改为纵向

时间:2014-04-10 07:58:52

标签: ios cocoa device-orientation

当设备的当前方向是面朝上还是面朝下时,是否有可能将设备方向自动旋转为纵向?

4 个答案:

答案 0 :(得分:1)

您可以使用此技巧使系统随时刷新控制器方向:

[self presentViewController:[UIViewController new] animated:NO completion:NULL];
[self dismissViewControllerAnimated:NO completion:NULL];

这会在您的控制器上调用supportedInterfaceOrientations

当设备方向朝上或朝下时,只需返回UIInterfaceOrientationMaskPortrait,您的控制器视图就会相应调整。


观察UIDeviceOrientationDidChangeNotification以便在收到通知面朝上/朝下设备方向时使用该技巧,因为这些方向与{{1}不对应} s(并且不会触发UIInterfaceOrientation)。

设备和界面方向定义:

supportedInterfaceOrientations

答案 1 :(得分:0)

您不会改变方向。相反,您告诉iOS您支持哪些方向,因此当用户旋转设备时,iOS会将UI方向切换为应用程序支持的方向。 UI方向应仅在用户旋转设备时更改。

答案 2 :(得分:0)

在 - (void)viewWillApper方法

中使用此代码
if(self.interfaceOrientation==UIInterfaceOrientationPortrait||self.interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown)
{
 //do something;
}
else
{
}

答案 3 :(得分:0)

您可以通过在项目设置中设置适当的值来禁用或启用纵向模式下的屏幕旋转(目标 - >常规 - >部署信息部分)。

  • 标记纵向复选框
  • 标记颠倒复选框(此功能可启用颠倒动画)

  • 标记纵向复选框
  • 取消标记颠倒复选框(这只是上行模式)