【Swift】ピッカーを設定してスクロールしてリスト選択するためのソースコード

この記事は約4分で読めます。
ポートフォリオ制作実績

Create a new xcode project > 新規作成しましょう。

Pickerviewを検索 > Pickerviewを設置したい場所にドラッグ&ドロップ

Pickerviewが設置されました。複数のリストをスクロールして選択できるようになりました。

ここからはソースコードをプログラミングして細かい設定をしていきます。

スポンサーリンク

ピッカービューのソースコード(UIPickerView)

任意で自由な項目を設定する方法

class PickerViewController: UIViewController, UIPickerViewDelegate,
UIPickerViewDataSource{

  override func viewDidLoad(){
    super.viewDidLoad()
    picker.delegate = self
    picker.dataSource = self
  }
  let language = {
    "html"
    "css"
    "javascript"
    "java"
    "swift"
  }
  let school
  "ITCE"
  "TechAcademy"
  "CodeCampGate"
}
override func didReceiveMemoryWarning(){
  super.didReceiveMemoryWarning()
}
@IBOutlet weak var picker: UIPickerView!
//列数
func numberOfComponentsInPickerView(pickerView: UIPickerView)
Int{
  return 2
}
//行数
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) 
Int{
  switch component{
    case 0: return language.count
    case 1: return school.count
    default: return 0
  }
}
//文字列を表示させる
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int)
String!{
  switch component{
    case 0: return language[row]
    case 1: return school[row]
    default: return ""
  }
}
//列の幅を調整
func pickerView(pickerView: UIPickerView, widthForComponent component: Int)
CGFloat{
  switch component{
      case 0: return 200.0
      case 1: return 100.0
      default: return 0.0
    }
  }
}

 

言語の表をhtml、css、javascript、java、swift、実際にプログラミングを学習する有名なスクールの表としてITCE、TechAcademy、CodeCampGateを並べてみました。

 

初期値を設定するソースコード

@IBAction func clickStart(sender: AnyObject){
  picker.selectRow(1, inCoponent: 0, animated: true) //行番号、列番号、animated
  picker.selectRow(2, inCoponent: 1, animated: true)
}

選択された項目を取得するソースコード

@IBAction func clickButton(sender: AnyObject){
  let row0 = picker.selectedRowInCoponent(0) //let row 行番号 = picker.selectedRowInCoponent(列番号)
  let row1 = picker.selectedRowInCoponent(1)
  label1.text = "¥(row0)番目 ¥(language[row0])"
  label2.text = "¥(row1)番目 ¥(school[row1])"
}

 

 

 

 

タイトルとURLをコピーしました