创建UICollectionViewFlowLayout 对象来设置相关的布局,包括itemSize,headerReferenceSize,sectionInset。设置对应的布局大小,相关的和顶部之间的间距等。
UICollectionView创建对应的view并且定义对应的大小,设置代理方法和数据源对象。
-(void)loadCollectionView { UICollectionViewFlowLayout * collectionViewFlow = [[UICollectionViewFlowLayout alloc]init]; UICollectionView *collectView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, ScreenHeight, CGRectGetWidth(_homeScrollView.frame), 2000)collectionViewLayout:collectionViewFlow]; collectView.dataSource = self; collectView.delegate = self; collectView.backgroundColor = [UIColor blueColor]; [collectView registerClass:[CSHomeCollectionViewCell class] forCellWithReuseIdentifier:@"collectionCell"]; collectionViewFlow.itemSize = CGSizeMake(93, 120); collectionViewFlow.sectionInset = UIEdgeInsetsMake(40, 0, 0, 0); collectionViewFlow.scrollDirection = UICollectionViewScrollDirectionVertical; [_homeScrollView addSubview:collectView]; } //datasource,delegate -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return 20; } -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { CSHomeCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell" forIndexPath:indexPath]; cell.topImage.image = [UIImage imageNamed:@"cludy_bg"]; return cell; }
从而来实现对应的方法,其中自定义的cell类
-(instancetype)initWithFrame:(CGRect)frame { self =[super initWithFrame:frame]; if (self) { self.backgroundColor = [UIColor grayColor]; self.topImage = [[UIImageView alloc]initWithFrame:CGRectMake(5, 5, MYSIZE.width-10, MYSIZE.height*0.6)]; [self addSubview:_topImage]; self.designer = [[UILabel alloc]initWithFrame:CGRectMake(5, CGRectGetHeight(self.topImage.frame), CGRectGetWidth(self.frame), 20)]; self.designer.text = @"hello"; [self addSubview:_designer]; // self.goodBtn = [UIButton alloc]initWithFrame:CGRectMake(0, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>) } return self; }
当定义的时候,自动调用initwithframe函数来初始化
时间: 2024-10-07 06:07:30