IOS UIPickerView

来源:互联网 发布:阿里巴巴数据管家 编辑:程序博客网 时间:2024/04/29 16:29



import UIKitclass ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {        var pickerView: UIPickerView!        var month = [String]()    var week = [String]()        override func viewDidLoad() {                // 初始化数据        month = ["January","February","March","April","May","June","July","August","September","October","November","December"]        week = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]                // 定义一个按钮,复原数据回到初始状态        let button1 = UIButton()        button1.frame = CGRectMake(self.view.frame.width/2 - 200, 50, 400, 50)        button1.setTitle("复原数据回到初始状态", forState: UIControlState.Normal)        button1.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)        button1.tag = 1                // 定义一个按钮,刷新数据成中文        let button2 = UIButton()        button2.frame = CGRectMake(self.view.frame.width/2 - 200, 150, 400, 50)        button2.setTitle("刷新数据成中文", forState: UIControlState.Normal)        button2.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)        button2.tag = 2                // 定义一个按钮,打印当前选中的月份和星期        let button3 = UIButton()        button3.frame = CGRectMake(self.view.frame.width/2 - 200, 250, 400, 50)        button3.setTitle("打印当前选中的月份和星期", forState: UIControlState.Normal)        button3.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)        button3.tag = 3                // 初始化 myPickerView        pickerView = UIPickerView(frame: CGRectMake(0, self.view.frame.height - 200, self.view.frame.width, 200))        pickerView.delegate = self        pickerView.dataSource = self        // 显示选中框,iOS7 以后不起作用        pickerView.showsSelectionIndicator = false                self.view.addSubview(button1)        self.view.addSubview(button2)        self.view.addSubview(button3)        self.view.addSubview(pickerView)    }        // 设置列数    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {        return 2    }        // 设置行数    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {        if(component == 0){            return month.count        }        if(component == 1){            return week.count        }        return 0    }        // 设置每行具体内容(titleForRow 和 viewForRow 二者实现其一即可)    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {        if(component == 0){            return month[row]        }        if(component == 1){            return week[row]        }        return nil    }        // 选中行的操作    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {        if(component == 0){            print("month selected: \(month[row])")        }        if(component == 1){            print("week selected: \(week[row])")        }    }        /// 响应按钮点击事件    func buttonAction(sender: UIButton) {        let num = sender.tag        switch num {        case 1:            // 复原数据回到初始状态并重置            month = ["January","February","March","April","May","June","July","August","September","October","November","December"]            week = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]            pickerView.reloadAllComponents()            pickerView.selectRow(0, inComponent: 0, animated: true)            pickerView.selectRow(0, inComponent: 1, animated: true)        case 2:            // 刷新数据成中文并重置            month = ["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]            week = ["星期一","星期二","星期三","星期四","星期五","星期六","星期天"]            pickerView.reloadAllComponents()            pickerView.selectRow(0, inComponent: 0, animated: true)            pickerView.selectRow(0, inComponent: 1, animated: true)        case 3:            // 打印当前选中的月份和星期            let monthIndex = pickerView.selectedRowInComponent(0)            let weekIndex = pickerView.selectedRowInComponent(1)            print("month: \(month[monthIndex]); week: \(week[weekIndex])")        default:            break        }    }    }


0 0
原创粉丝点击