当用户旋转设备时,我正在尝试从一个 UIView 转换到另一个。这本身并不难。但是,由于我在旋转后显示的是完全不同的内容,所以 UIKit 提供的默认动画(旋转当前显示的视图)在概念上是不合适的。
简单地禁用动画并突然交换视图是可以容忍的,但远低于我正在构建到应用程序其余部分的润色。我更愿意这样做:
当 shouldAutorotateToInterfaceOrientation: 被调用时,我想抓取一个不透明的视图快照,如果你愿意的话,一个屏幕截图,在旋转之前的用户视图。然后在旋转完成并且系统应用了视图变换等之后,我可以显示我保存的快照视图,并将我选择的动画转换为我的新视图。完成后,我可以释放我的快照并继续前进。
有没有不贵的办法做到这一点?
我能想到的唯一其他选择是在我的默认方向以外的所有方向上返回 NO,然后通过应用我自己的动画和变换来做出反应。但是,我更喜欢使用系统来执行此操作,因为我觉得自己可能会在手动旋转视图等中导致“未定义”键盘行为。
想法?