LoginSignup
13
10

More than 5 years have passed since last update.

SwiftでPickerViewを使う

Posted at

概要

  • PickerViewを始めて使って見る

環境

  • Xcode:7.3
  • Swift 2.2

使用するオブジェクト

  • Picker View
  • Label

やること

  • Picker Viewで選んだものを Label に表示する

手順

  1. プロジェクト作成
  2. UIパーツを配置 2−1. ObjectLibraryからLabelとPickerViewをレイアウト 2−2. LabelはnameLabelとする 2-3. PickerViewはnamePickerviewとする
  3. ViewController.swift のコーディング

コーディング

  • PickerViewDataSource と PickerViewDelegate を追加
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
  • Picker View に表示するリスト作成
    var list = ["森永アイス ラムネバー ソーダ味","森永アイス ラムネバー 白桃ソーダ味","赤城乳業ミント","森永Pinoバニラ","森永Pinoアーモンド","森永Pinoチョコ"]
  • Picker View のDataSourceとDelegateをselfにする
    override func viewDidLoad() {
        super.viewDidLoad()
        namePickerview.dataSource = self//これと
        namePickerview.delegate = self//これ
    }
  • Picker View の列を1にする
 //Picerviewの列の数は1とする
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }
  • Picker View の行数は配列数にする
    func pickerView(namePickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return list.count
    }
  • 表示する文字列を指定する
    func pickerView(namePickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return list.count
    }
    //表示する文字列を指定する
    //PickerViewに表示する配列の要素数を設定する
    func pickerView(namePickerview: UIPickerView, titleForRow row: Int, forComponent component: Int)-> String! {
        return list[row]
    }

  • Labelに表示する
    //ラベル表示
    func pickerView(namePickerview: UIPickerView, didSelectRow row: Int, inComponent component: Int){
        nameLabel.text = list[row]
    }

ソースコード

import UIKit

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {

    @IBOutlet weak var nameLabel: UILabel!
    @IBOutlet weak var namePickerview: UIPickerView!

    var list = ["森永アイス ラムネバー ソーダ味","森永アイス ラムネバー 白桃ソーダ味",
                "赤城乳業ミント","森永Pinoバニラ","森永Pinoアーモンド","森永Pinoチョコ"]
    override func viewDidLoad() {
        super.viewDidLoad()
        namePickerview.dataSource = self
        namePickerview.delegate = self
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    //Picerviewの列の数は1とする
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(namePickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return list.count
    }
    //表示する文字列を指定する
    //PickerViewに表示する配列の要素数を設定する
    func pickerView(namePickerview: UIPickerView, titleForRow row: Int, forComponent component: Int)-> String! {
        return list[row]
    }

    //ラベル表示
    func pickerView(namePickerview: UIPickerView, didSelectRow row: Int, inComponent component: Int){
        nameLabel.text = list[row]
    }

}
13
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
10