2014-02-12 50 views
0

我試圖在Titanium項目中創建「UINavigationController類型動畫​​」,但是當前當我執行動畫時,它確實排序了「彈出」動畫,其中視圖「出來」另一個「去」的地方。我已經設法確定動畫結束位置的值是什麼,即動畫的left屬性,但是如何設置動畫開始的位置?在iPhone和Android中爲視圖更改設置動畫

代碼來控制動畫:

function hideOldWindow() { 

    window.animate(animateOut, function(){}); 

} 

function showNewWindow() { 
    var old = views[currentView]; 
    window.remove(old); 
    currentView = (currentView + 1) % views.length; 
    var win = views[currentView]; 
    viewControllers[currentView].onBecomeVisible(); 
    window.add(win); 
    window.animate(animateIn, function(){});  

} 

var animateIn = Titanium.UI.createAnimation(); 
    animateIn.left = 0; 
    animateIn.duration = 250; 
    animateIn.curve = Ti.UI.ANIMATION_CURVE_EASE_OUT; 

var animateOut = Titanium.UI.createAnimation(); 
    animateOut.left = -screenWidth + 1; 
    animateOut.duration = 250; 
    animateOut.curve = Ti.UI.ANIMATION_CURVE_EASE_OUT; 

回答

0

我不知道是怎麼的UINavigationController類型的動畫,但要控制在動畫開始時,你必須設置視圖的left屬性(此工程的意見我沒有嘗試在Windows上)。

例如,以動畫的圖顯示,從屏幕左邊向中心的,則可以將showNewWindow方法改變爲這樣:

function showNewWindow() { 
    var old = views[currentView]; 
    window.remove(old); 
    currentView = (currentView + 1) % views.length; 
    var win = views[currentView]; 
    viewControllers[currentView].onBecomeVisible(); 
    window.add(win); 

    // NEW LINE 
    window.left = -screenWidth + 1; 

    window.animate(animateIn, function(){});  

} 

現在,窗口將顯示從-screenWidth + 1到左= 0.

也許你必須添加一個超時,然後讓窗口動起來才能使它工作。

希望它有幫助

相關問題