一旦识别出摇动手势,可以取消自动旋转吗?

时间:2010-06-28 16:14:55

标签: iphone

有人知道一旦识别出摇动手势是否可以停止自转(即在激烈摇晃时不要自动旋转)?

2 个答案:

答案 0 :(得分:1)

自动旋转是通过一些古怪的低级别东西来处理的,这些东西似乎在主要OS版本之间发生了显着变化;我真的不会惹它。

“取消”也不起作用 - 在CoreAnimation中,动画已经发生在“模型树”中,“演示树”和“渲染树”正在赶上。如果您保存了旧方向(即旋转,保存旧方向和时间,并比较时间),您可以调用[[UIDevice currentDevice] setOrientation:orientation],但Apple会拒绝您的应用。

如果旋转尚未发生,则在摇动开始时设置一个标志并在结束时清除它,然后覆盖-shouldAutorotateForInterfaceOrientation:如果当前正在发生摇动则返回NO。

答案 1 :(得分:0)

通过观察设备方向注册控制器以检查是否发生抖动,并在控制器中设置一个标志,以便知道当前正在发生抖动(您可以使用日期)。然后,覆盖shouldAutorotateForInterfaceOrientation方法检查标志并避免旋转,以防发生震动。