美文网首页
Day14- PickerView 老虎机

Day14- PickerView 老虎机

作者: Codepgq | 来源:发表于2016-09-20 17:42 被阅读147次

    最终效果

    全中实在太难了!!!......

    最终效果

    1、UI布局

    1、拖入pickerView,设置水平垂直居中,,
    2、拖入Label设置左右边距20,下边距20
    3、拖入button,设置上下左右边距20,高度40
    5、设置label上边距20
    6、选中三个控件,更新约束

    2、把三个控件都拖入到ViewController中

    创建数据源

    private lazy var data : NSArray = {
           let imageArray = ["👻","👸","💩","😘","🍔","🤖","🍟","🐼","🚖","😭","🎹","😴"]
            var data1 = [String]()
            var data2 = [String]()
            var data3 = [String]()
            for var i = 0 ; i <= 100 ; i += 1
            {
                data1.append(imageArray[NSInteger(arc4random() % 10)])
                data2.append(imageArray[NSInteger(arc4random() % 10)])
                data3.append(imageArray[NSInteger(arc4random() % 10)])
    //            data1.append(imageArray[0])
    //            data2.append(imageArray[0])
    //            data3.append(imageArray[0])
            }
            let array = [data1,data2,data3]
            return array
        }()
    

    <br />
    设置代理,圆角

    startBtn.layer.cornerRadius = 5
            
            
            //设置代理
            pickerView.delegate = self
            pickerView.dataSource = self
    

    <br />
    实现代理方法

    // returns the number of 'columns' to display.
        // 有多少列
        func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{
            return data.count
        }
        
        // returns the # of rows in each component..
        // 每一列有多少个
        func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
            return data[component].count
        }
        
        func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?{
            let ss : String = (data[component] as! NSArray)[row] as! String
            return ss
        }
    

    <br />
    实现按钮点击方法

         @IBAction func startBtnClick(sender: UIButton) {
            
            //随机选中
            pickerView.selectRow(Int(arc4random()) % 90 + 3, inComponent: 0, animated: true)
            pickerView.selectRow(Int(arc4random()) % 90 + 3, inComponent: 1, animated: true)
            pickerView.selectRow(Int(arc4random()) % 90 + 3, inComponent: 2, animated: true)
            
            
            //把值取出来,
            let d1 = (data[0][pickerView.selectedRowInComponent(0)]) as! String
            let d2 = (data[1][pickerView.selectedRowInComponent(1)]) as! String
            let d3 = (data[2][pickerView.selectedRowInComponent(2)]) as! String
            //打印取出的值
            print(d1,d2,d3)
            
            //判断值是否相等
            if d1 == d2 && d1 == d3{
                messageLabel.text = "Bingo!"
            }
            else{
                messageLabel.text = "💔"
            }
            
            //按钮动画
            UIView.animateWithDuration(0.5, delay: 0, usingSpringWithDamping: 0.35, initialSpringVelocity: 0, options: .CurveEaseOut, animations: { 
                self.startBtn.bounds = CGRect(x: self.startBtn.bounds.origin.x, y: self.startBtn.bounds.origin.y, width: self.startBtn.bounds.size.width + 20, height: self.startBtn.bounds.size.height)
                }) { (_) in
                    UIView.animateWithDuration(0.15, animations: {
                        self.startBtn.bounds = CGRect(x: self.startBtn.bounds.origin.x, y: self.startBtn.bounds.origin.y, width: self.startBtn.bounds.size.width - 20, height: self.startBtn.bounds.size.height)
                    })
            }
        }
    
    

    <br />

    Demo - PickerView

    相关文章

      网友评论

          本文标题:Day14- PickerView 老虎机

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