CGAffineTransformScale和方向更改

时间:2013-04-12 04:17:55

标签: ios uiinterfaceorientation cgaffinetransform

晚上好,

我使用CGAffineTransformScale缩小UIView。

[UIView animateWithDuration:0.3 animations:^{
            gridContainerView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.2, 0.2);
            gridContainerView.alpha = 0.0;
        } completion:^(BOOL finished) {
            // show UIView B
        }];

并将其缩放回原始尺寸:

[UIView animateWithDuration:0.3 animations:^{
    gridContainerView.transform = CGAffineTransformIdentity;
    gridContainerView.alpha = 1.0;
} completion:^(BOOL finished) {
    // remove UIView B
}];

这很好用。 gridContainerView缩小到屏幕中心。但是,如果我更改设备方向(到a.e. l​​andscape),则中心会以某种方式向左下方移动。一旦改变方向,转换就不再是屏幕的中心了。 解决这个问题的唯一方法是释放gridContainerView并重新分配/初始化它。但不幸的是,现在这不是我的选择。

真的很感激任何帮助。

0 个答案:

没有答案