【iOS】iOS用UICollectionViewController来进行横竖屏九宫格布局

\

\

 

1.简单说说UICollectionViewController                 

我们在做九宫格布局时,可以使用UIScrollView,也可以使用UICollectionViewController。

当我们用UICollectionViewController来进行九宫格布局,可以更加方便,省去很多麻烦,例如横竖屏的适配。

UICollectionViewController 用起来非常简单,只需要简单的几步,就能实现非常的漂亮的九宫格布局。

下面就说说UICollectionViewController实现的几步。

2.UICollectionViewController的实现                 

2.1.传递布局                                           

首页创建UICollectionViewController时,需要给它传一个展示的布局,一般九宫格用的都使流水布局!

01. // 1.创建流水布局
02.  
03. UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
04.  
05. // 2.设置每个格子的尺寸
06. layout.itemSize = CGSizeMake(250250);
07.  
08. // 3.设置整个collectionView的内边距
09. CGFloat paddingY = 20;
10. CGFloat paddingX = 40;
11. layout.sectionInset = UIEdgeInsetsMake(paddingY, paddingX, paddingY, paddingX);
12.  
13. // 4.设置每一行之间的间距
14. layout.minimumLineSpacing = paddingY;
2.2.初始化UICollectionViewController,设置展示布局                     
1. //初始化 UICollectionViewController
2. UICollectionViewController *controller = [[UICollectionViewController alloc] initWithCollectionViewLayout:layout]

在对 UICollectionViewController 的 View 进行相关属性设置和属性修改时,记得要拿到UICollectionViewController.collectionView 再设置。

1. //设置背景
2. self.collectionView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@'bg_deal']];
2.3.显示数据                                           

记得分别实现

<UICollectionViewDelegate, UICollectionViewDataSource>

之后再调用代理数据源方法和代理方法

01. #pragma mark - 数据源方法
02. /**
03. *  第section组有多少个格子(cell)
04. */
05. - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
06. {
07. return _deals.count;
08. }
09.  
10. //每个格子的内容
11. - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
12. {
13. //    indexPath.item    某一组的哪一个
14. //    indexPath.section 哪一组
15. // 1.创建cell
16. QCDealCell *cell = [QCDealCell cellWithCollectionView:collectionView indexPath:indexPath];
17.  
18. // 2.取出模型,传递模型
19. cell.deal = _deals[indexPath.item];
20.  
21. return cell;
22. }

模型数据封装好后,就能实现上图展示效果,横竖屏自动适配好!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值