LoginSignup
0
0

More than 1 year has passed since last update.

ドラムロールを使ってみた

Last updated at Posted at 2022-01-14

SwiftにHTMLみたいなセレクトBOXがあった!

アプリを作るとき、ユーザーが手入力ではなく項目ごとに選ぶ機能をつけるように指示をされた。
HTMLみたいなセレクトBOXがないか調べていたら、ドラムロールの存在を知った。
作る時には、storyboardに、UIPickerViewというものを使う。

参考にした記事

色んな記事を見て気づいたこと!

この書き方は推奨されていないらしくエラーが出ていた!!!

showsselectionindicator

使用例↓
pickerView.showsSelectionIndicator = true

公式ドキュメント
https://developer.apple.com/documentation/uikit/uipickerview/1614373-

使い方

storyboardにlabelとUIPickerViewを配置する

  • Main.storyboard

スクリーンショット 2022-01-15 8.52.16.png

コントローラーに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]

    }

}

最後に

選択項目を作ることで、ユーザーの入力する手間を省いたり、目的が決まっていればドラムロールは便利だと思いました。
個人開発しているアプリに組み込む予定です。

0
0
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
0
0