如何暂时锁定iPad/iPhone的方向
问题描述:
在我的应用程序的某个时候,我想暂时禁用旋转功能 - 有效地“锁定”代码中的方向,类似于iPad上的锁定切换开关硬件。如何暂时锁定iPad/iPhone的方向
我目前做:
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]
,当我通过,我呼吁:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]
虽然这一切似乎工作,API文档表明,应该永远是一个开始后面结束 - 我正在做的事情基本上是相反的。是否有更适合处理“锁定方向”的API?
答
我认为这很简单,因为不响应控制器的方向更改。您可以根据传递的参数有条件地返回true或false,但并不总是必须返回true。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (rand()%2 == 0) { // evaluate if I should allow rotate
return YES;
} else {
return NO;
}
}
感谢 - 伟大的作品! – Eric 2010-06-18 22:43:28
这就是我现在正在做的事情,但有一个缺点: 例如如果我** 0。**设备和视图控制器是在肖像模式。 ** 1。**将设备旋转到(比方说)景观(视图控制器也旋转),** 2。**锁定旋转。 ** 3。**将设备旋转为纵向(在这种情况下视图控制器不旋转,这很好)。 ** 4。**然后解锁旋转,然后UIViewController不会更新到肖像。我必须再次旋转它才能获得以上方法:( – nacho4d 2012-02-08 05:45:44
)在这种情况下,只需听取加速度计重力并相应地调整自己 – slf 2012-02-09 02:54:16