1
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

我的代码在设备旋转时不止一次收到此事件。我在 Apple 文档中搜索以供参考,但似乎并不幸运。谁能提供一个提示为什么会这样?

我的代码是 Apple doc 示例代码 ( AlternateViews ),除了一些日志之外没有任何更改。

4

2 回答 2

4

如果您为定向返回 NO,它将继续尝试,直到您返回 YES。例如,如果您对横向右侧返回 NO,它可能会尝试横向左侧。如果您对所有内容都返回 NO,则它不会旋转。并且可以在任意时间调用此方法,而不是严格在发生旋转时调用。例如,当一个新视图弹出到导航控制器上时,即使没有发生旋转,也会查询新视图。

于 2010-05-12T19:01:41.470 回答
3

我是 iPhone dev 的新手,但我认为它被多次调用的原因是这shouldAutorotateToInterfaceOrientation不是一个事件。它只是意味着采取UIInterfaceOrientation并返回YESNO取决于是否支持自动旋转。

Apple 文档显示定义UIInterfaceOrientation为:

typedef enum {
   UIInterfaceOrientationPortrait           = UIDeviceOrientationPortrait,
   UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
   UIInterfaceOrientationLandscapeLeft      = UIDeviceOrientationLandscapeRight,
   UIInterfaceOrientationLandscapeRight     = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;

因此,您应该覆盖该方法的只是检查interfaceOrientation上述一项或多项,并说明视图是否应自动旋转到它。

于 2010-05-12T18:44:53.197 回答