UIPickerViewの使用

yamagenii 200views 更新:2015年11月5日

何やらドラムのような選択肢UIPickerViewは以下のように実装します

SelectMemberViewController: UIViewController{
    override func viewDidLoad() {
            myUIPicker = UIPickerView()
            // サイズを指定する.
            myUIPicker.frame = CGRectMake(0,0,self.view.bounds.width, 180.0)
            // Delegateを設定する.
            myUIPicker.delegate = self
            // DataSourceを設定する.
            myUIPicker.dataSource = self
            // Viewに追加する.
            self.view.addSubview(myUIPicker)
    }
}
extension SelectMemberViewController: UIPickerViewDelegate, UIPickerViewDataSource {

    //pickerに表示する列数を返すデータソースメソッド.
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

    //pickerに表示する行数を返すデータソースメソッド.
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return myValues.count
    }

    //pickerに表示する値を返すデリゲートメソッド.
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return myValues[row] as? String
    }

    //pickerが選択された際に呼ばれるデリゲートメソッド.
    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        print("row: \(row)")
        print("value: \(myValues[row])")
    }


}

Type ‘ViewController’ does not conform to protocol ‘UITableViewDataSource’

などと出た場合は必要なメソッドを宣言していない可能性が有ります

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません