如何将属性应用于存在但不立即可见的Titanium元素

How do you apply properties to Titanium elements that exist but are not immediately visible?

本文关键字:元素 Titanium 属性 应用于 存在      更新时间:2023-09-26

在Titanium Studio中,我正在开发一个Android应用程序。我有一个TableView,它的行超出了页面的高度。表格的一列有一个标签,我想将其旋转270度,使其中的文本垂直。

我像这样旋转文本:

tr = Ti.UI.create2DMatrix();
tr = tr.rotate(270);
var label = Titanium.UI.createLabel({
    ...
    ...
    transform: tr
});

然而,这个转换似乎只适用于可见的标签。当我向下滚动表格时,表格中先前超出页面高度的标签仍然是水平的。当我滚动到表的顶部时,最初成功旋转的标签又回到了水平位置。

我尝试使用scroll, scrollend, dragstart和dragend事件来重新转换标签,一旦它们被滚动到,但这种方法并不始终有效。当它工作时,它是丑陋的,因为标签,当滚动到,最初是水平的,用户可以看到他们的动画转换几秒钟后。

如何避免这种情况,并保持所有标签从一开始就垂直旋转?有没有更好的旋转标签的方法?

额外的想法:我发现最奇怪的是标签/文本已经创建,否则当我向下滚动表格时它们不会出现。它们的颜色和大小都很合适。如果颜色和大小属性被正确应用,那么为什么转换不被正确应用呢?我甚至试着改变

transform: tr

transform: Ti.UI.create2DMatrix({rotate:270})

我想它和

是一样的
transform: Ti.UI.create2DMatrix().rotate(270)

你可以试试animecyc模块:https://github.com/animecyc/TitaniumAnimator