如何将属性应用于存在但不立即可见的钛元素?
Posted
技术标签:
【中文标题】如何将属性应用于存在但不立即可见的钛元素?【英文标题】:How do you apply properties to Titanium elements that exist but are not immediately visible? 【发布时间】:2015-11-22 00:46:28 【问题描述】:在 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)
这也不起作用。
【问题讨论】:
【参考方案1】:你可以试试animecyc模块: https://github.com/animecyc/TitaniumAnimator
【讨论】:
感谢您的回复。与将标签的旋转/变换属性应用于屏幕外元素一样,我在旋转方面没有任何问题。所以我认为答案是弄清楚这一点。不过,我不知道该怎么做。此外,animecyc 不支持 android 的 transform 属性。 它支持旋转,所以我认为它可能以不同的方式处理旋转并且可能适用于您的情况。以上是关于如何将属性应用于存在但不立即可见的钛元素?的主要内容,如果未能解决你的问题,请参考以下文章