一.九宮格 排列計算方法.
- 先確定每行多少列.
- 在根據(jù)每行的單元格個數(shù)求出,單元格之間的間距
- 再根據(jù)父控件的
subViews.count
屬性求出每個單元的編號
4.根據(jù)單元格編號得出每個單元格在第幾行第幾列
5.根據(jù)第幾行,得出單元格的Y值
6.根據(jù)第幾列,得出單元格的X值
- 先算出每個單元格的長寬
CGFloat shopW = 50;
CGFloat shopH = 70;
- 根據(jù)每個單元格在父控件中的數(shù)組的
subViews.count
給單元格編號
//商品的編號 商品的行號 列號
NSUInteger shopNub = self.shopsView.subviews.count;
- 得出每一行的個數(shù),第幾行,第幾列.
//一行多少列
int cols = 3;
//第幾行
NSUInteger row = shopNub / cols;
//第幾列
NSUInteger col = shopNub % cols;
- 通過每行的列數(shù),和父控件的寬,得出每個單元格之間的間距.
//每列的間距
CGFloat colMargin = (self.shopsView.frame.size.width -cols*shopW) / (cols - 1);
- 設(shè)定每行的間距.
//每行間距
CGFloat rowMargin = 10;
- 根據(jù)上面所得的數(shù)據(jù) ,求出每個單元格的
frame
的XY值
CGFloat shopX = col *(shopW + colMargin);
CGFloat shopY = row *(shopH +rowMargin);
shopView.frame = CGRectMake(shopX, shopY, shopW, shopH);