ios - Titanium 仅在 ImageView 可见时延迟加载

标签 ios titanium lazy-loading

我有 10 个 ImageView 相互堆叠。 (for 循环)

其中 9 个设置为 visible = false。

其中 1 个设置为 visible = true。

我想知道是否有一种方法可以仅在 imageview 可见性设置为 true 时加载图像。即在 ImageView 从堆栈中移除之后。

我遇到的问题是它同时加载堆栈中的所有图像,减慢了一切。

    for (var i = 0; i < peopleJson.users.length; i++) {

            //create containers to store every child object

            containers[i] = Titanium.UI.createView({
                id : 'container',
                visible : false,
                width : '100%',
                zIndex : '0',

            });


            imageSwipeView[i] = Titanium.UI.createImageView({
                image : peopleJson.users[i].pictures[0],
                visible : true,
                containerObj : containers[i],
                containerObjPrev : containers[temp],
                pictures : peopleJson.users[i].pictures,
                indImageView : indImageView[i],
                basket : LabelBasket[temp],
                top : 0,
                zIndex : 2,
                width : '100%',
                defaultImage : 'images/plainbg.png',
                height : 510,

            });

    containers[i].add(imageSwipeView[i]);

    win.add(containers[i]);

    if (i == (peopleJson.users.length - 1)) {

        //show last container  when for loop is executed

        containers[i].visible = true;
        $.view_indicator.visible = false;


    }

[..]

这个代码片段基本上是说将容器堆叠在一起,一旦循环执行显示最后一个容器。

稍后,我为每个 ImageView 创建了一个 onclick 事件,如果单击,它会移除堆栈顶部的容器并使下方的容器可见。

我正在尝试做的是仅在容器可见时加载 imageView 远程图像。现在,它将尝试加载可见或不可见的图像。

最佳答案

您可以尝试将图像路径设置为不同的属性:

imageSwipeView[i] = Titanium.UI.createImageView({
    _image : peopleJson.users[i].pictures[0],
    ...
})

当你设置 visible = true 更新 image 属性时:

containers[i].visible = true;
if (!imageSwipeView[i].image) {
    imageSwipeView[i].image = imageSwipeView[i]._image;
}

$.view_indicator.visible = false;

关于ios - Titanium 仅在 ImageView 可见时延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24374502/

相关文章:

ios - Swift-在另一个ViewController中的ContainerView中访问UIButton

具有目标操作的单元格上的 iOS UIButton,单元格未在 (id)sender 中更新

ios - 创建时间间隔 Swift 列表

javascript - 钛金应用程序中的Unicode字符 'BULLET'

android - 运行钛安卓应用程序时无法加载 native 库

javascript - Webpack html-loader,包含用于延迟加载的 data-src 图像

android - 使用 ViewHolder 滚动 ListView 时图像被随机播放

ios - 打开相同开头的不同链接

ios - 钛create2DMatrix丑陋的改造结果

javascript - 简单 'lazy loading'图像的正确方法