需求
最近有一个需求,是需要在 cell 中开启定时器,并且更新计时时间。
需求并不复杂,涉及到如何封装定时器的问题。在网上看了一些例子,觉得和控制器的耦合太严重了,自己实现了一个。
设计
由于每个 cell 只是负责 UI 的显示,所以并不需要关心定时器的逻辑,而控制器的复用性太差,所以将定时器的逻辑写在 模型 中最为合适。可以为 模型 创建一个计时的分类。使用objc_setAssociatedObject
关联属性,创建一个定时器,添加定时器的开启和关闭方法。并定时以 block的形式将计时开始的时间返回出来,更新 UI 的显示。
示例代码
|
|