模态视图控制器无法正确旋转

时间:2012-01-17 08:46:53

标签: objective-c ios ipad

在ipad上,在ios目标C中,我在一个模态视图中遇到旋转移动问题。我在shouldAutoRotate方法中给出了元素的位置,它的父视图也可以旋转,但是当我旋转模态视图时,元素没有放在正确的位置。

有关详细信息,如果我以纵向模式打开视图,我会收到以下数据:

<UIView: 0x72bc160; frame = (0 0; 768 1004); clipsToBounds = YES; 
autoresize = W+H; layer = <CALayer: 0x13f324f0>

在横向模式中:

<UIView: 0x1358f3b0; frame = (0 0; 768 748); clipsToBounds = YES; 
autoresize = W+H; layer = <CALayer: 0x1358f3e0>>

但如果我旋转视图,水平框架会因垂直框架而改变......

我做错了吗?

1 个答案:

答案 0 :(得分:5)

我在视图控制器旋转方面玩得很开心。要记住两件事:

  1. 假设您正在覆盖整个屏幕(并且不对子视图转换执行任何操作),请确保从最广泛的视图控制器(通常是应用程序的根视图控制器)呈现模态视图控制器。 / LI>
  2. 确保每个包含概念的视图控制器都将旋转事件传递给其概念性子视图控制器。 (这在iOS 5之前是非常不明确的。)
  3. 当我发生这些事情时,这是因为后台的视图控制器获得了旋转事件,但我呈现的特定视图控制器忽略了它们并且没有将它们传递给模态视图控制器,导致不一致