我试图以类似动画的风格计算一个特定目标值的数字。 iOS环境是Titanium。我这样做如下。
function countNumberUp(label) {
label.currentVal = label.currentVal ? label.currentVal : 0;
setTimeout(function() {
if (label.currentVal < label.targetVal) {
label.currentVal += 1;
label.setText(label.currentVal);
countNumberUp(label);
}
}, 5);
}
label
是Ti.UI.Label
的实例。
我看到的第一个问题是label.setText() - 方法很慢。如果数字急剧计数会很酷,但即使我改变了setTimeout()的第二个参数,它也只是每秒5步。
另一件事是动画完全阻止了iOS的主/ UI线程,并且UI在动画完成之前几乎不接受任何动作。似乎setTimeout不会在单独的线程中运行。
你们中有谁知道更好的方法吗?
顺便说一下。我也尝试了setInterval(),但似乎没有更好。