collectionView 都是从第一位开始的,想要达到居中的效果就要自定义一个瀑布流.一个小 demo, 和大家分享一下.
在 viewcontroller 里面
#import "ViewController.h"
#import "CustomFlowLayout.h"
#define ScreenWidth [UIScreen mainScreen].bounds.size.width
#define ScreenHeight [UIScreen mainScreen].bounds.size.height
#define Scale [UIScreen mainScreen].bounds.size.width / 320
#define kMinimumLineSpacing 20
#define kMinimumInteritemSpacing 15
#define kItemWidth 45
#define kItemHeight kItemWidth
#define WIDTH self.view.frame.size.width
@interface ViewController ()<UICollectionViewDataSource,UICollectionViewDelegate>
@property (nonatomic, strong) UICollectionView *myCollectionView;
@property (nonatomic, strong) CustomFlowLayout *flowLayout;
@property (nonatomic, strong) NSMutableArray *itemArray;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
_flowLayout = [[CustomFlowLayout alloc] init];
// 设置滚动方向
_flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;
// 设置item大小
_flowLayout.itemSize = CGSizeMake(kItemWidth * Scale, kItemHeight * Scale);
// 设置最小行间距
_flowLayout.minimumLineSpacing = kMinimumLineSpacing * Scale;
// 设置最小列间距
_flowLayout.minimumInteritemSpacing = kMinimumInteritemSpacing * Scale;
// 设置一个item边框,上下左右边距大小