做IMl聊天,实现自定义表情功能的时候,需要实现微信聊天时那样的表情排版,主要要实现collectionView能横向滑动cell左右排版。默认的cell排版方向是跟随滚动方向的,例如竖向滚动的话,cell的排版是从左到右、从上到下;横向滚动的话,cell是从上到下、然后从左到右。那么要实现collectionView横向滚动,cell从左到右、从上到下的排版,只需要自定义重写下collectionView的layout。自定义的layout代码如下:
#import <UIKit/UIKit.h>
@interface QQIMEmotionsCollectionViewFlowLayout : UICollectionViewFlowLayout
// 一行中 cell 的个数
@property (nonatomic,assign) NSUInteger itemCountPerRow;
// 一页显示多少行
@property (nonatomic,assign) NSUInteger rowCount;
@end
#import "QQIMEmotionsCollectionViewFlowLayout.h"
@interface QQIMEmotionsCollectionViewFlowLayout () <UICollectionViewDelegateFlowLayout>
@property (strong, nonatomic) NSMutableArray *allAttributes;
@end
@implementation QQIMEmotionsCollectionViewFlowLayout
-(instancetype)init
{
if (self = [super ini