美文网首页
使用UIView给页面添加4×4方格

使用UIView给页面添加4×4方格

作者: 焉逢12 | 来源:发表于2017-03-16 12:03 被阅读0次

    自定义view

    import UIKit
    
    class GPLView: UIView {
    
        /*
        // Only override draw() if you perform custom drawing.
        // An empty implementation adversely affects performance during animation.
        override func draw(_ rect: CGRect) {
            // Drawing code
        }
        */
        //颜色映射表,不同的数字颜色不同
        let colorMap = [
            2:UIColor.red,
            4:UIColor.orange,
            8:UIColor.yellow,
            16: UIColor.green,
            32:UIColor.brown,
            64:UIColor.blue,
            128:UIColor.purple,
            256:UIColor.cyan,
            512:UIColor.lightGray,
            1024:UIColor.magenta,
            2048:UIColor.black
        ]
        
        //在设置值时,更新视图的背景和文字
        var value:Int = 0{
            didSet{
                backgroundColor = colorMap[value]
                numberLabel.text="\(value)"
            }
        }
    
        var numberLabel:UILabel!
        
        //声明一个自定义初始化方法
        init(pos:CGPoint, width:CGFloat, value:Int) {
            numberLabel = UILabel(frame: CGRect(x: 0, y: 0, width: width, height: width))
            numberLabel.textColor = UIColor.white
            numberLabel.textAlignment = .center
            numberLabel.minimumScaleFactor = 0.5
            numberLabel.font = UIFont(name:"微软雅黑", size:20)
            numberLabel.text = "\(value)"
            super.init(frame:CGRect(x:pos.x , y: pos.y, width: width, height: width))
            addSubview(numberLabel)
            self.value = value
            backgroundColor = colorMap[value]
        }
        
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
    
    }
    
    import UIKit
    
    class ViewController: UIViewController {
        //游戏方格维度
        var dimension:Int = 4
        //数字格子的宽度
        var width:CGFloat = 50
        //格子与格子的间距
        var padding:CGFloat = 6
        //保存背景图数据
        //var backgrounds:Array<GPLView>!
        
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            //self.backgrounds = Array<GPLView>()
            //改成主视图背景白色背景
            self.view.backgroundColor = UIColor.white
            setupGameMap()
        }
        func setupGameMap()
        {
            var x:CGFloat = 50
            var y:CGFloat = 150
            
            for i in 0..<dimension
            {
                print(i)
                y = 150
                for j in 0..<dimension
                {
                    //随机2的1~11次方
                    var val:Int = 2<<Int(arc4random_uniform(10))
                    //初始化视图
                    var background = GPLView(pos: CGPoint(x:x,y:y), width: self.width, value: val)
                    self.view.addSubview(background)
                    //将视图保存起来,以备后用
                    //backgrounds.append(background)
                    y += padding + width
                }
                x += padding+width
            }
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
    
    }
    

    相关文章

      网友评论

          本文标题:使用UIView给页面添加4×4方格

          本文链接:https://www.haomeiwen.com/subject/nfadnttx.html