iPad方向锁定通知?

3
有没有办法在iPad锁定方向时接收到通知?当开启或关闭方向锁定时,它会发送一个receivedRotate:通知,但我需要一种区分正常旋转和锁定“旋转”的方法。
问题是,当旋转发生变化时,我正在旋转视图中的物体。当锁定被激活时,iPad会发送一个带有UIInterfaceOrientationPortrait的receivedRotate:。
我已经查看了UIDevice是否有类似于isOrientationLocked的东西,但没有成功。
感谢任何关于此问题的线索。
编辑:当iPad方向锁定被打开时,由于某种原因它确实会发送一个将旋转更改为纵向的通知。这会导致元素旋转,因为它们会随着任何方向的变化而旋转。这就是我想要防止的。
编辑2:是的,iPad不应该发送纵向通知,但它确实会这样做。在此纵向通知之后,iPad停止发送通知,这是应该的方式。只有最初的通知会妨碍操作。
我无法使用加速计,因为我仍然希望能够使用方向锁定的锁定功能。如果我有一种知道iPad何时被锁定的方法,也许我会使用加速计。
编辑3:对于所有方向,都会使用UIInterfaceOrientationPortrait调用receivedRotate:。

1
也许更好的例子会更有帮助。什么情况下您需要知道屏幕是否被锁定?目前它提供方向,如果iPad被锁定则不会改变。 - Jeff B
你找到解决方案了吗?我也需要一个。 - DevDevDev
只是出于好奇,当将iPad锁定为横向位置时,您会收到哪些通知?从用户的角度来看,这似乎是正确的事情,因此一定还有其他通知。 - Ukko
2个回答

1

看起来现在它正在工作。

最近我安装了最新的XCode和iPhone SDK后,重新开始了我的旧项目,当锁定开关打开时,我不再收到UIInterfaceOrientationPortrait。我没有改变任何代码,所以这一定是苹果公司的问题。


0

只是为了明确,您是否仅使用旋转通知来确定旋转?您没有从加速度计或类似设备中提取数据以获取方向吗?

另外一件事是锁定只是一个锁定功能,如果您处于横向模式,它不应该强制您进入纵向模式。它应该只保持您处于横向模式。

因此,根据您所做的猜测,我建议您不要将通知作为界面基础,而是直接使用加速度计数据。

作为一名新近拥有iPad的用户,我可能会想知道您在做什么,因为我认为锁定是一种在我的物理方向不是“正常”的情况下保持方向的方法,比如躺在沙发上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接