怎么写一个向左滑动的UICollectionView?

最近,遇到了一个奇怪的需求。页面大概是这个样子的,页面的右上方有一个在线人数列表,跟很多直播间类似,当有人进来时 列表 + 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 度,所以滚动到最左边 本质还是最右边。 另外在写滚动的时候,一定要注意判断数据源长度,不要越界。

Guess you like

Origin juejin.im/post/6922004595099041806