TableView行在单击时会更改颜色

时间:2018-07-19 22:36:22

标签: ios tableview appcelerator-titanium

我的iOS项目中有一个表格视图,其中包含一些表格行。该项目仅适用于iOS。

这是我创建表格视图并填充它的方式:

exports.layoutFavoritos = function() {
    require("layoutAddHeader").addHeader(Ti.App.myWindow.children[0].children[0].children[1], "Favoritos");
var tableData1 = [];

tableData1.push(Ti.UI.createTableViewSection({
    headerView : require("addStickyHeader").addStickyHeader("Peixes"),
}));

for (var i = 0; i < 30; i++) {
    tableData1.push(require("addItemListagem").addItemListagem("/images/a1.jpg", "", "", 0, i, "a"));

    if (i == 0) {
        tableData1[tableData1.length - 1].top = require("toDP").toDP(30);
    }
}

tableData1.push(Ti.UI.createTableViewSection({
    headerView : require("addStickyHeader").addStickyHeader("Plantas"),
}));

for (var i = 0; i < 30; i++) {

    var view = Ti.UI.createView({
        height : Ti.UI.SIZE,
        width : Ti.UI.SIZE
    });

    view.add(require("addItemListagem").addItemListagem("/images/a2.jpg", "", "", 0, i, "b"));

    tableData1.push(view);
    if (i == 0) {
        tableData1[tableData1.length - 1].top = require("toDP").toDP(30);
    }
}

var tableView = Ti.UI.createTableView({
    data : tableData1,
    separatorColor : "transparent",
    backgroundColor : "transparent",
    // selectionStyle : Ti.UI.iPhone.TableViewCellSelectionStyle.NONE
});

tableView.addEventListener("click", function(e) {
    console.log(e.rowData.id + e.rowData.tagLocal);
});

Ti.App.myWindow.children[0].children[1].add(tableView);

};

这就是我创建行的方式:

exports.addItemListagem = function(imagem, nomeComum, nomeCientifico, favorito, id, local) {
    var viewItemListagem = Ti.UI.createTableViewRow({
        height : Ti.UI.SIZE,
        width : "100%",
        id : id,
        tagLocal : local,
        backgroundSelectedColor : 'transparent',
        selectedBackgroundColor : 'transparent',
        selectedColor : 'transparent',
        item_type : 'ROW',

    // selectionStyle : Titanium.UI.iPhone.TableViewCellSelectionStyle.NONE,
    // selectionStyle : Ti.UI.iPhone.TableViewCellSelectionStyle.NONE
});

viewItemListagem.add(Ti.UI.createView({
    bottom : require("toDP").toDP(30),
    viewShadowRadius : 3,
    viewShadowColor : '#888888',
    height : Ti.App.screenSize[0] * 0.16,
    width : Ti.App.screenSize[1] - require("toDP").toDP(30) * 2,
    borderRadius : 10,
    viewShadowOffset : {
        x : 0,
        y : 2
    },
}));

viewItemListagem.children[0].add(Ti.UI.createView({
    height : Ti.App.screenSize[0] * 0.16,
    width : Ti.App.screenSize[1] - require("toDP").toDP(30) * 2,
    borderRadius : 10,
    backgroundColor : "#ffffff",
}));

viewItemListagem.children[0].children[0].add(Ti.UI.createView({
    image : imagem,
    height : Ti.App.screenSize[0] * 0.16,
    width : Ti.App.screenSize[0] * 0.16,
    left : 0
}));

require("resizeImage").resizeImage(imagem, 0.16, (0.16 * Ti.App.screenSize[1]) / Ti.App.screenSize[0], viewItemListagem.children[0].children[0].children[0], true, 0, 0);

return viewItemListagem;

};

问题在于,当我单击一行时,其冷却器变为透明,而我不希望那样。我尝试使用selectionStyle属性,但是没有用。

this image shows my layout without any click

this image shows my layout when I click on a row, but I don't want to change the row color. I need that the row keeps the color from the first image.

1 个答案:

答案 0 :(得分:0)

检查图像后,认为问题是UITableview单元格的SelectionStyle样式。请进行以下更改

对于目标-c

cell.selectionStyle = UITableViewCellSelectionStyleNone;

对于Swift

cell.selectionStyle = .none