我试图在Titanium项目中制作一个“UINavigationController类型动画”,但是目前当我做动画时,它会做一个“回弹”动画,其中视图“出来”另一个“去了” ”。我已经设法弄清楚决定动画结束位置的值是什么,即动画的left
属性,但是如何设置动画的开始位置?
控制动画的代码:
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 :(得分:0)
我不知道UINavigationController类型动画是怎样的,但是为了控制动画的开始位置,你必须设置视图的左边属性(这适用于我没有在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到left = 0。
也许您必须在为窗口设置动画之前添加超时才能使其正常工作。
希望有所帮助