iOS-UICollectionView基本使用

UICollectionView

UICollectionView基于UIScrollView,系统默认内容自动偏移64各单位 ,所以可以通过设置以下设置取消偏移

self.automaticallyAdjustsScrollViewInsets = NO;

UICollectionView必须设置瀑布流UICollectionViewFlowLayout,如:

UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];

    layout.minimumLineSpacing = 5.0;

    layout.minimumInteritemSpacing = 5.0;

    layout.sectionInset = UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0);


UICollectionView必须设置数据源和代理,如:


_mineCollection = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 64.0, DEVICE_WIDTH, DEVICE_HEIGHT - 64.0) collectionViewLayout:layout];

    _mineCollection.backgroundColor = [UIColor lightGrayColor];

    _mineCollection.dataSource = self;

    _mineCollection.delegate = self;


cell必须通过注册,如:


[_mineCollection registerClass:[MineCollectionViewCell class] forCellWithReuseIdentifier:collectionCell];

    [_mineCollection registerClass:[CollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:collectionHeader];


cell必须自定义,系统cell没有任何子控件

UICollectionView必须设置数据源和代理


//分区,组

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView


//每一分区的单元个数

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section


//集合视图单元格大小

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath


//头部大小

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section


//集合视图头部或者尾部

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath


//单元格复用

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath


//被选中的单元格

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath


UICollectionViewFlowLayout

初始化layout后自动调动,可以在该方法中初始化一些自定义的变量参数

* Invalidate:刷新,在滚动的时候是否允许刷新布局

-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {
return YES;
}


* 设置UICollectionView的内容大小,道理与UIScrollView的contentSize类似,@return 返回设置的UICollectionView的内容大小


-(CGSize)collectionViewContentSize


*  初始Layout外观 @param rect 所有元素的布局属性 @return 所有元素的布局


-(NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect


*  根据不同的indexPath,给出布局 @param indexPath @return 布局


-(UICollectionViewLayoutAttributes )layoutAttributesForItemAtIndexPath:(NSIndexPath)indexPath
```

demo

【版权归作者所有,iOS开发整理发布】


  • 来源:http://mp.weixin.qq.com/s/q7kvj5oRM2o3MSSWLpGgeQ

  • 转载请联系作者授权

↙点击“阅读原文”,加入 

『程序员大咖』

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值