有人知道一旦识别出摇动手势是否可以停止自转(即在激烈摇晃时不要自动旋转)?
答案 0 :(得分:1)
自动旋转是通过一些古怪的低级别东西来处理的,这些东西似乎在主要OS版本之间发生了显着变化;我真的不会惹它。
“取消”也不起作用 - 在CoreAnimation中,动画已经发生在“模型树”中,“演示树”和“渲染树”正在赶上。如果您保存了旧方向(即旋转,保存旧方向和时间,并比较时间),您可以调用[[UIDevice currentDevice] setOrientation:orientation],但Apple会拒绝您的应用。
如果旋转尚未发生,则在摇动开始时设置一个标志并在结束时清除它,然后覆盖-shouldAutorotateForInterfaceOrientation:如果当前正在发生摇动则返回NO。
答案 1 :(得分:0)
通过观察设备方向注册控制器以检查是否发生抖动,并在控制器中设置一个标志,以便知道当前正在发生抖动(您可以使用日期)。然后,覆盖shouldAutorotateForInterfaceOrientation方法检查标志并避免旋转,以防发生震动。