QMUIMarqueeLabel

@interface QMUIMarqueeLabel : UILabel

简易的跑马灯 label 控件,在文字超过 label 可视区域时会自动开启跑马灯效果展示文字,文字滚动时是首尾连接的效果(参考播放音乐时系统锁屏界面顶部的音乐标题)。

Warning

lineBreakMode 默认为 NSLineBreakByClipping(UILabel 默认值为 NSLineBreakByTruncatingTail)。

Warning

textAlignment 暂不支持 NSTextAlignmentJustified 和 NSTextAlignmentNatural。

Warning

会忽略 numberOfLines 属性,强制以 1 来展示。
  • 控制滚动的速度,1 表示一帧滚动 1pt,10 表示一帧滚动 10pt,默认为 .5,与系统一致。

    Declaration

    Objective-C

    @property (nonatomic) CGFloat speed;

    Swift

    var speed: CGFloat { get set }
  • 当文字第一次显示在界面上,以及重复滚动到开头时都要停顿一下,这个属性控制停顿的时长,默认为 2.5(也是与系统一致),单位为秒。

    Declaration

    Objective-C

    @property (nonatomic) NSTimeInterval pauseDurationWhenMoveToEdge;

    Swift

    var pauseDurationWhenMoveToEdge: TimeInterval { get set }
  • 用于控制首尾连接的文字之间的间距,默认为 40pt。

    Declaration

    Objective-C

    @property (nonatomic) CGFloat spacingBetweenHeadToTail;

    Swift

    var spacingBetweenHeadToTail: CGFloat { get set }
  • Undocumented

    Declaration

    Objective-C

    @property(nonatomic, assign) IBInspectable CGFloat fadeWidthPercent

    Swift

    var fadeWidthPercent: CGFloat { get set }
  • 自动判断 label 的 frame 是否超出当前的 UIWindow 可视范围,超出则自动停止动画。默认为 YES。

    Warning

    某些场景并无法触发这个自动检测(例如直接调整 label.superview 的 frame 而不是 label 自身的 frame),这种情况暂不处理。

    Declaration

    Objective-C

    @property (nonatomic) BOOL automaticallyValidateVisibleFrame;

    Swift

    var automaticallyValidateVisibleFrame: Bool { get set }
  • 在文字滚动到左右边缘时,是否要显示一个阴影渐变遮罩,默认为 YES。

    Declaration

    Objective-C

    @property (nonatomic) BOOL shouldFadeAtEdge;

    Swift

    var shouldFadeAtEdge: Bool { get set }
  • YES 表示文字会在打开 shouldFadeAtEdge 的情况下,从左边的渐隐区域之后显示,NO 表示不管有没有打开 shouldFadeAtEdge,都会从 label 的边缘开始显示。默认为 NO。

    Note

    如果文字宽度本身就没超过 label 宽度(也即无需滚动),此时必定不会显示渐隐,则这个属性不会影响文字的显示位置。

    Declaration

    Objective-C

    @property (nonatomic) BOOL textStartAfterFade;

    Swift

    var textStartAfterFade: Bool { get set }

ReusableView

  • 尝试开启 label 的滚动动画

    Declaration

    Objective-C

    - (BOOL)requestToStartAnimation;

    Swift

    func requestToStartAnimation() -> Bool

    Return Value

    是否成功开启

  • 尝试停止 label 的滚动动画

    Declaration

    Objective-C

    - (BOOL)requestToStopAnimation;

    Swift

    func requestToStopAnimation() -> Bool

    Return Value

    是否成功停止