読者です 読者をやめる 読者になる 読者になる

うさがにっき

読書感想文とプログラムのこと書いてきます

UIPickerViewを使ってプロトコルを実装してみる

xcode swift

概要

UIPickerViewを実装し、プロトコルを使ってみる
プロトコル=インターフェースみたいな感じっぽい

詳細

UIPickerView

複数の値から1つの値を選択させたいときにつかうウィジェット
実装するときにはUIPickerViewDataSource, UIPickerViewDelegateプロトコル実装する必要がある

実装方法

PickerViewをViewControllerに配置する
f:id:tiro105:20150318013335p:plain
ソースコードと繋げる
f:id:tiro105:20150318013310p:plain
UIPickerViewを使うためにプロトコルを追加

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate

UIPickerViewのデータソースとデリゲートを自分自身に向ける

    override func viewDidLoad() {
        super.viewDidLoad()
        myPicker.dataSource = self
        myPicker.delegate = self
    }

プロトコルに従って実装する必要なるメソッドを実装
ここらへんを自動でだしてくれないものか…ソース補完は聞くんだが…

    // pickerViewの列数
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }
    
    // pickerViewの行数
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return tea_list.count
    }
    
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        return tea_list[row]
    }

こんな感じで実装される
f:id:tiro105:20150318014217p:plain

プロトコルはインタフェースということがわかった

参考

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】