TimerControl
TimerControl 是一个基于UIView的自定义倒计时计时控件。它表示在定义的倒计时持续时间内的剩余秒数的可见减少弧。
演示
入门
要在您的Xcode项目中使用TimerControl。将TimerControl框架包含到您的项目中。创建一个UIView(可以是程序性地,也可以是在xib或Storyboard中),将UIView的类型设置为TimerControlView
。确保UIView具有1:1的宽高比 - 如果不是严格1:1,TimerControl将不会绘制并可能导致宿主应用程序崩溃。
先决条件
- iOS 12
- Xcode 11
安装
Swift Package Manager
-在 Xcode 中,转到 Xcode > 文件 > Swift 包 > 添加包依赖
,将以下 URL 剪贴到 仓库 URL 文本框 ''' https://github.com/Zendos1/TimerControl '''
Cocoapods
-要使用 Cocoapods 在项目中包含 TimerControl,请将以下内容添加到您的 podfile
pod 'TimerControl'
要通过终端运行相同文件夹位置下的 podfile 指示 Cocoapods 下载新依赖项,请执行以下命令。
pod install
Carthage
-要使用 Carthage 在项目中包含 TimerControl,请将以下内容添加到您的 Cartfile
github "Zendos1/TimerControl"
要通过终端运行相同文件夹位置下的 Cartfile 指示 Carthage 下载和构建新依赖项,请执行以下命令。
carthage update --platform ios
Carthage 将下载 TimerControl 框架并构建到名为 Builds
的文件夹中。在 Xcode 项目的“通用”选项卡中,在 框架、库和嵌入式内容
下,将 Carthage/Builds/iOS/TimerControl.framework
拖入 Xcode。由于 TimerControl 是一个动态框架 - 确保在 框架、库和嵌入式内容
下的框架旁边的下拉菜单中选择了 嵌入式
您还应在 Xcode 构建阶段 选项卡下添加一个 新运行脚本阶段
。添加以下脚本
/usr/local/bin/carthage copy-frameworks
在相同的运行脚本阶段下,在 输入文件
中添加新框架的条目
$(SRCROOT)/Carthage/Build/iOS/TimerControl.framework
运行脚本阶段条目是 Carthage 解决运行时架构问题的一个方案,该方案在 AppStore 提交时包含到框架中。更多详细信息请见上方链接的 Carthage 主页。
用法
仓库中包含一个示例项目。打开 TimerControl.xcworkspace
,在文件导航器中可以看到 示例
项目。可以在模拟器上运行 Xcode 中的 示例 目标来查看框架的工作情况。
使用TimerControl:使用以下任一过程将TimerControl框架包含到您的项目中。通过代码或xib或Storyboard创建一个UIView,将UIView的类型设置为
在TimerControl被使用之前,可以通过调用以下API并传入所需的配置来配置其视觉设置。如果不调用配置API,则所有可配置选项将使用默认值。
configureTimerControl(innerColor: UIColor = .gray, outerColor: UIColor = .blue, counterTextColor: UIColor = .white, arcWidth: Int = 1, arcDashPattern: TimerControlDashPattern = .none)
可配置的值如下:
- innerColor:描述内部椭圆颜色的UIColor
- outerColor:描述外部弧线颜色的UIColor
- counterTextColor:描述计数器文本颜色的UIColor
- arcWidth:介于1和10之间的值,描述弧线的宽度,相对于视图大小的比例
- arcDashPattern:TimerControlDashPattern枚举,具有4种预设模式(.none, .medium, .narrow, .wide)
要开始计时器,请使用以下API,传入所需秒数作为duration参数
startTimer(duration: Int)
要停止计时器,请使用以下API
stopTimer()
为了更全面地控制活动计时器,可以使用
timerCompleted()
timerTicked()
这样,宿主应用程序就可以在计时器滴答和计时器完成时得到通知。
贡献
如果您想为TimerControl做出贡献,请提交拉取请求或问题。
许可证
本项目采用MIT许可证——有关详细信息,请参阅LICENSE文件。