UIPickerView

class CPUIPickerViewViewController:UIViewController, UIPickerViewDelegate, UIPickerViewDataSource{

    

    var pickerView:UIPickerView!

    

    override func viewDidLoad() {

        super.viewDidLoad()

        pickerView = UIPickerView()

        //dataSource设置成自己

        pickerView.dataSource = self

        //delegate设置成自己

        pickerView.delegate = self

        //设置选择框的默认值

        pickerView.selectRow(1,inComponent:0,animated:true)

        pickerView.selectRow(2,inComponent:1,animated:true)

        pickerView.selectRow(3,inComponent:2,animated:false)

        self.view.addSubview(pickerView)

        

        //建立一个按钮,触摸按钮时获得选择框被选择的索引

        let button = UIButton(frame:CGRect(x:0, y:0, width:100, height:30))

        button.center = self.view.center

        button.backgroundColor = UIColor.blue

        button.setTitle("获取信息",for:.normal)

        button.addTarget(self, action:#selector(getPickerViewValue),

                         for: .touchUpInside)

        self.view.addSubview(button)

        

        self.view.backgroundColor = UIColor.white

        

    }

    //设置选择框的列数为3,继承于UIPickerViewDataSource协议

    func numberOfComponents(in pickerView: UIPickerView) -> Int {

        return 3

    }

    

    //设置选择框的行数为9行,继承于UIPickerViewDataSource协议

    func pickerView(_ pickerView: UIPickerView,

                    numberOfRowsInComponent component: Int) -> Int {

        return 9

    }

    

//    //设置选择框各选项的内容,继承于UIPickerViewDelegate协议

//    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

//        return String(row)+"-"+String(component)

//    }

    

//    //选择框选项的内容,除了可以使字符串类型的,还可以是任意UIView类型的元素。比如我们将选项内容设置为图片

//    func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {

//        let image = UIImage(named:"CP_heart")

//        let imageView = UIImageView()

//        imageView.image = image

//        return imageView

//    }

    

    //触摸按钮时,获得被选中的索引

    func getPickerViewValue(){

        let message = String(pickerView.selectedRow(inComponent: 0)) + "-"

            + String(pickerView!.selectedRow(inComponent: 1)) + "-"

            + String(pickerView.selectedRow(inComponent: 2))

        let alertController = UIAlertController(title: "被选中的索引为",

                                                message: message, preferredStyle: .alert)

        let okAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)

        alertController.addAction(okAction)

        self.present(alertController, animated: true, completion: nil)

    }

    

    //设置列宽

    func pickerView(_ pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat {

        if(0 == component){

            //第一列变宽

            return 100

        }else{

            //第二、三列变窄

            return 50

        }

    }

    

    //设置行高

    func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {

        if component == 1 {

            return 20

        }

        return 50

    }

    

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

        //将在滑动停止后触发,并打印出选中列和行索引

        print(component)

        print(row)

    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值