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

1.简单说说UICollectionViewController
我们在做九宫格布局时,可以使用UIScrollView,也可以使用UICollectionViewController。
当我们用UICollectionViewController来进行九宫格布局,可以更加方便,省去很多麻烦,例如横竖屏的适配。
UICollectionViewController 用起来非常简单,只需要简单的几步,就能实现非常的漂亮的九宫格布局。
下面就说说UICollectionViewController实现的几步。
2.UICollectionViewController的实现
2.1.传递布局
首页创建UICollectionViewController时,需要给它传一个展示的布局,一般九宫格用的都使流水布局!
// 1.创建流水布局
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
// 2.设置每个格子的尺寸
layout.itemSize = CGSizeMake(, );
// 3.设置整个collectionView的内边距
CGFloat paddingY = ;
CGFloat paddingX = ;
layout.sectionInset = UIEdgeInsetsMake(paddingY, paddingX, paddingY, paddingX);
// 4.设置每一行之间的间距
layout.minimumLineSpacing = paddingY;
2.2.初始化UICollectionViewController,设置展示布局
//初始化 UICollectionViewController
UICollectionViewController *controller = [[UICollectionViewController alloc] initWithCollectionViewLayout:layout]
在对 UICollectionViewController 的 View 进行相关属性设置和属性修改时,记得要拿到UICollectionViewController.collectionView 再设置。
//设置背景
self.collectionView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg_deal"]];
2.3.显示数据
记得分别实现
<UICollectionViewDelegate, UICollectionViewDataSource>
之后再调用代理数据源方法和代理方法
#pragma mark - 数据源方法
/**
3 * 第section组有多少个格子(cell)
4 */
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return _deals.count;
} //每个格子的内容
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
// indexPath.item 某一组的哪一个
// indexPath.section 哪一组
// 1.创建cell
QCDealCell *cell = [QCDealCell cellWithCollectionView:collectionView indexPath:indexPath]; // 2.取出模型,传递模型
cell.deal = _deals[indexPath.item]; return cell;
}
模型数据封装好后,就能实现上图展示效果,横竖屏自动适配好!
清澈Saup
iOS- 用UICollectionViewController 来进行横竖屏九宫格布局的更多相关文章
- iOS回顾笔记( 02 ) -- 由九宫格布局引发的一系列“惨案”
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- ios单独的页面支持横竖屏的状态调整,HTML5加载下(更新2)
单独的页面支持横竖屏的状态调整,HTML5加载下 工程中设置只支持竖屏状态,在加载HTML5的界面可以是横竖屏的,在不对工程其他界面/设置做调整的同时,可以这样去 #import "View ...
- iOS 实现单个页面支持横竖屏,其他页面只能竖屏
最近在自己的项目里面 有需要做一个需求 : app中某一个页面支持横竖屏, 而其他页面只能竖屏. 1 2 实现方法如下: 1 首先需要Xcode中选中支持的屏幕方向 2 Appdelegate中 . ...
- Activity 横竖屏切换
前言 在开发中常要处理横竖屏切换,怎么处理先看生命周期 申明 Activity 横竖屏切换时需要回调两个函数 ,所以在此将这个两个函数暂时看成是Activity 横竖屏切换的生命周期的一部分,这两个函 ...
- 【转】Android横竖屏切换问题
Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 ...
- Android横竖屏切换处理
Android横竖屏要解决的问题应该就两个: 1.布局问题:2.重新载入问题 一.布局问题: 如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你 ...
- Android横竖屏切换总结
Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 ...
- Android layout的横竖屏处理
一.layout-land和layout-prot的区别与使用 默认情况下,创建的Android项目里只有一个layout文件夹,尽管这样也可以横竖屏切换用,但是某些布局横屏过后闲的格外的丑,如下图 ...
- iPad横竖屏代码适配
你可能非常了解用不同的方式去适配不同尺寸的iPhone屏幕,在适配iPhone屏幕时你需要考虑的只是屏幕大小变化带来的UI元素间隔的变化,但是在iPad上主要针对的是横竖屏下完全不同的UI元素的布局, ...
随机推荐
- 小Hi和小Ho的礼物
题目:小Hi和小Ho的礼物 注:[i.j.p.q]为下标 个人感觉这道题是有一定难度的.读者可以参考一下[四平方和]的解题思路 分析过程下次补上 代码如下: #include <iostream ...
- codechef Table Game(博弈)
题意 题目链接 很难概括.. Sol (因为比赛还没结束,所以下面讲的可能是“非官方”“正解”) maya这题我前前后后 断断续续的做了一个星期才A掉.CC一场challenge出两道打表题可有点过分 ...
- 北京Uber优步司机奖励政策(3月26日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- LeetCode: 62. Unique Paths(Medium)
1. 原题链接 https://leetcode.com/problems/unique-paths/description/ 2. 题目要求 给定一个m*n的棋盘,从左上角的格子开始移动,每次只能向 ...
- 关于iOS和Android的安装包更新笔记
关于iOS和Android的安装包更新问题 1. Android更新apk 1)使用DownloadManager下载 2)使用HttpClient下载 apk的下载不能使用ssl,即不能使用http ...
- Java - 无乱码读写文件
Java读取数据流的时候,一定要指定数据流的编码方式,否则将使用本地环境中的默认字符集. BufferedReader reader = null; String laststr = "&q ...
- mysql using filesort Using temporary
using filesort 一般人的回答是: “当行数据太大,导致内存无法容下这些数据产生的临时表时,他们就会被放入磁盘中排序.” 很不幸,这个答案是错的 ,临时表在太大的时候确实会到磁盘离去,但 ...
- 用ext_skel,实现一个PHP扩展,添加到PHP并调用
1 创建函数定义文件 #mkdir /home/phpext #vi mydefined.skel string get_text(string str) 2 根据README所提供的信息创建预定义文 ...
- 使用duplicateweedout
mysql> explain extended select * from cities where id in (select phonecode from countries group b ...
- Jenkins构建完成后实现自动将war包部署到指定服务器
首先我们需要确定我们的jenkins安装了:publish over ssh 插件,如果没有安装,到-->jenkins首页-->系统管理-->插件管理-->可选安装里面去搜 ...
