美文网首页
仿苹果手机系统计时器 说明文档

仿苹果手机系统计时器 说明文档

作者: XYZ坐标轴 | 来源:发表于2016-05-03 16:54 被阅读0次
QQ20160503-0@2x.png
QQ20160503-1@2x.png
QQ20160503-2@2x.png

相关代码详情见https://github.com/xyh3171/StopwatchFormal.git

搭建计时器工程的框架逻辑

确定有几种状态,每一种状态要完成哪一些功能

BOOL值方法

两个BOOL值,组合出四种状态

缺点

逻辑不清晰的情况下,问题排查困难重重

有一些状态,还要根据A的状态去判断B的状态,非常绕圈,很容易混乱。

枚举状态方法

三种状态

stopwatchStartAndLap
= 0,

stopwatchStopAndLap,

stopwatchStartAndReset,

优点

三种状态,简单明了,易于操作,不需要考虑用BOOL值情况下额外的绕圈

采用哪一种数据库和数据结构

小型数据存储的方法全部摒弃,因为存入数据需要将上一次的数据先取出

SQLite3

FMDB

增加

删除

改变

查询

在查询出的结果集中进行倒序排列,再输出到可变数组,用TableViewCell显示

CoreData

重量级数据库,不考虑

记时器的功能和精确度的确定

功能

Start

将初始值默认设置为1970.01.01.00:00.00 0000

用时区变化将当前时区加减为格林尼治时间,以此显示为00:00.00

比如北京时区为+0800,调整后为 0000,这样启动显示就不会出现为08:00.00

启动两个计时器

一个控制每次Lap后重置时间

另一个控制仅仅只在reset后才重置时间

时间增加方法

每运行0.01秒后执行时间增加方法

时间持续计时的保证

采用NSRunLoop保证不因为点击其它控件,导致计时器停止

Stop

暂停时将计时器的定时器废弃

重新再点击start时,将暂停时保存的deltaSeconds传送到start方法中

Lap

每次点击lap都将小计时器上的记录保存到数据库,同时显示到tableViewCell上

大计时器不受此影响

Reset

将计时器废弃

lbl显示数据清零

数据库数据删除

相关数据显示恢复到初始值

数据缓存

退出应用,再次进入应用,如果上次有数据,会显示出来

精确度

精确到毫秒

mm:ss.SS

UI的设计

Autolayout

设置动态子视图变化比较复杂,故不用

动态坐标系多屏幕匹配

将UI分成三部分,分别完成后添加到self.view上

_timeLblView

_btnView

_listTableView

相关文章

网友评论

      本文标题:仿苹果手机系统计时器 说明文档

      本文链接:https://www.haomeiwen.com/subject/ywfrrttx.html