SwiftにHTMLみたいなセレクトBOXがあった!
アプリを作るとき、ユーザーが手入力ではなく項目ごとに選ぶ機能をつけるように指示をされた。
HTMLみたいなセレクトBOXがないか調べていたら、ドラムロールの存在を知った。
作る時には、storyboardに、UIPickerViewというものを使う。
参考にした記事
色んな記事を見て気づいたこと!
この書き方は推奨されていないらしくエラーが出ていた!!!
showsselectionindicator
使用例↓
pickerView.showsSelectionIndicator = true
公式ドキュメント
https://developer.apple.com/documentation/uikit/uipickerview/1614373-
使い方
storyboardにlabelとUIPickerViewを配置する
- Main.storyboard
コントローラーにIBOutletを紐付けてコードを書く
- ViewController.swift
//
// ViewController.swift
// Drumroll
//
// Created by 橋本純一 on 2022/01/13.
//
import UIKit
class ViewController: UIViewController , UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet var label: UILabel!
@IBOutlet var pickerView: UIPickerView!
let dataList = [
"食品", "衣服", "家具", "家電", "その他"
]
override func viewDidLoad() {
super.viewDidLoad()
// Delegate設定
pickerView.delegate = self
pickerView.dataSource = self
label.text = "カテゴリ"
}
// UIPickerViewの列の数
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
// UIPickerViewの行数、リストの数
func pickerView(_ pickerView: UIPickerView,
numberOfRowsInComponent component: Int) -> Int {
return dataList.count
}
// UIPickerViewの最初の表示
func pickerView(_ pickerView: UIPickerView,
titleForRow row: Int,
forComponent component: Int) -> String? {
return dataList[row]
}
// UIPickerViewのRowが選択された時の挙動
func pickerView(_ pickerView: UIPickerView,
didSelectRow row: Int,
inComponent component: Int) {
label.text = dataList[row]
}
}
最後に
選択項目を作ることで、ユーザーの入力する手間を省いたり、目的が決まっていればドラムロールは便利だと思いました。
個人開発しているアプリに組み込む予定です。