在Titanium或Alloy / Appcelerator中更改标签的一部分

时间:2017-02-02 18:45:24

标签: titanium appcelerator appcelerator-titanium titanium-alloy appcelerator-alloy

我想动态更改标签的一部分。

这是我的代码:

<View top="0" height="115">
    <Label id="lblMiles" left="15" textAlign="right" right="15" top="0" height="55">
        {distance} Miles
    </Label>
</View>

我希望能够动态更改{distance}部分。 但是目前我只能改变这样的事情:

$.lblMiles.text = "10 Miles";

在HTML中,我们通常使用如下的span标记:

<div id="lblMiles"><span id="distance"></span> Miles</div>

我怎样才能在Alloy中做类似的事情?

2 个答案:

答案 0 :(得分:4)

如果由我决定,我不会担心只更新标签的一半,只需重置整个文字,

$.lblMiles.text = "10 Miles";
// and then later on to update it to 15
$.lblMiles.text = "15 Miles";

如果由于某种原因你需要只更新一半,那么你可以使用两个标签并将它们放在一个布局设置为水平的视图中。

看起来像这样:

<View top="0" height="115">
    <View height="Ti.UI.SIZE" width="Ti.UI.SIZE" layout="horizontal">
        <Label id="dynamicLabel" />
        <Label id="lblMiles" > Miles</Label>
    </View>
</View>

然后在您的代码中,只需更新动态标签设置的实际值:

$.dynamicLabel.text = "15";

现在,要在屏幕上放置标签,您应该播放其容器左,右,上,下的属性。

答案 1 :(得分:1)

你可以通过两种方式做到这一点

  1. 有两个不同的标签并从控制器
  2. 设置
  3. 您也可以使用属性字符串。 这里有更多参考here