IOS 实现九宫格

  • 通过向mainView添加sunView来模拟实现九宫格数据的添加。
  • 想要实现九宫格,主要在于每个sunView的X,Y值的计算,宽、高自定义即可。
    • 添加sunView的宽和高分别为:vieW,viewH。
Untitled.png
  • 列间距:colMargin,行间距:rowMargin。
  • X坐标的计算:
    • 由上图可知每个sunView的X坐标为:viewW+colMargin的倍数。
      • 举个🌰:例如1的X的坐标为:0*(viewW+colMargin)。2点X坐标1*(viewW+colMargin)。其他以此类推。
    • 倍数col(系数)的获得:
      • col = index % cols;index为在mainView中含有的sunView的个数,cols为你所需要实现效果的列数。
      • 说明:当mainView中不含有任何sunView的时候,index的值为零,当他对cols取余的时候余数为零,对应的系数为零,所对应的X值为零,即1的X坐标为0。继续添加,此时已有一个sunView,index的值为1,对cols取余的值为1,此时X值为1*(viewW+colMargin),即2的坐标为1*(viewW+colMargin)。其他以此类推。
 NSUInteger col = index % cols;
  CGFloat viewX = col * (viewW + colMargin);
  • Y坐标的计算:
    • 由上图可知每个sunView的Y坐标为:viewW + colMargin的倍数。思想类似于Y坐标的计算,这里不再赘述。
    • 倍数row(系数)的获得:
      • row = index / cols。
NSInteger row = index / cols;
CGFloat viewY = row * (viewH + rowMargin);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,767评论 0 33
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,857评论 0 6
  • 回溯算法 回溯法:也称为试探法,它并不考虑问题规模的大小,而是从问题的最明显的最小规模开始逐步求解出可能的答案,并...
    fredal阅读 13,719评论 0 89
  • 一、 弟弟的骨灰在安检的时候被拦下来。 安检的姑娘以为是毒品,执意不让过。我并没有多说,只拜托她向上级反映,然后等...
    约大人阅读 235评论 0 3
  • 1.代码1http://js.jirengu.com/wabed/1/edit?html,css,output2....
    _小黑阅读 120评论 0 0