最近,遇到了一个奇怪的需求。页面大概是这个样子的,页面的右上方有一个在线人数列表,跟很多直播间类似,当有人进来时 列表+1个头像,当有人离去时 列表-1个头像,可以左右滑动,我第一时间想到的就是用UICollectionView去做。做完以后发现是这样的,头像在collectionView的左侧,当有第二个的时候,从左向右加一个头像。以此类推。当时想了下,没毛病啊,collectionView都是从左向右的。
但是产品小姐姐,死活不同意,说我要改成下面那样的。
当有人加入的时候,就变成这样
当加入的人多了,还要自动滑到最左边
虽然很奇怪,但是也难不倒我们,想的第一个解决办法就是我旋转整个collectionview 180度。然后旋转cell 180度。再把数据源逆序插入,最后在判断当数据源>能显示的个数时,直接滚动到最底部。
思路清晰了,那代码就简单了。
旋转collectionview部分
self.audienceCollectionView.transform = CGAffineTransformMakeRotation(M_PI);
旋转cell部分
self.contentView.transform = CGAffineTransformMakeRotation(M_PI);
数据源逆序 不贴代码了 很简单
最后直接cell滚动到最左边
因为我们是旋转了180度,所以滚动到最左边 本质还是最右边。 另外在写滚动的时候,一定要注意判断数据源长度,不要越界。