2

当我在 IB 中打开 Autolayout 旋转我的设备时,不会调用以下方法。

willRotateToInterfaceOrientation:duration:

首先,上述方法是否不适用于自动布局?该方法在 Autolayout 关闭的情况下被调用。我正在尝试更改旋转视图的背景图像,不知道如何通过启用自动布局约束来实现这一点?

我也尝试使用Moin的过程,但我有一个巨大的视图层次结构,并且这些方法是从 superview 开始调用的,而且我在其他方法中有很多其他代码,比如。所以它没有帮助

didRotateFromInterfaceOrientation  
4

2 回答 2

1

简短的回答: -willRotateToInterfaceOrientation:duration: AutoLayout 一起使用。

长答案:假设您使用的是 NIB,那么许多复合问题可能会出错;我编制了这份清单:

  1. 您是否按照 @JoshJustice 在 Loaded nib 的建议在 IB 中设置了自定义 UIViewController但未设置视图出口 - InterfaceBuilder 的新手
  2. 您是否按照@nybon 在UIViewController 的建议正确处理自动旋转不会自动旋转
  3. 您是否按照@NateFlink 在为 iOS7 中的一个视图控制器处理自动旋转plist中的建议设置了全局方向
  4. 您的自定义 UIViewController 是否响应-supportedInterfaceOrientations不正确的值?请参阅@AndrewHershberger 在preferredInterfaceOrientationForPresentation 的推荐回复必须返回受支持的界面方向(iOS 6)
于 2014-07-12T01:55:24.753 回答
1

-willRotateToInterfaceOrientation:duration:根视图控制器及其所有子视图控制器上调用并使用自动布局。如果您希望在特定视图控制器上调用这些方法,它必须是根视图控制器的子视图控制器。

我花了一段时间才弄清楚从根到最后一个视图控制器的层次结构在某个时候被打破了。我只需要将它添加回子视图控制器。

于 2014-07-20T10:46:59.400 回答