添加appView: 多行 多列 : 是通过双层for循环实现
在去做的时候, 把 循环中 用到的 i(控制行) 和 j(控制列) 跟 i <--> y , j <--> x
九宫格布局的实现步骤
1. 定义了列数 column
2. 定义了view的宽度和高度
3. 计算view之间的间距
4. 计算 x 和 y 的值
5. 直接进行布局
计算行索引 和 列索引
for (int i = 0; i < self.dataArray.count; i++) {
// 计算行索引
NSInteger rowIndex = i / column;
// 计算列索引
NSInteger columIndex = i % column;
}
// 九宫格布局
for (int i = 0; i < 3; i++) { // 控制行数
for (int j = 0; j < 3; j++) { // 控制列数
/ X = (j + 1) * margin + j * appViwWidth
// x的计算 和 列索引有关系
CGFloat appViewX = (j + 1) * margin + j * appViewWidth;
// 计算Y值的公式
// Y = margin * (i + 1) + appViewHeight * i;
// Y 值的计算和 行索引有关
CGFloat appViewY = margin * (i + 1) + appViewHeight * i;
// 所有的执行代码
UIView *appView = [[UIView alloc] initWithFrame:CGRectMake(appViewX, appViewY, appViewWidth, appViewHeight)];
// 设置背景颜色
appView.backgroundColor = [UIColor grayColor];
// 把appView 添加到 控制器的view上
[self.view addSubview:appView];
}
}
得到对象的最大Y值
// 传递的参数: 想要获取最大Y值对象的frame
CGFloat labelY = CGRectGetMaxY(appImageView.frame)
// 设置按钮上title的字体大小
downButton.titleLabel.font = [UIFont systemFontOfSize:12];