如何在iphone/ipod中控制设备的方向?
我必须在纵向模式下旋转设备,但当我使用如何在iphone/ipod中控制设备的方向?,iphone,Iphone,我必须在纵向模式下旋转设备,但当我使用 (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations //[[[UIApplication sharedApplication]keyWindow]subviews removeFromSuperview ]; // retur
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
//[[[UIApplication sharedApplication]keyWindow]subviews removeFromSuperview ];
// return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
return YES;
}
下面的代码在模拟器上运行良好,但当我在设备中安装代码时,它会使设备变得非常敏感,如果我只是稍微改变设备中的位置,它就会执行此代码并转到我在手机旋转时显示的视图
请任何人告诉我,我如何控制设备的灵敏度,我的意思是,我只是想当用户完成90'旋转的位置比我的代码应该执行,但它只是执行,如果只是在相同的位置晃动手机
谢谢你的帮助
Balraj verma您可能希望缓冲方向信息;也就是说,只有在您从传感器接收到一行中的多个指示,表明方向与当前显示的方向不同后,才能更改方向。您可能希望缓冲方向信息;也就是说,只有在您收到传感器发出的一行多个指示,表明方向与当前显示的方向不同后,才能更改方向。根据我对您所写内容的理解,当设备旋转时,您的应用程序太敏感了?很难理解为什么会这样;您包含的代码声明您的应用程序愿意接受任何旋转,但您没有说明如何处理之后的旋转事件 根据这些信息,我只能建议您在代码中添加一个检查(可能在处理旋转事件时),并使用以下方法从设备获取方向:
[[UIDevice currentDevice] orientation];
它将返回一个UIInterfaceOrientation枚举,说明设备的当前方向
UIDeviceOrientationPortrait
UIDeviceOrientationPortraitUpsideDown
UIDeviceOrientationLandscapeLeft
UIDeviceOrientationLandscapeRight
然后,您可以使用它来确定是否需要更改方向。(注意:这是iPhone OS 2.0。我相信OS 3.0有更多功能,包括面朝上/向下躺着等。)
如果您发现方向切换过快,您可能需要缓冲信息,创建几个采样点,以便在切换到新方向之前进行比较。根据我对您所写内容的理解,当设备旋转时,您的应用程序是否太敏感?很难理解为什么会这样;您包含的代码声明您的应用程序愿意接受任何旋转,但您没有说明如何处理之后的旋转事件 根据这些信息,我只能建议您在代码中添加一个检查(可能在处理旋转事件时),并使用以下方法从设备获取方向:
[[UIDevice currentDevice] orientation];
它将返回一个UIInterfaceOrientation枚举,说明设备的当前方向
UIDeviceOrientationPortrait
UIDeviceOrientationPortraitUpsideDown
UIDeviceOrientationLandscapeLeft
UIDeviceOrientationLandscapeRight
然后,您可以使用它来确定是否需要更改方向。(注意:这是iPhone OS 2.0。我相信OS 3.0有更多功能,包括面朝上/向下躺着等。)
如果发现方向切换过快,可能需要缓冲信息,创建几个采样点,以便在切换到新方向之前进行比较