Ошибка с флип-анимацией с использованием Titanium Alloy

Я использую 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();
    }
}

У кого-нибудь есть идеи, почему эта ошибка может происходить? Я ценю любую помощь!

Спасибо!

1 ответ

Догадаться! Оказывается, что анимация переворачивания не учитывала высоту строки состояния, пока анимация не была закончена, поэтому я установил начальное верхнее поле в 20 для TabGroup и удалил поле после завершения анимации.

Отлично работает сейчас!

Другие вопросы по тегам