- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
我的代码在设备旋转时不止一次收到此事件。我在 Apple 文档中搜索以供参考,但似乎并不幸运。谁能提供一个提示为什么会这样?
我的代码是 Apple doc 示例代码 ( AlternateViews ),除了一些日志之外没有任何更改。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
我的代码在设备旋转时不止一次收到此事件。我在 Apple 文档中搜索以供参考,但似乎并不幸运。谁能提供一个提示为什么会这样?
我的代码是 Apple doc 示例代码 ( AlternateViews ),除了一些日志之外没有任何更改。
如果您为定向返回 NO,它将继续尝试,直到您返回 YES。例如,如果您对横向右侧返回 NO,它可能会尝试横向左侧。如果您对所有内容都返回 NO,则它不会旋转。并且可以在任意时间调用此方法,而不是严格在发生旋转时调用。例如,当一个新视图弹出到导航控制器上时,即使没有发生旋转,也会查询新视图。
我是 iPhone dev 的新手,但我认为它被多次调用的原因是这shouldAutorotateToInterfaceOrientation
不是一个事件。它只是意味着采取UIInterfaceOrientation
并返回YES
或NO
取决于是否支持自动旋转。
Apple 文档显示定义UIInterfaceOrientation
为:
typedef enum {
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;
因此,您应该覆盖该方法的只是检查interfaceOrientation
上述一项或多项,并说明视图是否应自动旋转到它。