コンテンツへスキップ

【Swift】UISegmentedControlを使ってみる

選択するためのボタンを複数設置するよりも使いやすいUISegmentedControlの基本的な使い方

UISegmentedControlってどんなやつ?こんなやつです

UISegmentedControlのサンプルコード

Storyboardを使った基本的なコードは下記のような形になります。

選択したindexを取得するときはselectedSegmentIndexで何番目の選択肢が選択されているかを確認します

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var segmented: UISegmentedControl!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBAction func changeSegmentedControl(_ segmented: UISegmentedControl) {
        print(segmented.selectedSegmentIndex)
    }
}

コードだけで実装

簡単に選択肢が2つだけのUISegmentedControlです

初期の選択を0に設定しています

コードの場合もStoryboardを利用した場合もそれほど大きな変化はありません

UISegmentedControlを初期化する際にitemsを設定しそこに文字の配列を入れています

この文字の配列がボタンのタイトルになります

import UIKit

class ViewController: UIViewController {

    var segmented: UISegmentedControl!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        segmented = UISegmentedControl(items: ["First" , "Second"] )
        segmented.frame = CGRect(x: 0, y: 0, width: 250, height: 30)
        segmented.center = self.view.center
        segmented.addTarget(self , action: #selector(changeSegmentedControl(_:)), for: .valueChanged)
        self.view.addSubview(segmented)
        //初期の選択をindex = 0に指定
        segmented.selectedSegmentIndex = 0
    }
    
    @objc func changeSegmentedControl(_ segmented: UISegmentedControl) {
        print(segmented.selectedSegmentIndex)
    }
}