从滚动视图中删除视图

Deleting a view from a ScrollView

本文关键字:视图 删除 滚动      更新时间:2023-09-26

在Titanium Mobile中进行开发。

当单击删除按钮时,我需要从滚动视图中删除一个视图。当我的按钮被点击时,我有一个自定义事件触发,scrollView会监听它。我的问题是,如何引用需要删除的视图?这些视图是动态添加到scrollView中的,并且没有关于视图的唯一信息。我尝试在启动自定义事件时传递视图本身,但这不起作用。如何告诉scrollView要删除哪个视图?

当您在视图中有一个删除按钮时-这是小菜一碟:)只需获取它的父项并删除它-scrollView.remove(e.source.parent);

在这里我创建了一个演示页面:

var scrollView = Titanium.UI.createScrollView({ 
    contentWidth: 'auto', 
    contentHeight: 'auto', 
    top: 0, 
    showVerticalScrollIndicator: true, 
    showHorizontalScrollIndicator: true,
    layout: 'vertical'
}); 
var colors = ['red', 'green', 'blue', 'orange', 'purple', 'yellow'];
for (var i = 0; i < 6; i++) {
    var view = Ti.UI.createView({ 
        backgroundColor: colors[i], 
        borderRadius: 10, 
        width: 300, 
        height: 200, 
        top: 10,
        id: i
    });
    scrollView.add(view); 
    var deleteButton = Ti.UI.createButton({
        borderRadius: 3,
        style: Ti.UI.iPhone.SystemButtonStyle.PLAIN,
        backgroundGradient: {
            type: 'linear', 
            colors: [ '#c7c7c7', '#686868' ], 
            startPoint: { x: 0, y: 0 }, 
            endPoint: { x: 0, y: 30 }, 
            backFillStart: false
        },
        title: 'Delete view ' + i,
        font: { fontSize: 12, fontWeight: 'bold' },
        color: '#fff',
        width: 120,
        height: 30
    });
    view.add(deleteButton);
    deleteButton.addEventListener('click', function(e) {
        Ti.API.info(e.source.id); // use this ID
        scrollView.remove(e.source.parent);
    });
}
Ti.UI.currentWindow.add(scrollView);