我注意到启动应用程序时,system.orientation给出了iphone5S的build.settings中定义的默认方向。我已经在iPad2和iPadMini上测试了相同的代码,并获得了正确的答案,但是使用iphone5S,无论应用程序启动的方向如何,我始终会获得build.settings默认设置,是否有任何提示或想法?

建筑设置

orientation = {
    default = "portrait",
supported = {
  "landscapeLeft", "landscapeRight", "portrait", "portraitUpsideDown"
}

主lua
print ( system.orientation ) -- gives wrong answer on iphone5S but not ipad2 or ipad Mini ?

我以打印为例,实际上是将字符串发送到设备屏幕。

我基本上必须旋转5S才能开始获得正确的方向细节,默认情况下,山雀总是说“人像”。您可以想象的那样,至少在iphone5S上运行我的应用程序很烦人。

使用内部版本:2013.2100版(2013.12.7)

最佳答案

好的,我知道了。

iPad您可以信任system.orientation ...,但是iPhone您必须等待第一个“方向”更改发生,然后才能信任它!假设您的代码中有一个deviceType这样的东西,

if (deviceType.isApple and not deviceType.is_iPad) then
    system.setAccelerometerInterval(100)   -- Make sure we capture first orientation change by ramping up the sample to 100Hz
    Runtime:addEventListener("orientation", initialOrientationSet) -- capture this first change
else
  -- Launch your app
end

在initialOrientationSet内部执行以下操作:
function initialOrientationSet ()
  Runtime:removeEventListener("orientation", initialOrientationSet)
  system.setAccelerometerInterval (10) -- save some battery power
  -- Launch you app
end

另外,您还必须测试模拟器并正常启动。

干杯

关于ios - Corona SDK system.orientation在iPhone上返回错误的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21544092/

10-12 00:34