九宫格-笔记

一.九宫格 排列计算方法.

  1. 先确定每行多少列.
  2. 在根据每行的单元格个数求出,单元格之间的间距
  3. 再根据父控件的subViews.count属性求出每个单元的编号
    4.根据单元格编号得出每个单元格在第几行第几列
    5.根据第几行,得出单元格的Y值
    6.根据第几列,得出单元格的X值
  • 先算出每个单元格的长宽
CGFloat shopW = 50;
CGFloat shopH = 70;
  • 根据每个单元格在父控件中的数组的subViews.count给单元格编号
    //商品的编号 商品的行号 列号
    NSUInteger shopNub = self.shopsView.subviews.count;
  • 得出每一行的个数,第几行,第几列.
//一行多少列
int cols = 3;
//第几行
NSUInteger row = shopNub / cols;
//第几列
NSUInteger col = shopNub % cols;
  • 通过每行的列数,和父控件的宽,得出每个单元格之间的间距.
 //每列的间距
 CGFloat  colMargin = (self.shopsView.frame.size.width -cols*shopW) / (cols - 1);
  • 设定每行的间距.
    //每行间距
    CGFloat rowMargin = 10;
  • 根据上面所得的数据 ,求出每个单元格的frame的XY值
    CGFloat shopX = col *(shopW + colMargin);
    CGFloat shopY = row *(shopH +rowMargin);
    shopView.frame = CGRectMake(shopX, shopY, shopW, shopH);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发散型 收敛型 时间 四象限 参考九宫格笔记法Evernote 实作,跳脱直线的表格思考术|经理人B91-空間發散...
    鸭梨山大哎阅读 1,064评论 1 9
  • 废话不多说,直接上干货 ---------------------------------------------...
    小小赵纸农阅读 3,436评论 0 15
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,535评论 0 17
  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 9,090评论 3 38
  • 在如今信息爆炸的时代,每个人都似乎有一种焦虑,追求立竿见影的效果,追求速度。在读书上的体现就是快速阅读,拆...
    小生贾诩阅读 217评论 0 1