SlidingNumberView
它的外观
示例项目
要运行示例项目,请先克隆仓库,然后在示例目录中运行 pod install
命令。
要求
- iOS 10.0+
- Swift 4.2+
安装
SlidingNumberView 通过 CocoaPods 提供。要安装,只需在 Podfile 中添加以下行即可
pod 'SlidingNumberView'
使用说明
- 在您想要使用的类中导入SlidingNumberView。
import SlidingNumberView
- 使用起始数字和最终数字作为字符串参数(目前仅支持11位以内的数字)初始化SlidingNumberView对象。您还可以指定自定义字体。但是,自定义字体可能会导致不希望的裁剪。
var numberView = SlidingNumberView(startNumber: "1234", endNumber: "5678")
\\ or
var numberView = SlidingNumberView(startNumber: "1234", endNumber: "5678", font: UIFont.systemFont(ofSize: 26))
- (可选)您可以指定总动画持续时间
numberView.animationDuration = 3
- 将它添加到容器视图中,以便可以添加约束
self.view.addSubview(numberView)
numberView.translatesAutoresizingMaskIntoConstraints = false
- SlidingNumberView 会根据字体大小计算自己的宽度和高度约束。因此,您只需要给出其 x 和 y 位置约束。
numberView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor, constant: 0).isActive = true
numberView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor, constant: 0).isActive = true
- 调用对象的
startCounting
方法以开始动画。
numberView.startCounting(completion: {finish in
print("Counting Done")
})
startCounting
方法有一个完成处理程序,因此您可以通过其属性更改为另一个endNumber
并再次启动计数。请注意,startNumber
和endNumber
都应接受相同位数的字符串。
numberView.startCounting(completion: {finish in
self.numberView.endNumber = "0000"
self.numberView.startCounting(completion: { finish in
print("Counting Finally done")
})
})
完整代码块
numberView = SlidingNumberView(startNumber: "0100", endNumber: "1250", font: UIFont.systemFont(ofSize: 26))
numberView.animationDuration = 3
self.view.addSubview(numberView)
numberView.translatesAutoresizingMaskIntoConstraints = false
numberView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor, constant: 0).isActive = true
numberView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor, constant: 0).isActive = true
self.view.layoutIfNeeded()
numberView.startCounting(completion: {finish in
self.numberView.endNumber = "0000"
self.numberView.startCounting(completion: { finish in
print("Counting Finally done")
})
})
可访问属性
/// Spacing of the Digits
numberView.digitSpacing = 10
/// Digit Font
numberView.font = .systemFont(ofSize: 42)
/// The whole animation duration
numberView.animationDuration = 3
/// Boolean. Is it still counting?
numberView.inProgress
已知限制
- SlidingNumberView 目前处于测试阶段。
SlidingNumberView 只能像上面所示那样通过编程方式初始化。(现在可以将其设置为storyboard中的代码自定义类。只能对相同数字的数字进行动画处理(递增数字将通过其变化平滑动画,递减的数字将是突然的)
待实现功能
- 多种字体粗细
- 支持通过不同数字的数字进行动画
- 支持通过Storyboard对象和IBOutlets初始化
作者
bupstan, [邮箱受保护,请注册查看]
许可协议
SlidingNumberView 适用于 MIT 许可协议。更多详细信息请参阅 LICENSE 文件。