数据转换在tablerow中的标签样式

时间:2016-04-25 10:40:38

标签: android ios uitableview appcelerator appcelerator-alloy

我目前正在数据绑定到TableView a,以下是代码:

<Alloy>
    <TableViewRow backgroundColor="{background}" id="businessRow">
        <Label id="st1" class="ribbonIcon1" color="{highlight1}" text="{st1}"/>
        <Label id="st2" class="ribbonIcon2" color="{highlight2}" text="{st2}"/>
        <Label id="st3" class="ribbonIcon3" color="{highlight3}" text="{st3}"/>
        <Label id="st4" class="ribbonIcon4" color="{highlight4}" text="{st4}"/>
        <Label id="st5" class="ribbonIcon5" color="{highlight5}" text="{st5}"/>
    </TableViewRow>
</Alloy>

每个标签都是由{st1}定义的图标字体。我正在使用引用连字的icomoon字体,因此我可以相应地更改图标。我正在使用复选框字体图标进行此测试。

然后,我正在进行数据转换,以突出显示蓝色的图标,这些图标与业务相关联,如果不是灰色,则从SQLite数据库(DesQuery)中提取灰色。

SQL片段和函数

...COUNT(BusinessSites.BusinessID) AS Bqty, sum(case when     Services.ServiceID = "1" then 1 else 0 end) ST1, sum(case when Services.ServiceID = "2" then 1 else 0 end) ST2, sum(case when Services.ServiceID = "3" then 1 else 0 end) ST3, sum(case when Services.ServiceID = "4" then 1 else 0 end) ST4, sum(case when Services.ServiceID = "5" then 1  else 0 end) ST5 FROM...



    function DescOrder(){
        Junctions.fetch({query:DesQuery});
        Junctions.setSortField("display_order", "DESC");
        Junctions.sort();
        transformJunctionList(Junctions);
        toggleOrder = "DESC";
    }

function AscOrder(){
    Junctions.fetch({query:DesQuery});
    Junctions.setSortField("display_order", "ASC");
    Junctions.sort();
    transformJunctionList(Junctions);
    toggleOrder = "ASC";
}

function transformJunctionList(model) {
    var transform = model.toJSON();
                transform.st1 = "checkbox";
                transform.ST1 > "0" ? transform.highlight1 = "#4993cc" : transform.highlight1 = "#ebe9e9";
                transform.st2 = "checkbox";
                transform.ST2 > "0" ? transform.highlight2 = "#4993cc" : transform.highlight2 = "#ebe9e9";
                transform.st3 = "checkbox";
                transform.ST3 > "0" ? transform.highlight3 = "#4993cc" : transform.highlight3 = "#ebe9e9";
                transform.st4 = "checkbox";
                transform.ST4 > "0" ? transform.highlight4 = "#4993cc" : transform.highlight4 = "#ebe9e9";
                transform.st5 = "checkbox";
                transform.ST5 > "0" ? transform.highlight5 = "#4993cc" : transform.highlight5 = "#ebe9e9";`

iOS上的输出正在运行,但是给了我这个警告:

`
  

[WARN]:传递的十六进制颜色看起来无效:

但是,它会在tableView加载时崩溃Android。这是在以前的版本上工作没有错误。如果我删除{highlight1}等并替换为有效的十六进制,则运行正常。

这是iPhone上输出的当前屏幕片段。

Screen shot of the icons in the tablerow

关于如何获得相同结果的任何建议都很棒。

1 个答案:

答案 0 :(得分:0)

我们遇到了这个问题以及新版本。对我们来说,我们有时会设置一种颜色。在以前的版本中,它只会忽略没有颜色的版本,但在此版本中它会尝试解析null。我们通过在变换函数中为所有模型设置默认颜色白色来修复它,然后根据需要进行更改。