2015-01-03 3 views
0

Я использую титановый сплав для создания приложения для iOS. Я столкнулся с особенно неприятной проблемой, с которой я сейчас немного застрял.Ошибка с флип-анимацией с использованием титанового сплава

Как только пользователь войдет в систему, моя цель - активировать окно входа в систему (перевернуть) в окно панели. Это хорошо работает, за исключением этой ошибки. Верхняя панель навигации для входа в систему, похоже, показывается на секунду, прежде чем панель приборной панели проигрывателя скачет вниз в нужное место.

Похоже, это до тех пор, покадровая анимация не будет завершена: It looks like this until the animation completes.

После завершения анимации он подскакивает к этому: After animation completed

На странице приборной панели является TabGroup, сродни этому, и начальная вкладка имеет название «Игрок»:

<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

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

Прекрасно работает!

Смежные вопросы