0

我正在为iPhone iOS 6.0开发Appcelerator Titanium应用程序。有一个控制器打开它,其中包含一个图像Ti.UI.TabGroupTi.UI.Window

一切正常,但只是在第一个标签打开时。事实上,当我点击另一个选项卡然后我返回图库选项卡时,所有图像(除了一个我不知道为什么)都会消失。我验证了imageViews对象仍然具有它们的属性,但被隐藏了。

在此处输入图像描述

这是画廊和 imagesView 的代码,试图获得类似“网格”的布局。

    var imagesViewsArray = [];
for(var i=0,images=imageAlbums[0].images;i<images.length;i++){
    var element =Ti.UI.createImageView({
        image : images[i],
        width : 100, height: 75, right:5,
    });
    element.addEventListener('singletap',function(e){
        // [cut] Opening modalWindow with fullscreen image
    });
    imagesViewsArray.push(element);
}

var wrapper = Titanium.UI.createView({
    height: Ti.UI.SIZE,
    width:'auto', layout: 'horizontal',
    left: 5,  top: 5,       bottom: 5,
    children: imagesViewsArray
});

var scrollView = Ti.UI.createScrollView({
    style:'vertical', contentWidth:'auto',
    contentHeight:'auto', layout:'vertical',
    width: '100%' , scrollType: 'vertical',
    showVerticalScrollIndicator: true,
    children: [ wrapper ]
});

galleryWin.add( scrollView );
4

1 回答 1

0

嗯,这对我来说是一个新的。"children" 应该是一个只读属性。因为您正在通过数组设置子视图,所以它们没有被正确地添加到父视图中,或者正如您所注意到的那样,没有被保留。他们过早地离开了。

要使其正常工作,请将 .add(eachChildView) 显式添加到父视图。

您可以通过将 singletap 事件侦听器移动到父视图来进一步优化,然后检测 evt.source 是否是您的孩子之一(如果 (evt.source.image) ...)。

于 2012-11-27T23:44:57.460 回答