iOS九宫格布局

栏目: IOS · 发布时间: 6年前

内容简介:iOS九宫格布局

目的

本文要跟大家分享的是一个简单九宫格算法,可以帮你自动计算间距,对控件(Button/Label/imageView...)或view进行有序排列。 Demo

由于可以定义列数/宽高,请自行设计应用场景。

iOS九宫格布局

代码解读

一、首先在控制器中定义几个宏(图1)

iOS九宫格布局

宽度:定义将要添加的这些控件的宽度。

高度:定义将要添加的这些控件的高度。

列数:你想让这些控件排成几列。

ps:这里所说的控件也可以是view。

二、九宫格形式添加控件 ,以添加图片为例(图2)

iOS九宫格布局

1. 代码要放在一个for循环里

循环的次数代表将要创建图片个数,不要忘了这个for循环

for (int i = 0; i<pictures.count; i++)

2. 首先创建控件,并添加到视图上

UIImageView *imageView = [[UIImageView alloc] init];

imageView.image = [UIImage imageNamed:pictures[i]];

[self.view addSubview:imageView];

3. 然后计算本张图片应该放在第几行和第几列

NSInteger row = i / COL_COUNT;

NSInteger col = i % COL_COUNT;

4. 计算图片平均排列的间距

CGFloat margin = (self.view.bounds.size.width - (PIC_WIDTH * COL_COUNT)) / (COL_COUNT + 1);

5. 计算图片所在的x和y坐标

CGFloat picX = margin + (PIC_WIDTH + margin) * col;

CGFloat picY = margin + (PIC_HEIGHT + margin) * row;

6. 定义这张图片的frame

imageView.frame = CGRectMake(picX, picY, PIC_WIDTH, PIC_HEIGHT);

至此九宫格形式添加完毕,其中的图片内容可以是网络加载或本地加载。

控制器初始化时把图片放到一个数组里,九宫格控件的总个数根据这个数组得到。

我做了一个本地加载图片的 Demo


以上所述就是小编给大家介绍的《iOS九宫格布局》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

谷歌和亚马逊如何做产品

谷歌和亚马逊如何做产品

梅 (Chris Vander Mey) / 刘亦舟 / 人民邮电出版社 / 2014-6-1 / CNY 49.00

软件在交付之前,面临产品、方案、项目和工程管理等诸多挑战,如何做到游刃有余并打造出极致产品?本书作者曾任谷歌和亚马逊高级产品经理、现任Facebook产品经理,他将自己在达特茅斯学院钻研的理论知识和在领先的互联网公司十年的工作经验尽数总结在此,从定义产品开始,一步步指导你完成管理项目、迭代、发布、市场推广等交付流程,让你身临其境地体验到极致产品如何取得成功。 本书主要内容: 如何清晰定......一起来看看 《谷歌和亚马逊如何做产品》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具