我知道这个问题以前以各种形式出现过,但没有一个解决方案适合我……我正在使用 Titanium API 2.1.3,并为 iPhone 构建。
我使用了很多常见的JS,所以我有这个:
exports.Header = function(title){
var l = Ti.UI.createLabel({
text: title,
height: 'auto',
textAlign: 'left',
color: '#989898',
font: {fontSize: exports.defaultFontSize+10, fontFamily: exports.defaultFont, fontWeight: 'bold'}
});
return l;
};
我这样称呼标签:
var qLabel = gui.Header(question);
qLabel.top = 5;
qLabel.left = 10;
qLabel.right = 10;
qLabel.color = "#3B3B3B";
qLabel.font = {fontSize: gui.defaultFontSize+4, fontWeight: 'bold'};
到目前为止,我已经尝试了各种方法来获取标签的高度,例如:
qLabel.toImage().height // this returns auto
qLabel.getRect().height // this returns 0
与 getSize().height (这也返回 0)或 getHeight() (返回 auto)相同。我尝试先将它添加到父视图,然后读取高度,但什么也没有……我做的最后一件事是:
var qqv = Ti.UI.createView({ width: 'auto', height: 'auto' });
qqv.add(qLabel);
qLabel.show();
Ti.API.info(qLabel.rect.height);
Ti.API.info(qLabel.size.height);
Ti.API.info(qqv.rect.height);
Ti.API.info(qqv.size.height);
它们都返回 0。
在这一点上我变得非常绝望,我不知道这个问题是否是因为我正在使用的 API 版本或其他......任何帮助表示赞赏。
编辑: 经过反复试验,我发现
qLabel.toImage().height;
返回一些数字,但是,它似乎不是正确的高度。