Swift - 九宫格的创建

/**
* 九宫格的创建是有规律可循的,每一个格子的水平和竖直方向的间隔是固定的
* ,通过计算每一个格子的位置,然后把它们依次放到视图中即可。
*
* 一般的步骤为:
* 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!)
        }

运行效果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容