目前看到一种实现方式大概是Mask+Layout,数字位通过Layout的垂直方向布局加0-9个子节点实现0-9的垂直方向分布,再通过移动Layout实现滚动效果,通过Mask进行遮罩,通过原数字与目标数字长度比较实现位数的变化(即增减Layout)。这种方式的效果是宽度随着数字位数的增加而增加。
如果想要固定容器宽度,数字位数越多,数字则越来越小类似Label overflow 的 shrink 属性的效果,应该如何实现?我通过给最外层Layout加上固定宽度resize mode改为child发现数字位Layout节点宽度虽然缩小了但是高度并没有变化导致数字叠在一起,这个问题的解决方案是不是需要监听某个事件自己控制数字位Layout的宽高或者缩放?还有一个问题就是,如果从业务的角度这个数字可以是2位也可是8位或者更多位,如何做数字简写(多少K、M、B)?
在update里面自己修改每一个节点的位置,节点运动到看不见的地方后再设置位置到首位。
KBM除3个0
感谢回复,我看了几天突然觉得数字的滚动效果和简写应该是存在冲突的,视觉效果应该也不会太好。
如果数字大到需要简写且页面空间有限的话确实也不太适合用滚动效果,简单的使用tween做插值更新看起来也不错。
滚动也有很多表现,其实本质就是tween操作