有没有人知道是否有可能在识别到摇摆手势后停止自动旋转(即在激进的摇晃过程中不要自动旋转)?
发布于 2010-06-29 00:30:50
自动旋转是通过一些奇怪的低级东西来处理的,这些东西在主要的操作系统版本之间似乎有很大的变化;我真的不会搞乱它。
“取消”也不能真正起作用--用CoreAnimation的话说,动画已经在“模型树”中发生了,而“表示树”和“渲染树”正在追赶。如果你已经保存了旧的方向(即旋转,保存旧的方向和时间,并比较时间),你可以调用[UIDevice currentDevice setOrientation: orientation ],但苹果会拒绝你的应用程序。
如果旋转还没有发生,那么在摇动开始时设置一个标志,并在结束时清除它,然后重写-shouldAutorotateForInterfaceOrientation:如果正在发生摇动,则返回NO。
发布于 2010-06-29 04:56:35
注册您的控制器,通过观察设备方向来检查是否发生了抖动,并在控制器中设置一个标志,以了解当前正在发生抖动(您可以使用日期)。然后,重写shouldAutorotateForInterfaceOrientation方法以检查标志并避免旋转,以防现在发生抖动。
https://stackoverflow.com/questions/3134121
复制相似问题