我们先来看看Cell的声明周期:
1.首先当用户滑动屏幕的时候,系统会重cell缓冲池里面取出一个cell,然后调用cell的prepareForReuse()方法,可以在这个方法中对重置cell的状态等
2.当用户继续滑动屏幕的时候,会调用dataSource的cellForRowAt indexPath方法,在这里我们可以对cell的模型(model)进行赋值,也就是将数据渲染到cell上(数据驱动UI)
3.当cell马上将要进入屏幕的时候,会调用delegate的willDisplay cell方法,在这里我们可以获取到上一个播放的cell,然后让播放器停止对上一个cell的播放来避免当用户拖拽cell到下一个cell时,上一个cell还在播放的情况.
4.当cell完全进入屏幕的时候,会调用didEndDisplaying cell方法,在这里我们可以获取当前播放的cell,然后让控制器播放,来达到当用户拖拽到下一个cell时,能够正常播放.