九宫格算法

Paste_Image.png

像这样的九宫格的元素位置的算法,还是比较简单的,下面就来分析一下:

九宫格算法

三行三列的九宫格的每一个元素的位置的算法:

  • 编号为0的元素,位于第0行,第0列
  • 编号为1的元素,位于第0行,第1列
  • 编号为2的元素,位于第0行,第2列
  • 编号为3的元素,位于第1行,第0列
  • 编号为4的元素,位于第1行,第1列
  • 编号为5的元素,位于第1行,第2列
  • 编号为6的元素,位于第2行,第0列
  • 编号为7的元素,位于第2行,第1列
  • 编号为8的元素,位于第2行,第2列

观察就会发现

  • 元素的行号 = 编号 / 列数
  • 元素的列号 = 编号 % 列数

假设一个元素的 宽 高 水平间距 垂直间距

  • width = 70
  • height = 90
  • colMargin = 10
  • rowMargin = 10
  • 红色View的宽是bigW,高是bigH

那么就可以得出:

X = 列号 * (width + colMargin)
Y = 行号 * (height + rowMargin)
那么元素的frame = CGRectMake(x, y, width, height);

元素的宽、高可以根据红色背景的宽和高、还有水平间距和垂直间距和列数和行数算出,同样的间距也是可以算出来的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //九宫格算法。 /* 计算步骤 1,确定每个app的宽和高 2,计算marginX,marginY, margi...
    夜涂黑阅读 669评论 0 0
  • 九宫格 分页公式
    EdenChow阅读 572评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,790评论 1 92
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,327评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,791评论 0 2