我刚刚开始使用Appcelerator的钛合金。
如何在我的 controller / index.js 中添加样式,这是代码:
var title = Titanium.UI.createLabel({
title: "My Label",
id: "myLabel"
});
我正在 styles / index.tss
上尝试这个"#myLabel": {
textAlign: "left",
right: 15,
color: '#000',
font: { fontSize:20 },
shadowColor: '#aaa',
shadowOffset: {x:5, y:5},
horizontalWrap: true
}
但遗憾的是它现在正在运作。任何人都可以教我如何添加样式到我的Titanium UI
答案 0 :(得分:10)
合金样式自动应用于通过xml创建的视图。如果要在控制器内创建对象时保持该效果,则必须使用$.UI.create()方法而不是Titanium API。在您的情况下,您的代码将如下所示:
var title = $.UI.create('Label', {
title: "My Label",
id: "myLabel"
});
更多阅读Dynamic Styles guide。它没有很好的记录,当我阅读它时,它的某些部分对我来说还不清楚,但它是试验代码并学习Alloy行为的良好起点。
答案 1 :(得分:2)
您的问题似乎在create语句中,您应该使用text
属性而不是title
:
var title = Titanium.UI.createLabel({
text: "My Label",
id: "myLabel"
});
这样,你会看到标签,但它不会自动应用的样式,所以请考虑以下选项之一:
如果可以,请在视图中创建标签:
<Alloy>
<View id="content" class="container">
<Label id="myLabel" text="My Label"/>
</View>
</Alloy>
这将自动应用.tss文件中定义的样式"#myLabel"
,当然,您始终可以更改代码中的文本值:
$.myLabel.text = "New value";
其他解决方案是在代码中应用样式:
var title = Ti.UI.createLabel({
text: "My Label",
id: "myLabel"
});
var style = $.createStyle({
classes: ['myLabel']
,apiName: 'Label'});
title.applyProperties(style);
在这种情况下,在.tss文件中,您需要替换"#myLabel": {
".myLabel": {
答案 2 :(得分:0)
简单的解决方案是添加如下所示的类
person.firstName = "Tom";
在$.addClass(yourView, "yourClassName");
文件中添加您的课程。