我注意到启动应用程序时,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/