iOS
 Computer >> コンピューター >  >> プログラミング >> iOS

UISegmentedControlをコンテナビューにプログラムで追加する方法(Swift)

UISegmentedControlをコードで追加する手順

iOSアプリ開発において、UISegmentedControl(セグメントコントロール)をストーリーボードを使わずにプログラムで追加したいケースはよくあります。Swiftでは、まずセグメントコントロールのインスタンスを作成し、その後にタップ時の動作を処理するアクションメソッドを実装します。

ここでは、その具体的な手順を順番に見ていきましょう。

1. セグメントコントロールを追加する関数を作成する

まず、セグメントコントロールを生成してビューに追加するための関数を用意します。

func addControl() {
    let segmentItems = ["First", "Second"]
    let control = UISegmentedControl(items: segmentItems)
    control.frame = CGRect(x: 10, y: 250, width: (self.view.frame.width - 20), height: 50)
    control.addTarget(self, action: #selector(segmentControl(_:)), for: .valueChanged)
    control.selectedSegmentIndex = 1
    view.addSubview(control)
}

このコードのポイントを簡単に解説します。

segmentItems: セグメントに表示される項目名を文字列の配列で指定します。ここでは「First」と「Second」の2つです。
frame: コントロールの位置とサイズをCGRectで指定しています。幅は画面幅から左右余白20pt分を引いた値にすることで、端末サイズに対応できます。
addTarget: 値が変更されたとき(.valueChanged)に呼ばれるアクションメソッドを登録します。
selectedSegmentIndex: 初期状態で選択されるセグメントのインデックスを指定します。ここでは2番目の「Second」を選択状態にしています。

この関数をviewDidLoadなどで呼び出せば、画面上にセグメントコントロールが表示されます。

2. アクションメソッドを実装する

次に、セグメントがタップされたときの処理を記述するアクションメソッドを追加します。

@objc func segmentControl(_ segmentedControl: UISegmentedControl) {
    switch (segmentedControl.selectedSegmentIndex) {
        case 0:
            // 最初のセグメントがタップされたときの処理
        break
        case 1:
            // 2番目のセグメントがタップされたときの処理
        break
        default:
        break
    }
}

selectedSegmentIndexプロパティを参照することで、どのセグメントが選択されたかを判定できます。switch文で分岐させることで、各セグメントごとに異なる処理を記述できます。なお、#selectorで参照するため、メソッドには@objc属性を付ける必要がある点に注意してください。

実行結果

このコードをiOSシミュレータで実行すると、以下のように画面にセグメントコントロールが表示され、「First」と「Second」を切り替えられることが確認できます。

UISegmentedControlをコンテナビューにプログラムで追加する方法(Swift)

まとめ

UISegmentedControlをプログラムで追加するには、以下の流れを押さえておけば大丈夫です。

① UISegmentedControlのインスタンスを生成 → ② frameで位置・サイズを設定 → ③ addTargetでアクションを登録 → ④ addSubviewでビューに追加 → ⑤ @objc付きのアクションメソッドでタップ処理を実装。

この基本パターンを覚えておくと、ボタンやスライダーなど他のUI部品を動的に追加する場合にも応用できます。

  1. Windows 10でコントロールパネルの表示形式を変更する方法|カテゴリ表示とアイコン表示の切り替え

    Windows 10(Windows 8/7と同様)では、コントロールパネルを3種類の表示形式で開くことができます。既定の表示は「カテゴリ」で、「やりたいこと」から目的の設定を探せるため、多くのユーザーにとって非常に使いやすい形式です。 一方で、すべての設定項目を一覧できる「すべてのコントロールパネル項目」表示に切り替えることも可能です。この一覧は「大きいアイコン」または「小さいアイコン」のいずれかで表示でき、コントロールパネル右上にある「表示方法」ドロップダウンメニューから簡単に変更できます。 表示設定が保持されない場合の対処法 しかし、「表示方法」で選択した設定が保存されず、コントロールパ

  2. iPhoneのコントロールセンターにShazamを追加する方法【ワンタップで曲を認識】

    2018年にAppleに買収されたShazamは、世界で最も有名なオーディオ認識サービスのひとつです。短い音声の断片をもとに、音楽だけでなく映画、CM、テレビ番組なども識別できます。iPhoneユーザーなら、デバイスのコントロールセンターにShazamボタンを追加すれば、ワンタップで再生中の曲を素早く特定できるようになります。 iPhoneのコントロールセンターへのアクセス方法 iPhoneのコントロールセンターは、よく使うアプリやサービスに素早くアクセスできるように設計された機能です。Wi-Fiやモバイルデータ通信、Bluetoothのオン/オフ切り替え、音量の調整、写真撮影、懐中電灯とし