ScrollLabel文本滚动控件
文本滚动的 UI 展示里,ScrollLabel是个蛮实用的小东西。是做 iOS 界面时,像导航提示、跑马灯字幕、或者 tableView 里有长文字展示的情况,用它能省不少事。
ScrollLabel的原理其实不复杂,说白了就是继承自UILabel
,通过动画不断调整位置,制造出文字在滚动的感觉。默认的UILabel
是不动的嘛,所以得自己动手扩展一下。
实现上,一般会创建个自定义类,比如SEScrollLabel
,里面加点小逻辑:先量一下文字宽度(用sizeThatFits
或者boundingRect(with:options:)
),按设定的速度让文字动起来。
滚动动画用CADisplayLink
做,控制每一帧的更新,平滑得。想偷懒的话,UIViewPropertyAnimator
也能凑合,效果还不错,但细节上没那么可控。
方向控制也灵活,左→右、右→左、上下都能玩,改改坐标就行。想要循环滚动?判断一下边界,走到头再从头来,像传送带一样。
你还可以加点配置项,比如速度、方向、是否暂停、文字颜色啥的,封装成小组件,多个项目复用起来也挺方便。
用的时候注意下,别让滚动的 Label 挡住别的控件。像放在 tableView 里时,最好测下实际表现,别滚一滚把用户搞晕了。
如果你常遇到文字展示不下的 UI 场景,ScrollLabel绝对值得集成一个。效果直观,体验也不错,关键是你能自己定制它的所有细节,挺爽的。
SEScrollLabel.zip
预估大小:21个文件
SEScrollLabel
文件夹
SEScrollLabel.xcodeproj
文件夹
project.xcworkspace
文件夹
contents.xcworkspacedata
158B
xcuserdata
文件夹
songtao.xcuserdatad
文件夹
UserInterfaceState.xcuserstate
18KB
project.pbxproj
17KB
xcuserdata
文件夹
songtao.xcuserdatad
文件夹
182.74KB
文件大小:
评论区