A有多个WebView视图。我需要在coverFlowView中创建它。为此我将我的视图设为图像,放在coverFlow之后,但问题是我得到的图像没有加载webView ...我试图制作setTimeout,但它没有帮助。
var cover = Titanium.UI.iOS.createCoverFlowView({
images: forflowImages
});
for (var k = start; k < cData.length; k++) {
r = Ti.UI.createView({});
for (var j = 0; j < child.objects.length; j++) {
tmp = Ti.UI.createWebView({
left : 10,
top : 10,
right : 10,
bottom : 10,
width : Ti.UI.FILL,
height : Ti.UI.SIZE,
willHandleTouches: true,
backgroundColor : '#fff2df',
});
tmp.html = obj.html;
no.add(tmp);
r.add(no);
}
}
r.addEventListener("load", function(e) {
blob = r.toImage();
});
forflowImages.push(blob);
}
cover.setImages(forflowImages);
使用此代码,coverFlowView没有任何视图。
setTimeout(function() {
blob = r.toImage();
}, 500);
也没有帮助,我在页面上保存了活动指示,内容似乎没有时间加载到图像功能之前。
答案 0 :(得分:0)
您订购的内容方式错误,并且您有多个语法错误,而且您正在侦听错误类型的视图上的load
事件,您应该在WebView上进行监听,请尝试以下方法:< / p>
var forflowImages = [];
var container = // This should already be in the view stack somewhere
var cover = Titanium.UI.iOS.createCoverFlowView();
function loadListener(e) {
forflowImages.push(e.source.toImage());
if(forFlowImages.length == child.objects.length) {
// We have all the images for cover flow
cover.setImages(forflowImages);
}
}
var containerView = Ti.UI.createView();
for (var j = 0; j < child.objects.length; j++) {
var tmp = Ti.UI.createWebView({html : obj.html);
tmp.addEventListener("load", loadListener);
container.add(tmp);
tmp.repaint();
}
我删除了一些在语法上不正确的代码并将其修剪下来,因此很容易理解。所有这些代码都是添加一个事件监听器来处理webview到图像的转换。