从ScrollView中删除视图
在Titanium Mobile中开发。从ScrollView中删除视图
我需要从单击删除按钮时,从scrollView中删除视图。当我的按钮被点击时,我有一个自定义事件触发,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);
有没有办法在scrollView中获取视图(e.src.parent)索引?我想问的原因是我也想删除与此视图关联的对象。该对象全局存储在列表中。我认为视图的索引将与列表中对象的索引相同。 – Chris 2012-01-16 19:41:22
这将很难得到索引,因为它不是一个TableView。最简单的方法可能是为视图设置一个ID(我更新了上面的代码),在创建和删除时将相同的ID赋给对象 - 删除具有请求的ID的对象。 – 2012-01-18 01:22:22
这是可以在创建过程中分配一个唯一的标识符,您可以稍后使用 – 2012-01-14 20:55:10
Like ID:myUniqueID?我想到了这一点,但我需要想出一种方法来创建一个uniqueID。我想我可以使用一个随机数。 scrollView实际上可以包含重复的项目,所以视图本身没有任何独特之处。另外,我如何找到这个观点?我循环浏览所有的scrollView儿童检查ID吗? – Chris 2012-01-14 21:04:44
如果你有几个,只有一个按钮,你想删除哪个视图? – 2012-01-14 22:22:59