定向模式仅适用于一个屏幕 - iPhone

时间:2013-02-12 05:38:44

标签: ios titanium orientation landscape portrait

我使用与iPhone兼容的Titanium开发应用程序。我在4个视图之间导航。 第一视图(肖像)--->第二视图(风景) - >第3视图(肖像)--->第4视图(肖像) 我的应用程序中有3个纵向视图,我使用 Tiapp.xml 并添加

<orientations device="iphone">
     <orientation>Ti.UI.PORTRAIT</orientation>
</orientations>

对于第二视图,我使用了以下代码;

var winCheckInLogin = Ti.UI.createWindow({
    backgroundColor : "black",
    orientationModes : [Titanium.UI.LANDSCAPE_LEFT, Titanium.UI.LANDSCAPE_RIGHT],
    navBarHidden : true, // Hides the native title bar
});

winCheckInLogin.addEventListener("open", function() {
    Titanium.UI.orientation = Titanium.UI.LANDSCAPE_LEFT;
});

但是对于加载时间,在我旋转设备后,第二个视图出现在纵向模式下,它将其保持为横向。我需要将其加载为横向模式并按原样锁定该屏幕。

请帮我解决这个问题。

非常感谢

2 个答案:

答案 0 :(得分:1)

在你的tiapp.xml中

<orientations device="iphone">
     <orientation>Ti.UI.PORTRAIT</orientation>
     <orientation>Ti.UI.LANDSCAPE_LEFT</orientation>
     <orientation>Ti.UI.LANDSCAPE_RIGHT</orientation>
</orientations>

对于所有Windows(而不是视图),请务必将该窗口的属性添加为:

orientationModes: [Ti.UI.PORTRAIT]

for Portrait-only Windows,

仅适用于lanscape:

orientationModes: [Ti.UI.LANDSCAPE_LEFT, Ti.UI.LANDSCAPE_RIGHT]

这应该是你正在寻找的技巧。

答案 1 :(得分:1)

加扬,    建议不要在iPhone中为单个应用程序使用不同的方向模式。请阅读Orientation design principles

  

Apple's Developer documentation说:“人们希望使用你的   应用程序在不同的方向,当你可以实现这一点时,它是最好的   期望。“换句话说,不要把处理方向视为一种方式   麻烦但是机会。

     Apple建议在选择锁定或支持时进一步建议   方向,您应该考虑遵循以下原则:

     

在iPhone / iPod Touch上 - 不要在单个应用程序中混合窗口的方向;因此,要么锁定整个应用程序的方向,要么对方向更改作出反应。

     

在iPhone上 - 不支持纵向倒置方向,因为这可能会在接到电话时让用户手机倒置。

但是,如果您想使用不同的方向,只需将以下内容添加到<orientations device="iphone">标记

下的tiApp.xml中
<orientations device="iphone">
     <orientation>Ti.UI.LANDSCAPE_LEFT</orientation>
     <orientation>Ti.UI.LANDSCAPE_RIGHT</orientation>
</orientations>

这将为你做好准备!!

http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-orientationModes