/**
* 九宮格的創(chuàng)建是有規(guī)律可循的,每一個(gè)格子的水平和豎直方向的間隔是固定的
* ,通過計(jì)算每一個(gè)格子的位置,然后把它們依次放到視圖中即可著摔。
*
* 一般的步驟為:
* 1.設(shè)置格子的總個(gè)數(shù)和每一列的格子數(shù)
* 2.求格子的間隔:
* 水平間隔 = 視圖總寬-每一個(gè)格子的寬*列數(shù))/(列數(shù)+1)
* 豎直間隔 = 水平間隔
* 3.通過for循環(huán),依次創(chuàng)建所有的格子并設(shè)置相應(yīng)的圖片,并且對(duì)每一個(gè)格子的位置進(jìn)行設(shè)置
*/
聲明屬性
// 聲明屬性
var button :UIButton?
var image :UIImage?
設(shè)置格子總數(shù)和列數(shù)
// 設(shè)置格子的高和寬
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
設(shè)置格子的間距
// 設(shè)置格子的間距
let screenSize:CGSize = self.view.frame.size
let hMargin:CGFloat = (screenSize.width - (CGFloat(col) * width)) / CGFloat((col+1))
let vMargin:CGFloat = hMargin
創(chuàng)建九宮格
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!)
}
運(yùn)行效果