某些应用(facebook,9gag)具有此功能。当用户向上滚动时,导航栏逐渐隐藏到消失的点。然后,当用户向下滚动时,navigationBar会逐渐显示自己(取决于滚动的速度)。
我们尝试通过调整滚动事件上导航视图的高度在 Titanium 上实现此功能,但它是滞后且非常慢的:
scrollView.addEventListener('touchstart',function(e){
boolScroll=true;
});
scrollView.addEventListener('scroll',function(e){
if(boolScroll){
auxScroll=e.y;
boolScroll=false;
}
var bh=bars.height;
var sh=scrolls.height;
if(auxScroll<e.y)//scrolling down
if(bars.height>appHeight*0.08){
bars.height=bh-appHeight*0.005; //rate for hiding
if(scrolls.height<appHeight*0.7)
scrolls.height=sh+appHeight*0.005;//same rate to increase the height of the scroll
}
if(auxScroll>e.y)//scrolling up
if(bars.height<appHeight*0.08){
bars.height=bh+appHeight*0.005;
if(scrolls.height>appHeight*0.7)
scrolls.height=sh-appHeight*0.005;
}
});
我们也试过在视图上使用翻译动画,但仍然很慢。
在this问题上有针对iOS的解决方案。任何帮助将不胜感激!
答案 0 :(得分:1)
不知道你是否解决了这个问题,但我做了一个对我有用的技巧(至少对于导航栏) 这是片段:
self.addEventListener('scroll',function(e){
if(e.contentOffset.y > 20) NavigationWindow.window.hideNavBar();
if(e.contentOffset.y < 20) NavigationWindow.window.showNavBar();
});
NavigationWindow是Ti.UI.iOS.createNavigationWindow的一个实例,self可以是tableview,view,scrollview或一个窗口(在我的例子中)
答案 1 :(得分:0)
这实际上是一个非常好的功能。 Appcelerator刚刚解决了这个问题,并且应该根据此票证在6.0版本上提供:https://jira.appcelerator.org/browse/TIMOB-23684