ScrollLabel文本滚动控件

文本滚动的 UI 展示里,ScrollLabel是个蛮实用的小东西。是做 iOS 界面时,像导航提示、跑马灯字幕、或者 tableView 里有长文字展示的情况,用它能省不少事。

ScrollLabel的原理其实不复杂,说白了就是继承自UILabel,通过动画不断调整位置,制造出文字在滚动的感觉。默认的UILabel是不动的嘛,所以得自己动手扩展一下。

实现上,一般会创建个自定义类,比如SEScrollLabel,里面加点小逻辑:先量一下文字宽度(用sizeThatFits或者boundingRect(with:options:)),按设定的速度让文字动起来。

滚动动画用CADisplayLink做,控制每一帧的更新,平滑得。想偷懒的话,UIViewPropertyAnimator也能凑合,效果还不错,但细节上没那么可控。

方向控制也灵活,左→右、右→左、上下都能玩,改改坐标就行。想要循环滚动?判断一下边界,走到头再从头来,像传送带一样。

你还可以加点配置项,比如速度、方向、是否暂停、文字颜色啥的,封装成小组件,多个项目复用起来也挺方便。

用的时候注意下,别让滚动的 Label 挡住别的控件。像放在 tableView 里时,最好测下实际表现,别滚一滚把用户搞晕了。

如果你常遇到文字展示不下的 UI 场景,ScrollLabel绝对值得集成一个。效果直观,体验也不错,关键是你能自己定制它的所有细节,挺爽的。

zip
SEScrollLabel.zip 预估大小:21个文件
folder
SEScrollLabel 文件夹
folder
SEScrollLabel.xcodeproj 文件夹
folder
project.xcworkspace 文件夹
file
contents.xcworkspacedata 158B
folder
xcuserdata 文件夹
folder
songtao.xcuserdatad 文件夹
file
UserInterfaceState.xcuserstate 18KB
file
project.pbxproj 17KB
folder
xcuserdata 文件夹
folder
songtao.xcuserdatad 文件夹
folder
xcschemes 文件夹
file
SEScrollLabel.xcscheme 4KB
file
xcschememanagement.plist 575B
folder
xcdebugger 文件夹
file
Breakpoints_v2.xcbkptlist 91B
file
SEScrollLabel.m 5KB
folder
SEScrollLabelTests 文件夹
file
SEScrollLabelTests.m 877B
file
Info.plist 747B
folder
SEScrollLabel 文件夹
file
main.m 334B
file
AppDelegate.h 277B
file
AppDelegate.m 2KB
folder
Base.lproj 文件夹
file
LaunchScreen.xib 4KB
file
Main.storyboard 3KB
file
ViewController.h 215B
folder
Images.xcassets 文件夹
folder
AppIcon.appiconset 文件夹
file
Contents.json 1KB
folder
angle.imageset 文件夹
file
Contents.json 316B
file
114251936186e520f3l.jpg 147KB
file
Info.plist 1KB
file
ViewController.m 1KB
file
SEScrollLabel.h 1KB
zip 文件大小:182.74KB