Ios 钛合金移动导航组。在新窗口完全渲染之前打开过渡
我目前正在开发一款iPad应用程序,遇到了以下问题 当我试图打开一个包含一组按钮的新窗口时,这些按钮是在循环中创建的,在转换过程中,只有第一个按钮可见,其余按钮将在新窗口可见后渲染。看起来很糟糕,我想不出一种方法来“等待”滑动,直到一切就绪(有点像jquery的就绪,或者加载DOM元素时的回调) 以下是我正在做的:Ios 钛合金移动导航组。在新窗口完全渲染之前打开过渡,ios,mobile,titanium,Ios,Mobile,Titanium,我目前正在开发一款iPad应用程序,遇到了以下问题 当我试图打开一个包含一组按钮的新窗口时,这些按钮是在循环中创建的,在转换过程中,只有第一个按钮可见,其余按钮将在新窗口可见后渲染。看起来很糟糕,我想不出一种方法来“等待”滑动,直到一切就绪(有点像jquery的就绪,或者加载DOM元素时的回调) 以下是我正在做的: clicker.addEventListener('click', function(e){ var overview = Ti.UI.createWindow( {
clicker.addEventListener('click', function(e){
var overview = Ti.UI.createWindow( {
title : "Overview",
barColor: '#000',
layout : 'vertical',
url: '/views/overview.js',
_parent: Titanium.UI.currentWindow,
navGroup : navGroup,
rootWindow : win1
});
navGroup.open(overview, {animated:true});
});
在overview.js中,我执行以下操作:
var overviewdata = [/*some data*/];
for(var i = 0;i < overviewdata.length;i++){
//calculations for proper positioning
if(i == 0 || i%4 == 0){
toppx = 30;
leftpx = 40;
}
else
{
leftpx += 245;
toppx = -200;
}
overviewbttns[i] = Ti.UI.createButton({
title: overviewdata[i].title,
backgroundImage:"/images/views/button.png",
width: 200,
height: 200,
left: leftpx,
top: toppx,
id: i
});
//add to window
win.add(overviewbttns[i]);
//attach event handler
overviewbttns[i].addEventListener('click',function(e){
var w = Ti.UI.createWindow( {
title : overviewdata[e.source.id].title,
barColor: '#000',
layout : 'vertical',
url: "/views/"+overviewdata[e.source.id].jsfile,
_parent: Titanium.UI.currentWindow,
navGroup : win.navGroup,
rootWindow : win.rootWindow
});
win.navGroup.open(w);
});
}
var overviewdata=[/*部分数据*/];
对于(变量i=0;i
那么,当概览窗口完全呈现时,是否有方法获取回调/事件
谢谢你的任何暗示,我真的被困在这里了
提前谢谢 我有一个想法,创建一个函数,将你的overview.js代码放入,当你点击clicker按钮打开overview.js触发自定义事件,如
Ti.App.fireEvent('loadData')
然后打开窗口,希望这对您有所帮助
Ti.App.addEventListener('loadData',function(e){
callFunction(); //== call function for fill data into window
});
我有一个想法,创建一个函数,将你的overview.js代码放入,当你点击clicker按钮打开overview.js时触发自定义事件,如
Ti.App.firevent('loadData')
然后打开窗口,希望这对您有所帮助
Ti.App.addEventListener('loadData',function(e){
callFunction(); //== call function for fill data into window
});
@尼廷:是的,你是对的 也读。这也是非常有用的,请详细描述。
我认为这对新手非常有用。奶酪 尼廷是的,你是对的 也读。这也是非常有用的,请详细描述。
我认为这对新手非常有用。奶酪 有人吗?仍在努力让它发挥作用,但事实并非如此。有办法“预渲染”窗口吗?有人吗?仍在努力让它发挥作用,但事实并非如此。有没有一种方法可以“预渲染”窗口?这个想法指向正确的方向,如果实施得当,应该会奏效。但对于我的具体问题,我发现包括“overview.js”导致了延迟。因此,我最终将生成按钮的部分代码移动到父窗口。这个想法指向正确的方向,如果实施得当,应该会奏效。但对于我的具体问题,我发现包括“overview.js”导致了延迟。因此,我最终将生成按钮的部分代码移动到父窗口。现在它工作得很好。