feat: spm
为 UILabel 添加计数动画支持,Swift 实现,受 UICountingLabel 启发。
English Introduction
git clone
pod install
EFCountingLabel.xcworkspace
或执行以下命令:
git clone git@github.com:EFPrefix/EFCountingLabel.git; cd EFCountingLabel/Example; pod install; open EFCountingLabel.xcworkspace
EFCountingLabel 可以通过 CocoaPods 进行获取。只需要在你的 Podfile 中添加如下代码就能实现引入:
pod 'EFCountingLabel'
然后,执行如下命令即可:
Swift Package Manager 是一个集成在 Swift 编译器中的用来进行 Swift 代码自动化发布的工具。
如果你已经建立了你的 Swift 包,将 EFCountingLabel 加入依赖是十分容易的,只需要将其添加到你的 Package.swift 文件的 dependencies 项中即可:
Package.swift
dependencies
dependencies: [ .package(url: "https://github.com/EFPrefix/EFCountingLabel.git", .upToNextMinor(from: "5.1.4")) ]
初始化 EFCountingLabel 的方式和普通的 UILabel 是一样的:
EFCountingLabel
UILabel
let myLabel = EFCountingLabel(frame: CGRect(x: 10, y: 10, width: 200, height: 40)) self.view.addSubview(myLabel)
你也可以用在 xib 或 storyboard 中,前提是你在模块引用中引入了 EFCountingLabel。
xib
storyboard
设置标签格式. 设置标签格式后,标签会在更新数值的时候以你设置的方式填充,你可以使用 formatBlock,这个可以对显示的文本格式进行高度的自定义。如果不提供,默认的样式是 "%d":
formatBlock
"%d"
myLabel.setUpdateBlock { value, label in label.text = String(format: "%.2f%%", value) }
可选项,设置动画样式,默认的动画样式是 EFTimingFunction.linear,这个样式是匀速显示动画。以下将介绍其他动画样式及用法:
EFTimingFunction.linear
myLabel.counter.timingFunction = EFTimingFunction.easeOut(easingRate: 3)
需要计数时只需要使用以下方法即可:
myLabel.countFrom(5, to: 100)
可以指定动画的时长,默认时长是 2.0 秒。
myLabel.countFrom(1, to: 10, withDuration: 3.0)
可以使用便利方法计数,例如:
myLabel.countFromCurrentValueTo(100) myLabel.countFromZeroTo(100)
本质上,这些便利方法都是基于一个总方法封装的,以下就是这个方法完整的声明:
myLabel.countFrom(startValue: CGFloat, to: CGFloat, withDuration: TimeInterval)
可以使用 currentValue 方法获得当前数据(即使在动画过程中也可以正常获得):
currentValue
let currentValue: CGFloat = myLabel.counter.currentValue
可选项,可以使用 completionBlock 获得动画结束的事件:
completionBlock
myLabel.completionBlock = { () in print("finish") }
当前有多种动画模式:
EyreFree, eyrefree@eyrefree.org
EFCountingLabel 基于 MIT 协议进行分发和使用,更多信息参见 协议文件。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
为 UILabel 添加计数动画支持,Swift 实现,受 UICountingLabel 启发。
预览
示例
git clone
命令下载本仓库;pod install
命令;EFCountingLabel.xcworkspace
编译即可。或执行以下命令:
环境
Swift 3.0+
iOS 8.0+
Swift 4.0+
iOS 8.0+
Swift 5.0+
iOS 8.0+
安装
CocoaPods
EFCountingLabel 可以通过 CocoaPods 进行获取。只需要在你的 Podfile 中添加如下代码就能实现引入:
然后,执行如下命令即可:
Swift Package Manager
Swift Package Manager 是一个集成在 Swift 编译器中的用来进行 Swift 代码自动化发布的工具。
如果你已经建立了你的 Swift 包,将 EFCountingLabel 加入依赖是十分容易的,只需要将其添加到你的
Package.swift
文件的dependencies
项中即可:设置
初始化
EFCountingLabel
的方式和普通的UILabel
是一样的:你也可以用在
xib
或storyboard
中,前提是你在模块引用中引入了EFCountingLabel
。使用
设置标签格式. 设置标签格式后,标签会在更新数值的时候以你设置的方式填充,你可以使用
formatBlock
,这个可以对显示的文本格式进行高度的自定义。如果不提供,默认的样式是"%d"
:可选项,设置动画样式,默认的动画样式是
EFTimingFunction.linear
,这个样式是匀速显示动画。以下将介绍其他动画样式及用法:需要计数时只需要使用以下方法即可:
可以指定动画的时长,默认时长是 2.0 秒。
可以使用便利方法计数,例如:
本质上,这些便利方法都是基于一个总方法封装的,以下就是这个方法完整的声明:
可以使用
currentValue
方法获得当前数据(即使在动画过程中也可以正常获得):可选项,可以使用
completionBlock
获得动画结束的事件:模式
当前有多种动画模式:
使用 EFCountingLabel 的应用
作者
EyreFree, eyrefree@eyrefree.org
协议
EFCountingLabel 基于 MIT 协议进行分发和使用,更多信息参见 协议文件。