今天遇到了一个比较特殊的需求,由于项目不上架,可以开心的各种违规操作。所以要求在UIScrollview上的4个UITableView不停的刷新数据,那么问题来了,当用户左右滑动的时候,会产生卡顿现象(大约有一秒钟的时间)。这简直没有用户体验而言啊!
废话不多说,下面是我的解决思路:
我需要在用户滑动的时候,停止NSTimer不停的加载数据
NSTimer是体统提供的一个不是非常精确的定时器,只有fire()和invalidate()关于启动和停止的方法。fire很好理解,就是开始调用,而且是立刻的,当你使用的时候,相当于,立刻调用了一遍timer的selector 。timer的原调用计时是不会改变的,只是在这个过程中加塞了一次。invalidate更直接干脆,把timer直接从runloop中移除了。
那么timer怎么暂停呢?
fireDate! 这是个NSDate类型的参数,这个就是timer的调用周期。像暂停的时候可以给它一个无限大的周期那么,这个时候不就相当于暂停了么。
timer.fireDate=Date.distantFuture
网友评论