我的应用程序(针对 iOS 5+,使用 ARC 和故事板,用于 App Store)使用了一些旋转变换。存在一个错误,其中通话状态栏(例如,如果有正在进行的电话通话或麦克风录音)会导致视图发生变化,超出转换描述的范围。为了诊断这个问题,我编写了一个简单的测试应用程序*,它使用视图的转换。
最初(在模拟器 5.0 和 6.1 以及硬件 6.1 中重现)它看起来像
旋转20度后:
还可以!但是当我切换通话状态栏(command-T)时会发生一些奇怪的事情:
好的,如果我关闭通话状态栏,它可能会恢复
灾难!让我们尝试将视图的变换重置为CGAffineTransformIdentity
哦,我让自己陷入了什么?!
无论如何,我是 CGAffineTransforms 和整个 Quartz 2D 的新手,所以如果有人能告诉我为什么会这样,我将不胜感激。如果您想四处逛逛,可以在 Github * 上找到该代码。
*请注意,代码已使用解决方案进行了更新。