一.九宫格 排列计算方法.
- 先确定每行多少列.
- 在根据每行的单元格个数求出,单元格之间的间距
- 再根据父控件的
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);