0

我正在使用与 iPhone 兼容的 Titanium 开发应用程序。我在 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;
});

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

请帮我解决这个问题。

非常感谢

4

2 回答 2

1

在你的 tiapp.xml

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

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

orientationModes: [Ti.UI.PORTRAIT]

对于仅纵向 Windows,

并且仅用于横向:

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

这应该可以解决您正在寻找的技巧。

于 2013-02-13T00:47:51.717 回答
1

Gayan,不建议在 iPhone 中为单个应用程序使用不同的方向模式。请阅读方向设计原则

Apple 的开发者文档说:“人们希望以不同的方向使用您的应用程序,而当您能够满足这种期望时,这是最好的。” 换句话说,不要将处理方向视为麻烦,而是机会。

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

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

在 iPhone 上 – 不支持纵向倒置方向,因为这可能会使用户在接听电话时将手机倒置。

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

<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

于 2013-02-13T04:15:37.313 回答