RotatingLabel

RotatingLabel 是一种通过滚动字符来动画显示文本变化的标签。此组件专为展示数值而设计,例如账户余额和股票价格,但它也可以用于任何文本,尽管并非最佳选择。

安装

要使用 Swift Package Manager 安装 RotatingLabel,请将以下内容添加到您的 Package.swift 文件中

.package(url: "https://github.com/raymondjavaxx/RotatingLabel.git", from: "1.0.0")

或者,按照将包依赖项添加到您的应用 指南中的说明进行操作。

用法

用法很简单。创建一个 RotatingLabel 并将 text 属性设置为您想要显示的值。当需要更改值时,使用 setText(_:animated:) 方法来对其进行动画处理。

let label = RotatingLabel()
label.text = "$100.00"

// ...

label.setText("$155.00", animated: true)

自定义

动画

您可以通过设置 animationDurationanimationTimingParameters 属性来自定义动画时长和 timing 参数。

label.animationDuration = 0.3
label.animationTimingParameters = UICubicTimingParameters(animationCurve: .easeInOut)

差异函数

RotatingLabel 使用差异函数来确定哪些字符需要进行动画处理。您可以使用 diffingFunction 属性来使用任何内置的差异函数或提供您自己的函数。

label.diffingFunction = DiffingFunction { oldValue, newValue in
    var changes: [Operation] = []

    // Your custom diffing logic here

    return changes
}

动态类型

RotatingLabel 支持动态类型。当用户更改内容尺寸类别时,标签可以自动调整其字体大小。要启用它,请将 adjustsFontForContentSizeCategory 属性设置为 true

注意: 字体必须支持缩放才能使其工作。有关更多信息,请参阅 自动缩放字体

许可证

RotatingLabel 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE