我注意到启动应用程序的system.orientation给出了iphone5S的build.settings中定义的默认方向。我已经在iPad2和iPadMini上测试了相同的代码,并得到了正确的答案,但是对于iphone5S,我总是得到build.settings默认设置,无论应用程序在哪个方向启动,任何提示或想法?
build.settings
orientation = {
default = "portrait",
supported = {
"landscapeLeft", "landscapeRight", "portrait", "portraitUpsideDown"
}
main.lua
print ( system.orientation ) -- gives wrong answer on iphone5S but not ipad2 or ipad Mini ?
我使用print作为示例,实际上我将字符串发送到设备屏幕。
我基本上必须旋转5S才能开始获得正确的方向细节,默认情况下,山雀总是说“肖像”。你可以想象在iphone5S上最少运行我的应用程序很烦人。
使用版本:版本2013.2100(2013.12.7)
答案 0 :(得分:0)
好的。
iPad你可以信任system.orientation ...但iPhone你必须等待第一个"方向"在你可以信任之前改变!假设您的代码中有一个类似的设备类型,
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
此外,您还必须测试模拟器并正常启动。
干杯