/**
* 九宫格的创建是有规律可循的,每一个格子的水平和竖直方向的间隔是固定的
* ,通过计算每一个格子的位置,然后把它们依次放到视图中即可。
*
* 一般的步骤为:
* 1.设置格子的总个数和每一列的格子数
* 2.求格子的间隔:
* 水平间隔 = 视图总宽-每一个格子的宽*列数)/(列数+1)
* 竖直间隔 = 水平间隔
* 3.通过for循环,依次创建所有的格子并设置相应的图片,并且对每一个格子的位置进行设置
*/
声明属性
// 声明属性
var button :UIButton?
var image :UIImage?
设置格子总数和列数
// 设置格子的高和宽
self.image = UIImage(named: "0.jpg")
// let heigth:CGFloat = self.image!.size.height
// let width:CGFloat = self.image!.size.width
let heigth:CGFloat = 75
let width:CGFloat = 75
设置格子的间距
// 设置格子的间距
let screenSize:CGSize = self.view.frame.size
let hMargin:CGFloat = (screenSize.width - (CGFloat(col) * width)) / CGFloat((col+1))
let vMargin:CGFloat = hMargin
创建九宫格
var row:Int = 0
for i in 0..<nums {
self.button = UIButton()
self.image! = UIImage(named: "\(i).jpg")!
self.button!.setImage(self.image!, forState: .Normal)
if i%col == 0 {
row++
}
let x:CGFloat = hMargin + (width + hMargin) * CGFloat(i%col)
let y:CGFloat = vMargin + (heigth + vMargin) * CGFloat(row)
self.button!.frame = CGRectMake(x, y, width, heigth)
self.view.addSubview(self.button!)
}
运行效果