UICollectionView 的布局

本文详细介绍了如何实现UICollectionView布局的步骤,包括导入数据、创建UICollectionView、添加约束以及设置代理CollectionViewDataSource。重点讲解了数据源加载、布局对象创建、约束设置以及代理方法的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码实现UICollectionView布局的步骤


1.导入数据

1.1 拖入plist文件

1.2 自定义构造方法(字典转模型)

1.3懒加载数据 (在需要的时候在加载数据)

2.创建UICollectiongView

2.1UICollectionView 把数据源的加载委托给了(dateSource)页面的布局需要layout对象 , 因此 uicollection的创建需要 布局对象layout 和 数据源(dateSrouce)
2.1 创建布局对象layout

2.2 设置layout的属性 大小 最小Item的间距 和 行间距 距离屏幕的内间距UIEdgeInsetMake

2.3 创建控件 设置属性 添加到对应的控件中

3. 添加约束

3.1 首先取消 autoresizing

3.2 VFL语言 或是 第三方框架 Masony 添加约束

3.3 添加约束

4. 设置代理CollectionViewDateSource

4.1 实现代理方法 返回组
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView;

4.2 返回 每组Item的个数
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section;

4.3 返回cell
- (UICollectionViewCell )collectionView:(UICollectionView ) collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;

在返回cell 中 定义标识

获取重用的cell

设置属性

返回cell

UICollectionView 的常见属性

@property (nonatomic, strong) UICollectionViewLayout *collectionViewLayout ;
布局对象 
@property ( nonatomic , strong )UIView *backgroundView ;
背景图片,设置之后会自动的填充整个UICollectionView
@property ( nonatomic ) BOOL  allowSelection ;
是否允许选中cell    默认允许选中 
@property ( nonatomic) BOOL  allowsMultipleSelection ;
是否可以多选    默认只是单选
@property ( nonatomic) CGFloat  minimumInteritemSpacing ;
cell之间的最小行列距
@property ( nonatomic) CGFloat  minimumLineSpacing  ;
cell之间的最小行间距
@property ( nonatomic) CGSize   itemSize ;
cell 的尺寸 
@property ( nonatomic ) CGSize  estimatedItemSize ;
cell的预估尺寸
@property ( nonatomic ) UICollectionViewScrollDirection         scrollDirection ; 
 的滚动方向 ,默认是垂直滚动
@property ( nonatomic ) CGSize  headerReferenceSize ;
HeaderView 的尺寸  
@property ( nonatomic ) CGSize  footerReferenceSize ;
FooterView 的尺寸 
@property ( nonatomic ) UIEdgelnsets  sectionlnset  ;
分区的四边距
设置是否当元素超出屏幕之后固定页眉视图位置,默认NO
@property (nonatomic) BOOL sectionHeadersPinToVisibleBounds ;
设置是否当元素超出屏幕之后固定页脚视图位置,默认NO
@property (nonatomic) BOOL sectionFootersPinToVisibleBounds ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值