UIDeviceOrientationDidChangeNotification在加速度计发生微小变化时多次调用

时间:2011-07-28 04:19:22

标签: iphone objective-c uiinterfaceorientation nsnotificationcenter

我正在使用

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(detectOrientation) name:@"UIDeviceOrientationDidChangeNotification" object:nil];

在我的appdelegate中对某些视图进行更改。

但这可以通过加速度计的最轻微变化来调用。任何人都可以建议任何解决方法,以便只有在设备完全旋转时才会调用它。 感谢

2 个答案:

答案 0 :(得分:1)

您可以在发布通知之前编写一些代码来检查设备的宽度= 480和高度= 320(这是设备旋转90度的时间)吗?

类似于:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

...

if(width == 480 && height == 320)
{
    [[NSNotificationCenter defaultCenter] postNotification . . . ];
}

答案 1 :(得分:0)

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
     //your code here
}

在视图控制器中覆盖此方法。当设备旋转到新方向时,它将被调用