Ios 通话状态栏如何影响我的CGAffineTransform';三维视图?

Ios 通话状态栏如何影响我的CGAffineTransform';三维视图?,ios,quartz-2d,cgaffinetransform,Ios,Quartz 2d,Cgaffinetransform,我的应用程序(目标iOS 5+,在应用商店中使用弧形和故事板)使用一些旋转变换。有一个bug,即通话中的状态栏(例如,如果有正在进行的电话通话或麦克风录音)会导致视图发生变化,超出转换所描述的范围。为了诊断这个问题,我写了一个简单的*来处理视图的转换 最初(在模拟器5.0和6.1以及硬件6.1中复制)它看起来像 旋转20度后: 还可以!但当我切换in-call状态栏(command-T)时,会发生一些奇怪的事情: 好吧,如果我关闭通话状态栏,它可能会恢复 灾难!让我们尝试将视图的转换重置

我的应用程序(目标iOS 5+,在应用商店中使用弧形和故事板)使用一些旋转变换。有一个bug,即通话中的状态栏(例如,如果有正在进行的电话通话或麦克风录音)会导致视图发生变化,超出转换所描述的范围。为了诊断这个问题,我写了一个简单的*来处理视图的转换

最初(在模拟器5.0和6.1以及硬件6.1中复制)它看起来像

旋转20度后:

还可以!但当我切换in-call状态栏(command-T)时,会发生一些奇怪的事情:

好吧,如果我关闭通话状态栏,它可能会恢复

灾难!让我们尝试将视图的转换重置为
cGraffinetTransformity

哦,我让自己陷入了什么境地

无论如何,我对CGAffineTransforms和Quartz 2D都是新手,所以如果有人能告诉我为什么会发生这种情况,我将不胜感激。如果你想四处闲逛,代码是


*请注意,代码已使用解决方案进行了更新。

这是因为切换调用中的状态栏会更改图幅,而图幅(如果设置为自动调整子视图的大小)会相应地自动调整子视图的大小。如果转换后的视图有任何灵活的边距,它可能会倾斜,如上面的屏幕截图所示。要使其不象那样倾斜,请启用所有四个struts。

这是因为切换调用中的状态栏会更改视图框架,而视图框架(如果设置为自动调整子视图的大小)会相应地自动调整子视图的大小。如果转换后的视图有任何灵活的边距,它可能会倾斜,如上面的屏幕截图所示。要使其不象那样倾斜,请启用所有四个支柱