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

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

作者: 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