SlidingNumberView 0.0.6

SlidingNumberView 0.0.6

叶伟岩 维护。



  • bupstan

SlidingNumberView

CI Status Version License Platform

它的外观

示例项目

要运行示例项目,请先克隆仓库,然后在示例目录中运行 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 会根据字体大小计算自己的宽度和高度约束。因此,您只需要给出其 xy 位置约束。
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 并再次启动计数。请注意,startNumberendNumber 都应接受相同位数的字符串。
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 文件。