在Titanium Mobile中開發。從ScrollView中刪除視圖
我需要從單擊刪除按鈕時,從scrollView中刪除視圖。當我的按鈕被點擊時,我有一個自定義事件觸發,scrollView偵聽。我的問題是,我如何引用需要刪除的視圖?這些視圖會動態添加到scrollView,並且沒有關於視圖的唯一信息。我嘗試在發射自定義事件時傳遞視圖本身,但這不起作用。我如何告訴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