上回说到直播界面数据解析完了,但是cell上面显示正在直播和在线收听人数,以及预约直播时间等小挂件的UI界面没有做出来,今天终于抽空做完了,先来看一下预览效果:
这个做起来其实非常的简单,只需要把所有的小挂件都添加上去,然后默认它们都隐藏,最后根据服务器返回的数据来决定最终需要显示哪些、隐藏哪些。唯一稍微麻烦一点的是预约透明控件的处理,这里面主要有两个点:第一个,服务器返回的时间多半形如"2017-11-21T15:25:00.000Z"这种字符串儿样式,而且它是以0时区为基准的,我们需要将它转换为"今天 23:25"这种形式;另外一个就是透明控件的长度,从图上可以看出,当显示"今天 23:25"这种时间格式和显示"11月24日 20:00"这种时间格式时,透明控件的长度是不一样的,那么用SnapKit做自动布局,它要怎么做约束?
首先,关于对服务器返回的时间进行处理的问题,我在项目的Supporting File文件夹下面的Extension中给NSDate写了一个分类,所有处理的代码和注释都详细写在里面,可以去github上下载;其次,关于利用SnapKit对控件做自动布局的问题,这里就不详细写了,网上有很多相关教程,我找了一篇《Swift自动布局SnapKit的详细使用介绍》博客,作者是langkee,有兴趣的可以去看一下,写得比较详细。最后,如果有什么改进的建议,请给我留言,非常感谢。