仅适用于一个窗口的方向纵向和PortraitUpSideDown

时间:2014-02-19 07:14:54

标签: javascript ios titanium orientation titanium-alloy

我有10个窗口。

初始窗口是loginWindow我想设置Portrait和PortraitUpSideDown的方向。 剩下的窗户将有横向和纵向。

在Tiapp.xml中

        <key>UISupportedInterfaceOrientations~iphone</key>
        <array>
            <string>UIInterfaceOrientationPortrait</string>
            <string>UIInterfaceOrientationPortraitUpsideDown</string>
            <string>UIInterfaceOrientationLandscapeLeft</string>
            <string>UIInterfaceOrientationLandscapeRight</string>
        </array>

设置我的应用程序的所有方向,以启用纵向,纵向倒置,landscapeLeft和landscapeRight。

对于LoginWindow,我只需要那些肖像和portraitUpSideDown 窗口的其余部分确实具有纵向,纵向倒置,landscapeLeft和landscapeRight的所有方向。

任何人都可以建议我如何能够为我的应用程序获取此行为。

3 个答案:

答案 0 :(得分:1)

您需要使用不同的窗口并为每个窗口定义您想要允许的方向。

我的意思是,你必须像这样创建loginWindow:

var loginWindow = Ti.UI.createWindow({
    orientationModes : [Ti.UI.PORTRAIT, Ti.UI.UPSIDE_PORTRAIT],
    fullscreen : false,
    navBarHidden : true

});
winPortrait.orientationModes = [Ti.UI.PORTRAIT, Ti.UI.UPSIDE_PORTRAIT];

要允许所有方向的Windows必须像这样创建:

var appWindow = Titanium.UI.createWindow({

    width : Ti.UI.FILL,
    height : Ti.UI.FILL,
    fullscreen : false,
    navBarHidden : true,
    orientationModes : [Ti.UI.PORTRAIT, Ti.UI.UPSIDE_PORTRAIT, Ti.UI.LANDSCAPE_LEFT, Ti.UI.LANDSCAPE_RIGHT]
});
appWindow.orientationModes = [Ti.UI.PORTRAIT, Ti.UI.UPSIDE_PORTRAIT, Ti.UI.LANDSCAPE_LEFT, Ti.UI.LANDSCAPE_RIGHT];

希望有所帮助

答案 1 :(得分:0)

将您的loginWindow显示为模态视图,然后将此方法设置为所需的方向。

- (BOOL) shouldAutorotate
{            
    return NO;
}

 - (NSUInteger) supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

答案 2 :(得分:0)

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

  

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

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

     

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

     

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

但是,您可以使用orientationMode property of window

实现特定窗口的方向