添加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];