Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iphone/ipod中控制设备的方向?_Iphone - Fatal编程技术网

如何在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有更多功能,包括面朝上/向下躺着等。)

如果发现方向切换过快,可能需要缓冲信息,创建几个采样点,以便在切换到新方向之前进行比较