Swift - 九宮格的創(chuàng)建

/**
* 九宮格的創(chuàng)建是有規(guī)律可循的,每一個(gè)格子的水平和豎直方向的間隔是固定的
* ,通過(guò)計(jì)算每一個(gè)格子的位置,然后把它們依次放到視圖中即可。
*
* 一般的步驟為:
* 1.設(shè)置格子的總個(gè)數(shù)和每一列的格子數(shù)
* 2.求格子的間隔:
* 水平間隔 = 視圖總寬-每一個(gè)格子的寬*列數(shù))/(列數(shù)+1)
* 豎直間隔 = 水平間隔
* 3.通過(guò)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)行效果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容