在某些情况下需要扩展第三方库的行为。对于简单的修改没有什么问题,对于复杂的修改(核心功能),我们首先要做的就是深入库的源代码中理解原理,查找线索,不断测试,最后完成我们的扩展。
下面举一例:Github中的MZTimerLabel定时器库
该定时器很简练,但功能很强大,其中包含了正计时和倒计时功能。不过我还希望增加一个新功能,就是按秒的个数而不是时间格式来显示。
比如现在已计时1分半钟,按照常规时间显示应该为:00:01:30,如果按照个数显示则为:000090.
首先查看库文档,为用户考虑周全的库都会有一定自定义行为,索性这个也不例外,我们在其MZTimerLabelDelegate代理中发现如下方法:
func timerLabel(_ timerLabel: MZTimerLabel!, customTextToDisplayAtTime time: TimeInterval) -> String!
我们马上来实现它: