九宫格显示就是在界面中显示一些数据和画面,当达到某个个数就会自动换行,在新的一行中显示.例如,购物车中,你添加一个商品在界面中就显示一个,假设它只有3列,当第一行加满三个之后自动换行显示.计算这个九宫格,第一步要写的是你的最大列数,随后就是设置你要显示物品的尺寸.从而计算出商品的X值和Y值.代码显示如下:
设置列数
计算索引值
NSInteger index = self.shopsView.subviews.count;
计算列数 (每一列索引取模最大列数就是有多少列)处在同一列的X一样
设置行距
CGFloat Yspace = 20;
求行数 (每一行索引除以最大列数就是有多少行) 处在同一行的Y一样
CGFloat row = index / maxcols;
求Y
设置列数
int maxcols = 3;
设置商品大小
CGFloat shopH = 90;
CGFloat shopW = 70;计算索引值
NSInteger index = self.shopsView.subviews.count;
计算列数 (每一列索引取模最大列数就是有多少列)处在同一列的X一样
CGFloat col = index % maxcols;
列距
CGFloat Xspace = (self.shopsView.frame.size.width - maxcols *shopW) / (maxcols - 1);
计算X
CGFloat shopX = (shopW + Xspace) *col;
设置行距
CGFloat Yspace = 20;
求行数 (每一行索引除以最大列数就是有多少行) 处在同一行的Y一样
CGFloat row = index / maxcols;
求Y
CGFloat shopY = (shopH + Yspace) * row;
添加控件
UIImageView *imageview = [UIImageView alloc] init];
imageview.frame = cgrectmake(shopX,shopY,shopW,shopH);

本文介绍了一种九宫格布局算法,通过设定最大列数和商品尺寸,计算出每个商品在界面上的位置坐标,实现自动换行显示效果。文中详细解释了如何计算商品的X值和Y值,并给出了具体的代码实现。
1060

被折叠的 条评论
为什么被折叠?



