我正在使用Titanium Alloy来构建iOS应用。我遇到了一个特别令人沮丧的问题,我已经坚持了很长时间。

用户登录后,我的目标是使登录窗口动画化(翻转)到仪表板窗口。除此错误外,此方法效果很好。在“播放器”仪表板栏向下跳转到正确位置之前,“登录”导航顶部栏似乎会显示一秒钟。

直到翻转动画完成为止,看起来都是这样:


动画完成后,它跳转到:


仪表板页面是一个类似于此的TabGroup,初始选项卡的标题为“ Player”:

<TabGroup>
    <Tab icon="player_icon.png">
        <Window id="playerTab" title="Player"/>
    </Tab>
</TabGroup>


登录控制器是一个带有“登录”窗口和“注册”窗口的NavigationWindow。

成功提交登录表单后,我将创建索引控制器(仪表板):

Alloy.createController('index', { animate: true, loginSuccess: true });


其中的初始化代码如下所示:

if (!AppData.isLoggedIn() && !args['loginSuccess']) {
    // Splash contains the register/login forms
    Alloy.createController('splash');
} else {
    // Check if the user is logging in or resuming previous state
    if(args['animate']) {
        $.index.open({ transition: Ti.UI.iPhone.AnimationStyle.FLIP_FROM_LEFT });
    } else {
        $.index.open();
    }
}


有谁知道为什么会发生这个错误?感谢您的帮助!

谢谢!

最佳答案

弄清楚了!事实证明,在动画完成之前,翻转动画不考虑状态栏的高度,因此我为TabGroup设置了初始的上边距20,并在动画完成后删除了边距。

现在很棒!

10-08 09:22
查看更多